aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Persistence/IItemRepository.cs
diff options
context:
space:
mode:
authorAndrew Rabert <ar@nullsum.net>2018-12-27 18:27:57 -0500
committerAndrew Rabert <ar@nullsum.net>2018-12-27 18:27:57 -0500
commita86b71899ec52c44ddc6c3018e8cc5e9d7ff4d62 (patch)
treea74f6ea4a8abfa1664a605d31d48bc38245ccf58 /MediaBrowser.Controller/Persistence/IItemRepository.cs
parent9bac3ac616b01f67db98381feb09d34ebe821f9a (diff)
Add GPL modules
Diffstat (limited to 'MediaBrowser.Controller/Persistence/IItemRepository.cs')
-rw-r--r--MediaBrowser.Controller/Persistence/IItemRepository.cs159
1 files changed, 159 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Persistence/IItemRepository.cs b/MediaBrowser.Controller/Persistence/IItemRepository.cs
new file mode 100644
index 000000000..7905ea1aa
--- /dev/null
+++ b/MediaBrowser.Controller/Persistence/IItemRepository.cs
@@ -0,0 +1,159 @@
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using MediaBrowser.Model.Dto;
+using MediaBrowser.Model.Querying;
+
+namespace MediaBrowser.Controller.Persistence
+{
+ /// <summary>
+ /// Provides an interface to implement an Item repository
+ /// </summary>
+ public interface IItemRepository : IRepository
+ {
+ /// <summary>
+ /// Saves an item
+ /// </summary>
+ /// <param name="item">The item.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ void SaveItem(BaseItem item, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Deletes the item.
+ /// </summary>
+ /// <param name="id">The identifier.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ void DeleteItem(Guid id, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Saves the items.
+ /// </summary>
+ /// <param name="items">The items.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ void SaveItems(List<BaseItem> items, CancellationToken cancellationToken);
+
+ void SaveImages(BaseItem item);
+
+ /// <summary>
+ /// Retrieves the item.
+ /// </summary>
+ /// <param name="id">The id.</param>
+ /// <returns>BaseItem.</returns>
+ BaseItem RetrieveItem(Guid id);
+
+ /// <summary>
+ /// Gets chapters for an item
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ List<ChapterInfo> GetChapters(BaseItem id);
+
+ /// <summary>
+ /// Gets a single chapter for an item
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="index"></param>
+ /// <returns></returns>
+ ChapterInfo GetChapter(BaseItem id, int index);
+
+ /// <summary>
+ /// Saves the chapters.
+ /// </summary>
+ void SaveChapters(Guid id, List<ChapterInfo> chapters);
+
+ /// <summary>
+ /// Gets the media streams.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>IEnumerable{MediaStream}.</returns>
+ List<MediaStream> GetMediaStreams(MediaStreamQuery query);
+
+ /// <summary>
+ /// Saves the media streams.
+ /// </summary>
+ /// <param name="id">The identifier.</param>
+ /// <param name="streams">The streams.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ void SaveMediaStreams(Guid id, List<MediaStream> streams, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Gets the item ids.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>IEnumerable&lt;Guid&gt;.</returns>
+ QueryResult<Guid> GetItemIds(InternalItemsQuery query);
+ /// <summary>
+ /// Gets the items.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>QueryResult&lt;BaseItem&gt;.</returns>
+ QueryResult<BaseItem> GetItems(InternalItemsQuery query);
+
+ /// <summary>
+ /// Gets the item ids list.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>List&lt;Guid&gt;.</returns>
+ List<Guid> GetItemIdsList(InternalItemsQuery query);
+
+ /// <summary>
+ /// Gets the people.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>List&lt;PersonInfo&gt;.</returns>
+ List<PersonInfo> GetPeople(InternalPeopleQuery query);
+
+ /// <summary>
+ /// Updates the people.
+ /// </summary>
+ /// <param name="itemId">The item identifier.</param>
+ /// <param name="people">The people.</param>
+ void UpdatePeople(Guid itemId, List<PersonInfo> people);
+
+ /// <summary>
+ /// Gets the people names.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>List&lt;System.String&gt;.</returns>
+ List<string> GetPeopleNames(InternalPeopleQuery query);
+
+ /// <summary>
+ /// Gets the item ids with path.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>QueryResult&lt;Tuple&lt;Guid, System.String&gt;&gt;.</returns>
+ List<Tuple<Guid, string>> GetItemIdsWithPath(InternalItemsQuery query);
+
+ /// <summary>
+ /// Gets the item list.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>List&lt;BaseItem&gt;.</returns>
+ List<BaseItem> GetItemList(InternalItemsQuery query);
+
+ /// <summary>
+ /// Updates the inherited values.
+ /// </summary>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ void UpdateInheritedValues(CancellationToken cancellationToken);
+
+ int GetCount(InternalItemsQuery query);
+
+ QueryResult<Tuple<BaseItem, ItemCounts>> GetGenres(InternalItemsQuery query);
+ QueryResult<Tuple<BaseItem, ItemCounts>> GetMusicGenres(InternalItemsQuery query);
+ QueryResult<Tuple<BaseItem, ItemCounts>> GetGameGenres(InternalItemsQuery query);
+ QueryResult<Tuple<BaseItem, ItemCounts>> GetStudios(InternalItemsQuery query);
+ QueryResult<Tuple<BaseItem, ItemCounts>> GetArtists(InternalItemsQuery query);
+ QueryResult<Tuple<BaseItem, ItemCounts>> GetAlbumArtists(InternalItemsQuery query);
+ QueryResult<Tuple<BaseItem, ItemCounts>> GetAllArtists(InternalItemsQuery query);
+
+ List<string> GetGameGenreNames();
+ List<string> GetMusicGenreNames();
+ List<string> GetStudioNames();
+ List<string> GetGenreNames();
+ List<string> GetAllArtistNames();
+ }
+}
+