using System; using System.Collections.Generic; using System.Threading; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Persistence { /// /// Provides an interface to implement an Item repository /// public interface IItemRepository : IRepository { /// /// Saves an item /// /// The item. /// The cancellation token. void SaveItem(BaseItem item, CancellationToken cancellationToken); /// /// Deletes the item. /// /// The identifier. /// The cancellation token. void DeleteItem(Guid id, CancellationToken cancellationToken); /// /// Saves the items. /// /// The items. /// The cancellation token. void SaveItems(List items, CancellationToken cancellationToken); void SaveImages(BaseItem item); /// /// Retrieves the item. /// /// The id. /// BaseItem. BaseItem RetrieveItem(Guid id); /// /// Gets chapters for an item /// /// /// List GetChapters(BaseItem id); /// /// Gets a single chapter for an item /// /// /// /// ChapterInfo GetChapter(BaseItem id, int index); /// /// Saves the chapters. /// void SaveChapters(Guid id, List chapters); /// /// Gets the media streams. /// /// The query. /// IEnumerable{MediaStream}. List GetMediaStreams(MediaStreamQuery query); /// /// Saves the media streams. /// /// The identifier. /// The streams. /// The cancellation token. void SaveMediaStreams(Guid id, List streams, CancellationToken cancellationToken); /// /// Gets the item ids. /// /// The query. /// IEnumerable<Guid>. QueryResult GetItemIds(InternalItemsQuery query); /// /// Gets the items. /// /// The query. /// QueryResult<BaseItem>. QueryResult GetItems(InternalItemsQuery query); /// /// Gets the item ids list. /// /// The query. /// List<Guid>. List GetItemIdsList(InternalItemsQuery query); /// /// Gets the people. /// /// The query. /// List<PersonInfo>. List GetPeople(InternalPeopleQuery query); /// /// Updates the people. /// /// The item identifier. /// The people. void UpdatePeople(Guid itemId, List people); /// /// Gets the people names. /// /// The query. /// List<System.String>. List GetPeopleNames(InternalPeopleQuery query); /// /// Gets the item ids with path. /// /// The query. /// QueryResult<Tuple<Guid, System.String>>. List> GetItemIdsWithPath(InternalItemsQuery query); /// /// Gets the item list. /// /// The query. /// List<BaseItem>. List GetItemList(InternalItemsQuery query); /// /// Updates the inherited values. /// /// The cancellation token. void UpdateInheritedValues(CancellationToken cancellationToken); int GetCount(InternalItemsQuery query); QueryResult> GetGenres(InternalItemsQuery query); QueryResult> GetMusicGenres(InternalItemsQuery query); QueryResult> GetGameGenres(InternalItemsQuery query); QueryResult> GetStudios(InternalItemsQuery query); QueryResult> GetArtists(InternalItemsQuery query); QueryResult> GetAlbumArtists(InternalItemsQuery query); QueryResult> GetAllArtists(InternalItemsQuery query); List GetGameGenreNames(); List GetMusicGenreNames(); List GetStudioNames(); List GetGenreNames(); List GetAllArtistNames(); } }