public void UpdateQueryResults(ComicQuery query) { Title = query.Title; switch (query.Title) { case "LINQ ułatwia zapytania": LinqMakesQueriesEasy(); break; case "Drogie komiksy": ExpensiveComics(); break; case "LINQ jest wszechstronne 1": LinqIsVersatile1(); break; case "LINQ jest wszechstronne 2": LinqIsVersatile2(); break; case "LINQ jest wszechstronne 3": LinqIsVersatile3(); break; case "Grupuj komiksy według zakresu cen": CombineJimmysValuesIntoGroups(); break; case "Połącz zakupy z cenami": JoinPurchasesWithPrices(); break; case "Wszystkie komiksy w kolekcji": AllComics(); break; } }
public IEnumerable <Comic> GetComics(ComicQuery Query) { bool ByEpisode = false; List <EpisodeEf> Episodes = new List <EpisodeEf>(); if (Query.EpisodeNumber > 0) { ByEpisode = true; } else if (Query.Date != new DateTime(0)) { ByEpisode = false; } // Daily or Weekly limit if (Query.Type.Equals("weekly", StringComparison.InvariantCultureIgnoreCase)) { if (ByEpisode) { Episodes = EpisodeContext.Episodes .Include(x => x.Chapter) .Include(x => x.Ratings) .Where(x => x.EpisodeNumber >= Query.EpisodeNumber && x.EpisodeNumber < (Query.EpisodeNumber + 7)) .OrderBy(x => x.EpisodeNumber).ThenBy(x => x.EpisodeSubNumber) .ToList(); } else { Episodes = EpisodeContext.Episodes .Include(x => x.Chapter) .Include(x => x.Ratings) .Where(x => x.EpisodeDate >= Query.Date.Date && x.EpisodeDate < Query.Date.AddDays(7).Date) .OrderBy(x => x.EpisodeNumber).ThenBy(x => x.EpisodeSubNumber) .ToList(); } } else { if (ByEpisode) { Episodes = EpisodeContext.Episodes .Include(x => x.Chapter) .Include(x => x.Ratings) .Where(x => x.EpisodeNumber >= Query.EpisodeNumber && x.EpisodeNumber < (Query.EpisodeNumber + 1)) .OrderBy(x => x.EpisodeNumber).ThenBy(x => x.EpisodeSubNumber) .ToList(); } else { Episodes = EpisodeContext.Episodes .Include(x => x.Chapter) .Include(x => x.Ratings) .Where(x => x.EpisodeDate >= Query.Date.Date && x.EpisodeDate < Query.Date.AddDays(1).Date) .OrderBy(x => x.EpisodeNumber).ThenBy(x => x.EpisodeSubNumber) .ToList(); } } return(Episodes .Select(x => new Comic() { Date = x.EpisodeDate, Chapter = x.Chapter.ChapterTitle, Commentary = (Query.IncludeCommentary ? x.EpisodeCommentary : null), EpisodeNumber = x.EpisodeNumber, EpisodeSubNumber = x.EpisodeSubNumber, ImageUrl = x.EpisodeFileUrl, Title = x.EpisodeTitle, IsAnimated = x.EpisodeIsAnimation, AverageRating = (x.Ratings.Count > 0 ? x.Ratings.Average(x => x.EpisodeRatingValue) : 0) })); }