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)); }
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)); }
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)); }