public async Task <IEnumerable <OutcomeOverviewModel> > HandleAsync(ListYearOutcomeFromCategory query) { using (ReadModelContext db = new ReadModelContext()) { IQueryable <OutcomeEntity> entities = db.Outcomes; if (!query.CategoryKey.IsEmpty) { entities = entities.Where(o => o.Categories.Select(c => c.CategoryId).Contains(query.CategoryKey.AsGuidKey().Guid)); } List <OutcomeOverviewModel> outcomes = await entities .Where(o => o.When.Year == query.Year.Year) .OrderBy(o => o.When) .Select(o => o.ToOverviewModel()) .ToListAsync(); return(outcomes); } }
public async Task <List <OutcomeOverviewModel> > HandleAsync(ListYearOutcomeFromCategory query) { using (ReadModelContext db = dbFactory.Create()) { var sql = db.Outcomes .Include(o => o.Categories) .WhereUserKey(query) .Where(o => o.When.Year == query.Year.Year); sql = ApplyCategoryKey(sql, query.CategoryKey); sql = ApplySorting(sql, query); sql = ApplyPaging(sql, query); List <OutcomeOverviewModel> outcomes = await sql .Select(o => o.ToOverviewModel(query.Version)) .ToListAsync(); return(outcomes); } }