Пример #1
0
        public async Task <List <OutcomeOverviewModel> > HandleAsync(ListMonthOutcomeFromCategory query)
        {
            using (ReadModelContext db = readModelContextFactory.Create())
            {
                IQueryable <OutcomeEntity> entities = db.Outcomes.WhereUserKey(query.UserKey);
                if (!query.CategoryKey.IsEmpty)
                {
                    entities = entities.Where(o => o.Categories.Select(c => c.CategoryId).Contains(query.CategoryKey.AsGuidKey().Guid));
                }

                var sql = entities
                          .Include(o => o.Categories)
                          .Where(o => o.When.Month == query.Month.Month && o.When.Year == query.Month.Year);

                sql = SortOverviewOutcomes(sql, query.SortDescriptor);

                if (query.PageIndex != null)
                {
                    sql = sql.TakePage(query.PageIndex.Value, PageSize);
                }

                List <OutcomeOverviewModel> models = await sql
                                                     .Select(o => o.ToOverviewModel())
                                                     .ToListAsync();

                return(models);
            }
        }
Пример #2
0
        public async Task <IEnumerable <OutcomeOverviewModel> > HandleAsync(ListMonthOutcomeFromCategory 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.Month == query.Month.Month && o.When.Year == query.Month.Year)
                                                       .OrderBy(o => o.When)
                                                       .Select(o => o.ToOverviewModel())
                                                       .ToListAsync();

                return(outcomes);
            }
        }
Пример #3
0
        public async Task <List <OutcomeOverviewModel> > HandleAsync(ListMonthOutcomeFromCategory query)
        {
            using (ReadModelContext db = dbFactory.Create())
            {
                var sql = db.Outcomes
                          .Include(o => o.Categories)
                          .WhereUserKey(query)
                          .Where(o => o.When.Month == query.Month.Month && o.When.Year == query.Month.Year);

                sql = ApplyCategoryKey(sql, query.CategoryKey);
                sql = ApplySorting(sql, query);
                sql = ApplyPaging(sql, query);

                List <OutcomeOverviewModel> models = await sql
                                                     .Select(o => o.ToOverviewModel(query.Version))
                                                     .ToListAsync();

                return(models);
            }
        }