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/GenreHandler.cs | 53 +++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 MediaBrowser.Api/HttpHandlers/GenreHandler.cs (limited to 'MediaBrowser.Api/HttpHandlers/GenreHandler.cs') diff --git a/MediaBrowser.Api/HttpHandlers/GenreHandler.cs b/MediaBrowser.Api/HttpHandlers/GenreHandler.cs new file mode 100644 index 0000000000..2b0d1c57d3 --- /dev/null +++ b/MediaBrowser.Api/HttpHandlers/GenreHandler.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 genre + /// + public class GenreHandler : 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 name = QueryString["name"]; + + return GetGenre(parent, user, name); + } + + /// + /// Gets a Genre + /// + private IBNItem GetGenre(Folder parent, User user, string name) + { + int count = 0; + + // Get all the allowed recursive children + IEnumerable allItems = parent.GetParentalAllowedRecursiveChildren(user); + + foreach (var item in allItems) + { + if (item.Genres != null && item.Genres.Any(s => s.Equals(name, StringComparison.OrdinalIgnoreCase))) + { + count++; + } + } + + // Get the original entity so that we can also supply the PrimaryImagePath + return new IBNItem() + { + Item = Kernel.Instance.ItemController.GetGenre(name), + BaseItemCount = count + }; + } + } +} -- cgit v1.2.3