using Kyoo.Models; using System.Collections.Generic; using System.Threading.Tasks; namespace Kyoo.Controllers { public interface ILibraryManager { // Get by slug Library GetLibrary(string librarySlug); Collection GetCollection(string slug); Show GetShow(string slug); Episode GetEpisode(string showSlug, long seasonNumber, long episodeNumber); Episode GetMovieEpisode(string movieSlug); Genre GetGenre(string slug); Studio GetStudio(string slug); People GetPeople(string slug); // Get all IEnumerable GetLibraries(); IEnumerable GetShows(); IEnumerable GetEpisodes(); IEnumerable GetStudios(); IEnumerable GetGenres(); // Search IEnumerable SearchCollections(string searchQuery); IEnumerable SearchShows(string searchQuery); IEnumerable SearchEpisodes(string searchQuery); IEnumerable SearchGenres(string searchQuery); IEnumerable SearchStudios(string searchQuery); IEnumerable SearchPeople(string searchQuery); // Other get helpers Show GetShowByPath(string path); IEnumerable GetLibrariesPath(); //Register values void Register(object obj); void RegisterShowLinks(Library library, Collection collection, Show show); Task SaveChanges(); // Edit values void Edit(Library library, bool resetOld); void Edit(Collection collection, bool resetOld); void Edit(Show show, bool resetOld); void Edit(Season season, bool resetOld); void Edit(Episode episode, bool resetOld); void Edit(Track track, bool resetOld); void Edit(People people, bool resetOld); void Edit(Studio studio, bool resetOld); void Edit(Genre genre, bool resetOld); // Validate values Library Validate(Library library); Collection Validate(Collection collection); Show Validate(Show show); Season Validate(Season season); Episode Validate(Episode episode); People Validate(People people); Studio Validate(Studio studio); Genre Validate(Genre genre); IEnumerable Validate(IEnumerable id); // Remove values void RemoveShow(Show show); void RemoveSeason(Season season); void RemoveEpisode(Episode episode); } }