public async Task <IActionResult> Approvals(CancellationToken cancellationToken, string fullName, int page = 1, int pageSize = 20) { var search = Query <PaymentDetailApproval> .Create(x => x.FullName.ToUpper().Contains(string.Empty)); var query = new EntityQuery <PaymentDetailApproval>(search, page, 20, null); var command = new PaymentApprovalReadCommand <PaymentDetailApproval>(query, (int)TrainDTrainorV2.Core.Enum.PaymentStatus.Submitted); var readModel = await Mediator.Send(command, cancellationToken).ConfigureAwait(false); return(new OkObjectResult(new { Data = readModel, Status = StatusCodes.Status200OK })); }
public async Task <IActionResult> ApprovedPayments(CancellationToken cancellationToken, string fullName, int page = 1, int pageSize = 20) { var search = Query <PaymentDetailApproval> .Create(x => x.FullName.ToUpper().Contains(string.Empty) && x.Status != (int)PaymentStatus.Submitted); search.IncludeProperties = @"UserProfile,UserProfile.User,Course"; var query = new EntityQuery <PaymentDetailApproval>(search, page, 20, null); var command = new PaymentApprovalReadCommand <PaymentDetailApproval>(query, (int)PaymentStatus.Approved); var readModel = await Mediator.Send(command, cancellationToken).ConfigureAwait(false); return(new OkObjectResult(new { Data = readModel, Status = StatusCodes.Status200OK })); }
protected override async Task <EntityListResult <PaymentDetailApprovalModel> > ProcessAsync(PaymentApprovalReadCommand <PaymentDetailApproval> message, CancellationToken cancellationToken) { var entityQuery = message.EntityQuery; var query = _dataContext.PaymentTransactions .Include(x => x.UserProfile) .ThenInclude(x => x.User) .Include(x => x.Course) .Where(x => x.Status == message.PaymentStatus); var total = await query .CountAsync(cancellationToken) .ConfigureAwait(false); if (total == 0) { return new EntityListResult <PaymentDetailApprovalModel> { Data = _emptyList.Value } } ; var result = await query .Sort(entityQuery.Sort) .Page(entityQuery.Page, entityQuery.PageSize) .ProjectTo <PaymentDetailApprovalModel>(_configurationProvider) .ToListAsync(cancellationToken) .ConfigureAwait(false); return(new EntityListResult <PaymentDetailApprovalModel> { Total = total, Data = result.AsReadOnly() }); } }