コード例 #1
0
        public async Task <BonusSummary> GetBonusesSummary(BonusSummaryFilter filter, AgentContext agentContext)
        {
            var query = from appliedMarkup in _context.AppliedBookingMarkups
                        join markupPolicy in _context.MarkupPolicies on appliedMarkup.PolicyId equals markupPolicy.Id
                        where markupPolicy.SubjectScopeId == agentContext.AgencyId.ToString() && markupPolicy.SubjectScopeType == SubjectMarkupScopeTypes.Agency
                        select new { appliedMarkup.Paid, appliedMarkup.Amount, markupPolicy.Currency };


            if (filter.From is not null)
            {
                query = query.Where(x => x.Paid >= filter.From.Value);
            }

            if (filter.To is not null)
            {
                query = query.Where(x => x.Paid <= filter.To.Value);
            }

            var summary = await query
                          .GroupBy(x => x.Currency)
                          .Select(x => new MoneyAmount(x.Sum(g => g.Amount), x.Key))
                          .ToListAsync();

            return(new BonusSummary {
                Summary = summary
            });
        }
コード例 #2
0
        public async Task <IActionResult> GetBonusesSummary([FromQuery] BonusSummaryFilter filter)
        {
            var agent = await _agentContext.GetAgent();

            return(Ok(await _markupBonusDisplayService.GetBonusesSummary(filter, agent)));
        }