using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using Ombi.Helpers; using Ombi.Store.Entities; namespace Ombi.Store.Repository { public interface IPlexContentRepository : IExternalRepository { Task ContentExists(string providerId); Task Get(string providerId, ProviderType type); Task GetByType(string providerId, ProviderType type, PlexMediaTypeEntity plexType); Task GetByKey(int key); Task Update(PlexServerContent existingContent); IQueryable GetAllEpisodes(); Task Add(PlexEpisode content); Task GetEpisodeByKey(int key); Task AddRange(IEnumerable content); IEnumerable GetWhereContentByCustom(Expression> predicate); Task GetFirstContentByCustom(Expression> predicate); Task DeleteEpisode(PlexEpisode content); void DeleteWithoutSave(PlexServerContent content); void DeleteWithoutSave(PlexEpisode content); Task UpdateRange(IEnumerable existingContent); void UpdateWithoutSave(PlexServerContent existingContent); } }