diff --git a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs index f4bcc1a33..0e2313d5a 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs @@ -74,7 +74,7 @@ namespace Ombi.Schedule.Jobs.Ombi _refreshMetadata = refreshMetadata; } - private readonly IPlexContentRepository _plex; + private readonly IMediaServerContentRepository _plex; private readonly IEmbyContentRepository _emby; private readonly IJellyfinContentRepository _jellyfin; private readonly IRepository _recentlyAddedLog; @@ -130,11 +130,9 @@ namespace Ombi.Schedule.Jobs.Ombi // MOVIES var moviesContents = new List>(); - // these explicit casts won't work because: - // Unable to cast object of type 'PlexServerContentRepository' to type 'IMediaServerContentRepository`1[IMediaServerContent] - moviesContents.Add((await GetMoviesContent((IMediaServerContentRepository)_plex)).AsQueryable()); - moviesContents.Add((await GetMoviesContent((IMediaServerContentRepository)_emby)).AsQueryable()); - moviesContents.Add((await GetMoviesContent((IMediaServerContentRepository)_jellyfin)).AsQueryable()); + moviesContents.Add((await GetMoviesContent(_plex)).AsQueryable()); + moviesContents.Add((await GetMoviesContent(_emby)).AsQueryable()); + moviesContents.Add((await GetMoviesContent(_jellyfin)).AsQueryable()); // MUSIC var lidarrContent = _lidarrAlbumRepository.GetAll().AsNoTracking().ToList().Where(x => x.FullyAvailable); @@ -363,9 +361,9 @@ namespace Ombi.Schedule.Jobs.Ombi addedAlbumLogIds = lidarrParent != null && lidarrParent.Any() ? (lidarrParent?.Select(x => x.AlbumId)?.ToHashSet() ?? new HashSet()) : new HashSet(); } - private async Task> GetMoviesContent(IMediaServerContentRepository repository) + private async Task> GetMoviesContent(IMediaServerContentRepository repository) where T : class, IMediaServerContent { - var content = repository.GetAll().Include(x => x.Episodes).AsNoTracking(); + IQueryable content = repository.GetAll().Include(x => x.Episodes).AsNoTracking(); var localDataset = content.Where(x => x.Type == MediaType.Movie && !string.IsNullOrEmpty(x.TheMovieDbId)).ToHashSet(); // Filter out the ones that we haven't sent yet var addedLog = _recentlyAddedLog.GetAll().ToList(); @@ -399,7 +397,7 @@ namespace Ombi.Schedule.Jobs.Ombi return b.ToString(); } - private async Task> GetMoviesWithoutId(HashSet addedMovieLogIds, HashSet needsMovieDb, IMediaServerContentRepository repository) + private async Task> GetMoviesWithoutId(HashSet addedMovieLogIds, HashSet needsMovieDb, IMediaServerContentRepository repository) where T : class, IMediaServerContent { foreach (var movie in needsMovieDb) { @@ -413,7 +411,7 @@ namespace Ombi.Schedule.Jobs.Ombi return result.ToHashSet(); } - private async Task UpdateTheMovieDbId(IEnumerable content, IMediaServerContentRepository repository) + private async Task UpdateTheMovieDbId(IEnumerable content, IMediaServerContentRepository repository) where T : class, IMediaServerContent { foreach (var movie in content) {