From 7835d690a1ade4739171036cff335c86b5232d0e Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sat, 18 Aug 2012 04:22:54 -0400 Subject: Added a completely separate DTOBaseItem to remove the ApiBaseItemWrapper mess and shrink json output size. --- MediaBrowser.Model/DTO/ApiBaseItem.cs | 67 ----------- MediaBrowser.Model/DTO/DTOBaseItem.cs | 86 ++++++++++++++ MediaBrowser.Model/DTO/IBNItem.cs | 4 +- MediaBrowser.Model/Entities/BaseItem.cs | 65 +++++----- MediaBrowser.Model/Entities/Folder.cs | 144 +++++++++++++++++------ MediaBrowser.Model/Entities/IHasProviderIds.cs | 57 +++++++++ MediaBrowser.Model/Entities/ItemSpecialCounts.cs | 14 +++ MediaBrowser.Model/Entities/Person.cs | 11 +- MediaBrowser.Model/Entities/User.cs | 15 +++ MediaBrowser.Model/Entities/UserItemData.cs | 20 ++++ MediaBrowser.Model/Entities/Video.cs | 17 ++- MediaBrowser.Model/MediaBrowser.Model.csproj | 8 +- MediaBrowser.Model/Users/User.cs | 34 ------ MediaBrowser.Model/Users/UserItemData.cs | 21 ---- 14 files changed, 344 insertions(+), 219 deletions(-) delete mode 100644 MediaBrowser.Model/DTO/ApiBaseItem.cs create mode 100644 MediaBrowser.Model/DTO/DTOBaseItem.cs create mode 100644 MediaBrowser.Model/Entities/IHasProviderIds.cs create mode 100644 MediaBrowser.Model/Entities/ItemSpecialCounts.cs create mode 100644 MediaBrowser.Model/Entities/User.cs create mode 100644 MediaBrowser.Model/Entities/UserItemData.cs delete mode 100644 MediaBrowser.Model/Users/User.cs delete mode 100644 MediaBrowser.Model/Users/UserItemData.cs (limited to 'MediaBrowser.Model') diff --git a/MediaBrowser.Model/DTO/ApiBaseItem.cs b/MediaBrowser.Model/DTO/ApiBaseItem.cs deleted file mode 100644 index eca45c9f8b..0000000000 --- a/MediaBrowser.Model/DTO/ApiBaseItem.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Users; - -namespace MediaBrowser.Model.DTO -{ - /// - /// This is a concrete class that the UI can use to deserialize - /// It is flat in the sense that it will be used regardless of the type of BaseItem involved - /// - public class ApiBaseItem : BaseItem - { - // Series properties - public string Status { get; set; } - public IEnumerable AirDays { get; set; } - public string AirTime { get; set; } - } - - /// - /// This is the full return object when requesting an Item - /// - public class BaseItemContainer - where TItemType : BaseItem - { - public TItemType Item { get; set; } - - public UserItemData UserItemData { get; set; } - - public IEnumerable> Children { get; set; } - - public bool IsFolder { get; set; } - - public Guid? ParentId { get; set; } - - public string Type { get; set; } - - public bool IsType(Type type) - { - return IsType(type.Name); - } - - public bool IsType(string type) - { - return Type.Equals(type, StringComparison.OrdinalIgnoreCase); - } - - public IEnumerable People { get; set; } - public IEnumerable Studios { get; set; } - - /// - /// If the item does not have a logo, this will hold the Id of the Parent that has one. - /// - public Guid? ParentLogoItemId { get; set; } - - public Guid? ParentBackdropItemId { get; set; } - - public int? ParentBackdropCount { get; set; } - } - - /// - /// This is strictly for convenience so the UI's don't have to use the verbose generic syntax of BaseItemWrapper - /// - public class ApiBaseItemContainer : BaseItemContainer - { - } -} diff --git a/MediaBrowser.Model/DTO/DTOBaseItem.cs b/MediaBrowser.Model/DTO/DTOBaseItem.cs new file mode 100644 index 0000000000..6f41ac578a --- /dev/null +++ b/MediaBrowser.Model/DTO/DTOBaseItem.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using MediaBrowser.Model.Entities; + +namespace MediaBrowser.Model.DTO +{ + public class DTOBaseItem : IHasProviderIds + { + public string Name { get; set; } + public Guid Id { get; set; } + public DateTime DateCreated { get; set; } + + public string SortName { get; set; } + public DateTime? PremiereDate { get; set; } + public string Path { get; set; } + public string OfficialRating { get; set; } + public string Overview { get; set; } + public IEnumerable Taglines { get; set; } + + public IEnumerable Genres { get; set; } + + public string DisplayMediaType { get; set; } + + public float? UserRating { get; set; } + public long? RunTimeTicks { get; set; } + + public string AspectRatio { get; set; } + public int? ProductionYear { get; set; } + + public int? IndexNumber { get; set; } + + public string TrailerUrl { get; set; } + + public Dictionary ProviderIds { get; set; } + + public bool HasBanner { get; set; } + public bool HasArt { get; set; } + public bool HasLogo { get; set; } + public bool HasThumb { get; set; } + public bool HasPrimaryImage { get; set; } + + public int BackdropCount { get; set; } + + public IEnumerable Children { get; set; } + + public bool IsFolder { get; set; } + + public Guid? ParentId { get; set; } + + public string Type { get; set; } + + public IEnumerable People { get; set; } + public IEnumerable Studios { get; set; } + + /// + /// If the item does not have a logo, this will hold the Id of the Parent that has one. + /// + public Guid? ParentLogoItemId { get; set; } + + /// + /// If the item does not have any backdrops, this will hold the Id of the Parent that has one. + /// + public Guid? ParentBackdropItemId { get; set; } + public int? ParentBackdropCount { get; set; } + + public IEnumerable