aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/HttpHandlers/ItemListHandler.cs
diff options
context:
space:
mode:
authorLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-08-17 12:47:35 -0400
committerLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-08-17 12:47:35 -0400
commit5c6ec34a9cff0819957fe5e4278f6e0d1ecc1fa3 (patch)
tree59209813ff9588bcca79a6f32124bac0acad3c1a /MediaBrowser.Api/HttpHandlers/ItemListHandler.cs
parent5c094afd7e79934cb02f29a9a0080ed12c7e1098 (diff)
Consolidated handlers that return lists of items. Renamed ApiBaseItemWrapper to ApiBaseItemContainer. Added Person and Studio DTO's to BaseItemWrapper
Diffstat (limited to 'MediaBrowser.Api/HttpHandlers/ItemListHandler.cs')
-rw-r--r--MediaBrowser.Api/HttpHandlers/ItemListHandler.cs59
1 files changed, 55 insertions, 4 deletions
diff --git a/MediaBrowser.Api/HttpHandlers/ItemListHandler.cs b/MediaBrowser.Api/HttpHandlers/ItemListHandler.cs
index 6e08561b2..b3d85687f 100644
--- a/MediaBrowser.Api/HttpHandlers/ItemListHandler.cs
+++ b/MediaBrowser.Api/HttpHandlers/ItemListHandler.cs
@@ -2,14 +2,15 @@
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
{
- public abstract class ItemListHandler : BaseJsonHandler<IEnumerable<BaseItemWrapper<BaseItem>>>
+ public class ItemListHandler : BaseJsonHandler<IEnumerable<BaseItemContainer<BaseItem>>>
{
- protected override IEnumerable<BaseItemWrapper<BaseItem>> GetObjectToSerialize()
+ protected override IEnumerable<BaseItemContainer<BaseItem>> GetObjectToSerialize()
{
return ItemsToSerialize.Select(i =>
{
@@ -18,9 +19,51 @@ namespace MediaBrowser.Api.HttpHandlers
});
}
- protected abstract IEnumerable<BaseItem> ItemsToSerialize
+ protected IEnumerable<BaseItem> ItemsToSerialize
{
- get;
+ get
+ {
+ Folder parent = ApiService.GetItemById(ItemId) as Folder;
+
+ if (ListType.Equals("inprogressitems", StringComparison.OrdinalIgnoreCase))
+ {
+ return Kernel.Instance.GetInProgressItems(parent, UserId);
+ }
+ else if (ListType.Equals("recentlyaddeditems", StringComparison.OrdinalIgnoreCase))
+ {
+ return Kernel.Instance.GetRecentlyAddedItems(parent, UserId);
+ }
+ else if (ListType.Equals("recentlyaddedunplayeditems", StringComparison.OrdinalIgnoreCase))
+ {
+ return Kernel.Instance.GetRecentlyAddedUnplayedItems(parent, UserId);
+ }
+ else if (ListType.Equals("itemswithgenre", StringComparison.OrdinalIgnoreCase))
+ {
+ return Kernel.Instance.GetItemsWithGenre(parent, QueryString["name"], UserId);
+ }
+ else if (ListType.Equals("itemswithyear", StringComparison.OrdinalIgnoreCase))
+ {
+ return Kernel.Instance.GetItemsWithYear(parent, int.Parse(QueryString["year"]), UserId);
+ }
+ else if (ListType.Equals("itemswithstudio", StringComparison.OrdinalIgnoreCase))
+ {
+ return Kernel.Instance.GetItemsWithStudio(parent, QueryString["name"], UserId);
+ }
+ else if (ListType.Equals("itemswithperson", StringComparison.OrdinalIgnoreCase))
+ {
+ return Kernel.Instance.GetItemsWithPerson(parent, QueryString["name"], UserId);
+ }
+
+ throw new InvalidOperationException();
+ }
+ }
+
+ protected string ItemId
+ {
+ get
+ {
+ return QueryString["id"];
+ }
}
protected Guid UserId
@@ -30,5 +73,13 @@ namespace MediaBrowser.Api.HttpHandlers
return Guid.Parse(QueryString["userid"]);
}
}
+
+ private string ListType
+ {
+ get
+ {
+ return QueryString["listtype"] ?? string.Empty;
+ }
+ }
}
}