From caa369c1a37ff3b4755e1359e1e2ddbd3e8d9beb Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Wed, 29 Aug 2012 15:37:05 -0400 Subject: A few serialization fixes --- MediaBrowser.Api/HttpHandlers/YearsHandler.cs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'MediaBrowser.Api/HttpHandlers/YearsHandler.cs') diff --git a/MediaBrowser.Api/HttpHandlers/YearsHandler.cs b/MediaBrowser.Api/HttpHandlers/YearsHandler.cs index ee07ac8b0..ff05120a0 100644 --- a/MediaBrowser.Api/HttpHandlers/YearsHandler.cs +++ b/MediaBrowser.Api/HttpHandlers/YearsHandler.cs @@ -9,9 +9,9 @@ using MediaBrowser.Model.Entities; namespace MediaBrowser.Api.HttpHandlers { - public class YearsHandler : BaseJsonHandler> + public class YearsHandler : BaseJsonHandler { - protected override Task> GetObjectToSerialize() + protected override Task GetObjectToSerialize() { Folder parent = ApiService.GetItemById(QueryString["id"]) as Folder; Guid userId = Guid.Parse(QueryString["userid"]); @@ -24,7 +24,7 @@ namespace MediaBrowser.Api.HttpHandlers /// Gets all years from all recursive children of a folder /// The CategoryInfo class is used to keep track of the number of times each year appears /// - private async Task> GetAllYears(Folder parent, User user) + private async Task GetAllYears(Folder parent, User user) { Dictionary data = new Dictionary(); @@ -50,9 +50,20 @@ namespace MediaBrowser.Api.HttpHandlers } } - IEnumerable entities = await Task.WhenAll(data.Keys.Select(key => { return Kernel.Instance.ItemController.GetYear(key); })).ConfigureAwait(false); + // Get the Year objects + Year[] entities = await Task.WhenAll(data.Keys.Select(key => { return Kernel.Instance.ItemController.GetYear(key); })).ConfigureAwait(false); - return entities.Select(e => ApiService.GetIBNItem(e, data[int.Parse(e.Name)])); + // Convert to an array of IBNItem + IBNItem[] items = new IBNItem[entities.Length]; + + for (int i = 0; i < entities.Length; i++) + { + Year e = entities[i]; + + items[i] = ApiService.GetIBNItem(e, data[int.Parse(e.Name)]); + } + + return items; } } } -- cgit v1.2.3