public PagingSpec <Episode> EpisodesWhereCutoffUnmet(PagingSpec <Episode> pagingSpec) { var qualitiesBelowCutoff = new List <QualitiesBelowCutoff>(); var languagesBelowCutoff = new List <LanguagesBelowCutoff>(); var profiles = _profileService.All(); var languageProfiles = _languageProfileService.All(); //Get all items less than the cutoff foreach (var profile in profiles) { var cutoffIndex = profile.GetIndex(profile.Cutoff); var belowCutoff = profile.Items.Take(cutoffIndex.Index).ToList(); if (belowCutoff.Any()) { qualitiesBelowCutoff.Add(new QualitiesBelowCutoff(profile.Id, belowCutoff.SelectMany(i => i.GetQualities().Select(q => q.Id)))); } } foreach (var profile in languageProfiles) { var languageCutoffIndex = profile.Languages.FindIndex(v => v.Language == profile.Cutoff); var belowLanguageCutoff = profile.Languages.Take(languageCutoffIndex).ToList(); if (belowLanguageCutoff.Any()) { languagesBelowCutoff.Add(new LanguagesBelowCutoff(profile.Id, belowLanguageCutoff.Select(l => l.Language.Id))); } } return(_episodeRepository.EpisodesWhereCutoffUnmet(pagingSpec, qualitiesBelowCutoff, languagesBelowCutoff, false)); }
private int AddSeries(SeriesResource seriesResource) { var model = seriesResource.ToModel(); // Set a default LanguageProfileId to maintain backwards compatibility with apps using the v2 API if (model.LanguageProfileId == 0 || !_languageProfileService.Exists(model.LanguageProfileId)) { model.LanguageProfileId = _languageProfileService.All().First().Id; } return(_addSeriesService.AddSeries(model).Id); }
public void Clean() { var languageProfiles = _languageProfileService.All(); var firstLangaugeProfile = languageProfiles.First(); var series = _seriesRepository.All().ToList(); var seriesToUpdate = new List <Series>(); series.ForEach(s => { if (s.LanguageProfileId == 0 || languageProfiles.None(l => l.Id == s.LanguageProfileId)) { s.LanguageProfileId = firstLangaugeProfile.Id; seriesToUpdate.Add(s); } }); _seriesRepository.UpdateMany(seriesToUpdate); }
private List <LanguageProfileResource> GetAll() { var profiles = _profileService.All().ToResource(); return(profiles); }