From 9c456c63c8d29301a36eb3bb5cbb5fa53688e0ee Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sat, 18 Aug 2012 12:27:34 -0400 Subject: Added more IBN api methods --- MediaBrowser.Api/HttpHandlers/YearHandler.cs | 53 ++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 MediaBrowser.Api/HttpHandlers/YearHandler.cs (limited to 'MediaBrowser.Api/HttpHandlers/YearHandler.cs') diff --git a/MediaBrowser.Api/HttpHandlers/YearHandler.cs b/MediaBrowser.Api/HttpHandlers/YearHandler.cs new file mode 100644 index 0000000000..89cde99433 --- /dev/null +++ b/MediaBrowser.Api/HttpHandlers/YearHandler.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MediaBrowser.Common.Net.Handlers; +using MediaBrowser.Controller; +using MediaBrowser.Model.DTO; +using MediaBrowser.Model.Entities; + +namespace MediaBrowser.Api.HttpHandlers +{ + /// + /// Gets a single year + /// + public class YearHandler : BaseJsonHandler> + { + protected override IBNItem GetObjectToSerialize() + { + Folder parent = ApiService.GetItemById(QueryString["id"]) as Folder; + Guid userId = Guid.Parse(QueryString["userid"]); + User user = Kernel.Instance.Users.First(u => u.Id == userId); + + string year = QueryString["year"]; + + return GetYear(parent, user, int.Parse(year)); + } + + /// + /// Gets a Year + /// + private IBNItem GetYear(Folder parent, User user, int year) + { + int count = 0; + + // Get all the allowed recursive children + IEnumerable allItems = parent.GetParentalAllowedRecursiveChildren(user); + + foreach (var item in allItems) + { + if (item.ProductionYear.HasValue && item.ProductionYear.Value == year) + { + count++; + } + } + + // Get the original entity so that we can also supply the PrimaryImagePath + return new IBNItem() + { + Item = Kernel.Instance.ItemController.GetYear(year), + BaseItemCount = count + }; + } + } +} -- cgit v1.2.3