diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-10 00:36:39 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-10 00:36:39 -0500 |
| commit | b1be6f1d73272fb629ff453f6890766faeccf9de (patch) | |
| tree | 0fc8655dd48f442290e7b764889cd0a3bfef63c4 /MediaBrowser.Model/Querying | |
| parent | 31d079f1baea895b5cb0f1a737140ab94dc9a4fe (diff) | |
minor namespace changes in the model
Diffstat (limited to 'MediaBrowser.Model/Querying')
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemFields.cs | 114 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemFilter.cs | 38 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemQuery.cs | 126 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemSortBy.cs | 54 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemsByNameQuery.cs | 53 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemsResult.cs | 26 |
6 files changed, 411 insertions, 0 deletions
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs new file mode 100644 index 0000000000..8cf9796c0e --- /dev/null +++ b/MediaBrowser.Model/Querying/ItemFields.cs @@ -0,0 +1,114 @@ + +namespace MediaBrowser.Model.Querying +{ + /// <summary> + /// Used to control the data that gets attached to DtoBaseItems + /// </summary> + public enum ItemFields + { + /// <summary> + /// Audio properties + /// </summary> + AudioInfo, + + /// <summary> + /// The chapters + /// </summary> + Chapters, + + /// <summary> + /// The date created of the item + /// </summary> + DateCreated, + + /// <summary> + /// The display media type + /// </summary> + DisplayMediaType, + + /// <summary> + /// Item display preferences + /// </summary> + DisplayPreferences, + + /// <summary> + /// Genres + /// </summary> + Genres, + + /// <summary> + /// Child count, recursive child count, etc + /// </summary> + ItemCounts, + + /// <summary> + /// The fields that the server supports indexing on + /// </summary> + IndexOptions, + + /// <summary> + /// The item overview + /// </summary> + Overview, + + /// <summary> + /// The id of the item's parent + /// </summary> + ParentId, + + /// <summary> + /// The physical path of the item + /// </summary> + Path, + + /// <summary> + /// The list of people for the item + /// </summary> + People, + + /// <summary> + /// Imdb, tmdb, etc + /// </summary> + ProviderIds, + + /// <summary> + /// The aspect ratio of the primary image + /// </summary> + PrimaryImageAspectRatio, + + /// <summary> + /// AirDays, status, SeriesName, etc + /// </summary> + SeriesInfo, + + /// <summary> + /// The sort name of the item + /// </summary> + SortName, + + /// <summary> + /// The studios of the item + /// </summary> + Studios, + + /// <summary> + /// The taglines of the item + /// </summary> + Taglines, + + /// <summary> + /// The trailer url of the item + /// </summary> + TrailerUrls, + + /// <summary> + /// The user data of the item + /// </summary> + UserData, + + /// <summary> + /// The media streams + /// </summary> + MediaStreams + } +} diff --git a/MediaBrowser.Model/Querying/ItemFilter.cs b/MediaBrowser.Model/Querying/ItemFilter.cs new file mode 100644 index 0000000000..9c7f139a80 --- /dev/null +++ b/MediaBrowser.Model/Querying/ItemFilter.cs @@ -0,0 +1,38 @@ + +namespace MediaBrowser.Model.Querying +{ + /// <summary> + /// Enum ItemFilter + /// </summary> + public enum ItemFilter + { + /// <summary> + /// The item is a folder + /// </summary> + IsFolder = 1, + /// <summary> + /// The item is not folder + /// </summary> + IsNotFolder = 2, + /// <summary> + /// The item is unplayed + /// </summary> + IsUnplayed = 3, + /// <summary> + /// The item is played + /// </summary> + IsPlayed = 4, + /// <summary> + /// The item is a favorite + /// </summary> + IsFavorite = 5, + /// <summary> + /// The item is recently added + /// </summary> + IsRecentlyAdded = 6, + /// <summary> + /// The item is resumable + /// </summary> + IsResumable = 7 + } +} diff --git a/MediaBrowser.Model/Querying/ItemQuery.cs b/MediaBrowser.Model/Querying/ItemQuery.cs new file mode 100644 index 0000000000..3b320a0110 --- /dev/null +++ b/MediaBrowser.Model/Querying/ItemQuery.cs @@ -0,0 +1,126 @@ +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Entities; +using System; + +namespace MediaBrowser.Model.Querying +{ + /// <summary> + /// Contains all the possible parameters that can be used to query for items + /// </summary> + public class ItemQuery + { + /// <summary> + /// The user to localize search results for + /// </summary> + /// <value>The user id.</value> + public Guid UserId { get; set; } + + /// <summary> + /// Specify this to localize the search to a specific item or folder. Omit to use the root. + /// </summary> + /// <value>The parent id.</value> + public string ParentId { get; set; } + + /// <summary> + /// Skips over a given number of items within the results. Use for paging. + /// </summary> + /// <value>The start index.</value> + public int? StartIndex { get; set; } + + /// <summary> + /// The maximum number of items to return + /// </summary> + /// <value>The limit.</value> + public int? Limit { get; set; } + + /// <summary> + /// What to sort the results by + /// </summary> + /// <value>The sort by.</value> + public string[] SortBy { get; set; } + + /// <summary> + /// The sort order to return results with + /// </summary> + /// <value>The sort order.</value> + public SortOrder? SortOrder { get; set; } + + /// <summary> + /// Filters to apply to the results + /// </summary> + /// <value>The filters.</value> + public ItemFilter[] Filters { get; set; } + + /// <summary> + /// Fields to return within the items, in addition to basic information + /// </summary> + /// <value>The fields.</value> + public ItemFields[] Fields { get; set; } + + /// <summary> + /// Whether or not to perform the query recursively + /// </summary> + /// <value><c>true</c> if recursive; otherwise, <c>false</c>.</value> + public bool Recursive { get; set; } + + /// <summary> + /// Limit results to items containing specific genres + /// </summary> + /// <value>The genres.</value> + public string[] Genres { get; set; } + + /// <summary> + /// Limit results to items containing specific studios + /// </summary> + /// <value>The studios.</value> + public string[] Studios { get; set; } + + /// <summary> + /// Gets or sets the exclude item types. + /// </summary> + /// <value>The exclude item types.</value> + public string[] ExcludeItemTypes { get; set; } + + /// <summary> + /// Gets or sets the include item types. + /// </summary> + /// <value>The include item types.</value> + public string[] IncludeItemTypes { get; set; } + + /// <summary> + /// Limit results to items containing specific years + /// </summary> + /// <value>The years.</value> + public int[] Years { get; set; } + + /// <summary> + /// Limit results to items containing a specific person + /// </summary> + /// <value>The person.</value> + public string Person { get; set; } + + /// <summary> + /// If the Person filter is used, this can also be used to restrict to a specific person type + /// </summary> + /// <value>The type of the person.</value> + public string PersonType { get; set; } + + /// <summary> + /// Search characters used to find items + /// </summary> + /// <value>The index by.</value> + public string SearchTerm { get; set; } + + /// <summary> + /// The dynamic, localized index function name + /// </summary> + /// <value>The index by.</value> + public string IndexBy { get; set; } + + /// <summary> + /// Gets or sets the image types. + /// </summary> + /// <value>The image types.</value> + public ImageType[] ImageTypes { get; set; } + } +} diff --git a/MediaBrowser.Model/Querying/ItemSortBy.cs b/MediaBrowser.Model/Querying/ItemSortBy.cs new file mode 100644 index 0000000000..9599e2aac2 --- /dev/null +++ b/MediaBrowser.Model/Querying/ItemSortBy.cs @@ -0,0 +1,54 @@ + +namespace MediaBrowser.Model.Querying +{ + /// <summary> + /// These represent sort orders that are known by the core + /// </summary> + public static class ItemSortBy + { + /// <summary> + /// The album + /// </summary> + public const string Album = "Album"; + /// <summary> + /// The album artist + /// </summary> + public const string AlbumArtist = "AlbumArtist"; + /// <summary> + /// The artist + /// </summary> + public const string Artist = "Artist"; + /// <summary> + /// The date created + /// </summary> + public const string DateCreated = "DateCreated"; + /// <summary> + /// The date played + /// </summary> + public const string DatePlayed = "DatePlayed"; + /// <summary> + /// The premiere date + /// </summary> + public const string PremiereDate = "PremiereDate"; + /// <summary> + /// The sort name + /// </summary> + public const string SortName = "SortName"; + /// <summary> + /// The random + /// </summary> + public const string Random = "Random"; + /// <summary> + /// The runtime + /// </summary> + public const string Runtime = "Runtime"; + /// <summary> + /// The community rating + /// </summary> + public const string CommunityRating = "CommunityRating"; + /// <summary> + /// The production year + /// </summary> + public const string ProductionYear = "ProductionYear"; + } +} diff --git a/MediaBrowser.Model/Querying/ItemsByNameQuery.cs b/MediaBrowser.Model/Querying/ItemsByNameQuery.cs new file mode 100644 index 0000000000..5be23f3dd6 --- /dev/null +++ b/MediaBrowser.Model/Querying/ItemsByNameQuery.cs @@ -0,0 +1,53 @@ +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Entities; +using System; + +namespace MediaBrowser.Model.Querying +{ + /// <summary> + /// Class ItemsByNameQuery + /// </summary> + public class ItemsByNameQuery + { + /// <summary> + /// Gets or sets the user id. + /// </summary> + /// <value>The user id.</value> + public Guid UserId { get; set; } + /// <summary> + /// Gets or sets the start index. + /// </summary> + /// <value>The start index.</value> + public int? StartIndex { get; set; } + /// <summary> + /// Gets or sets the size of the page. + /// </summary> + /// <value>The size of the page.</value> + public int? Limit { get; set; } + /// <summary> + /// Gets or sets a value indicating whether this <see cref="GetItemsByName" /> is recursive. + /// </summary> + /// <value><c>true</c> if recursive; otherwise, <c>false</c>.</value> + public bool Recursive { get; set; } + /// <summary> + /// Gets or sets the sort order. + /// </summary> + /// <value>The sort order.</value> + public SortOrder? SortOrder { get; set; } + /// <summary> + /// If specified the search will be localized within a specific item or folder + /// </summary> + /// <value>The item id.</value> + public string ItemId { get; set; } + /// <summary> + /// Fields to return within the items, in addition to basic information + /// </summary> + /// <value>The fields.</value> + public ItemFields[] Fields { get; set; } + /// <summary> + /// Gets or sets the person types. + /// </summary> + /// <value>The person types.</value> + public string[] PersonTypes { get; set; } + } +} diff --git a/MediaBrowser.Model/Querying/ItemsResult.cs b/MediaBrowser.Model/Querying/ItemsResult.cs new file mode 100644 index 0000000000..f8393b7fc3 --- /dev/null +++ b/MediaBrowser.Model/Querying/ItemsResult.cs @@ -0,0 +1,26 @@ +using MediaBrowser.Model.Dto; +using ProtoBuf; + +namespace MediaBrowser.Model.Querying +{ + /// <summary> + /// Represents the result of a query for items + /// </summary> + [ProtoContract] + public class ItemsResult + { + /// <summary> + /// The set of items returned based on sorting, paging, etc + /// </summary> + /// <value>The items.</value> + [ProtoMember(1)] + public BaseItemDto[] Items { get; set; } + + /// <summary> + /// The total number of records available + /// </summary> + /// <value>The total record count.</value> + [ProtoMember(2)] + public int TotalRecordCount { get; set; } + } +} |
