public async Task <IActionResult> GetOverdueInstallments() { var query = new GetOverdueInstallmentsQuery(); var result = await _mediator.Send(query); return(Ok(result)); }
public async Task <List <OverdueInstallmentDto> > Handle(GetOverdueInstallmentsQuery request, CancellationToken cancellationToken) { var overdueInstallmentsList = await _dbContext .Installments .Where(x => x.IsPaid == false && x.DueDate < DateTime.Today) .OrderBy(x => x.DueDate) .ToListAsync(cancellationToken); var overdueInstallmentsDtoList = new List <OverdueInstallmentDto>(); foreach (var installment in overdueInstallmentsList) { var agreement = await _dbContext .Agreements .FirstOrDefaultAsync(x => x.AgreementId == installment.AgreementId, cancellationToken); var member = await _dbContext .Members .FirstOrDefaultAsync(x => x.MemberId == agreement.MemberId, cancellationToken); var installmentDto = installment.Adapt <InstallmentDto>(); overdueInstallmentsDtoList.Add( new OverdueInstallmentDto { MemberFirstName = member.Name ?? "", MemberSurname = member.SurName ?? "", MembershipName = agreement.Name ?? "", InstallmentDetails = installmentDto } ); } return(overdueInstallmentsDtoList); }