diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-17 12:47:35 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-17 12:47:35 -0400 |
| commit | 5c6ec34a9cff0819957fe5e4278f6e0d1ecc1fa3 (patch) | |
| tree | 59209813ff9588bcca79a6f32124bac0acad3c1a /MediaBrowser.Api/HttpHandlers/ItemListHandler.cs | |
| parent | 5c094afd7e79934cb02f29a9a0080ed12c7e1098 (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.cs | 59 |
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;
+ }
+ }
}
}
|
