aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Querying
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-03-10 00:36:39 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-03-10 00:36:39 -0500
commitb1be6f1d73272fb629ff453f6890766faeccf9de (patch)
tree0fc8655dd48f442290e7b764889cd0a3bfef63c4 /MediaBrowser.Model/Querying
parent31d079f1baea895b5cb0f1a737140ab94dc9a4fe (diff)
minor namespace changes in the model
Diffstat (limited to 'MediaBrowser.Model/Querying')
-rw-r--r--MediaBrowser.Model/Querying/ItemFields.cs114
-rw-r--r--MediaBrowser.Model/Querying/ItemFilter.cs38
-rw-r--r--MediaBrowser.Model/Querying/ItemQuery.cs126
-rw-r--r--MediaBrowser.Model/Querying/ItemSortBy.cs54
-rw-r--r--MediaBrowser.Model/Querying/ItemsByNameQuery.cs53
-rw-r--r--MediaBrowser.Model/Querying/ItemsResult.cs26
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; }
+ }
+}