Example #1
0
        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
            }));
        }
Example #2
0
        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()
            });
        }
    }