Пример #1
0
            public async Task <ActionResult> GetTransactions(long userId, [FromQuery] UserTransactionsParams transactionsParams)
            {
                if (!_customAuth.IsUserAllowedAccess(userId, HttpContext))
                {
                    return(StatusCode(401));
                }

                var response = await _tranService.GetTransactions(userId, transactionsParams);

                return(StatusCode(response.Status, response));
            }
Пример #2
0
        public async Task <PagedList <Transaction> > FindUsersTransaction(UserTransactionsParams userTransactionsParams, long userId)
        {
            IQueryable <Transaction> transactions = _context.Transactions
                                                    .Include(trans => trans.Merchant)
                                                    .Include(trans => trans.Buyer);

            switch (userTransactionsParams.Completed)
            {
            case "true":

                transactions
                .Where(tran => tran.Buyer.Id == userId ||
                       tran.Merchant.Id == userId && tran.Completed == true)
                .Include(tran => tran.Buyer)
                .Include(tran => tran.Merchant);
                break;

            default:
                transactions
                .Where(tran => tran.Buyer.Id == userId ||
                       tran.Merchant.Id == userId && tran.Completed == false)
                .Include(tran => tran.Buyer)
                .Include(tran => tran.Merchant);

                break;
            }

            if (userTransactionsParams.OrderDirection == "asc")
            {
                transactions.OrderBy(trans => trans.CreatedAt);
            }
            else
            {
                transactions.OrderByDescending(trans => trans.CreatedAt);
            }

            return(await PagedList <Transaction> .CreateAsync(transactions,
                                                              userTransactionsParams.PageNumber, userTransactionsParams.PageSize));
        }
Пример #3
0
        public async Task <ApiResponseDto <PaginatedTransactionsResponseDto> > GetTransactions(long userId, UserTransactionsParams userParams)
        {
            var transactions = await _transRepo.FindUsersTransaction(userParams, userId);

            if (transactions.TotalCount == 0)
            {
                return(new ApiResponseDto <PaginatedTransactionsResponseDto>(404, "No records found for this user", "Error fetching records", null));
            }

            var transactionsToReturn = _mapper.Map <IEnumerable <TransactionAsListDto> >(transactions);

            var paginatedResponse = new PaginatedTransactionsResponseDto()
            {
                Transactions = transactionsToReturn,
                PageSize     = transactions.PageSize,
                TotalPages   = transactions.TotalPages,
                Count        = transactions.TotalCount,
                CurrentPage  = transactions.CurrentPage
            };

            return(new ApiResponseDto <PaginatedTransactionsResponseDto>(200, "Success", null, paginatedResponse));
        }