Example #1
0
        public async Task <IActionResult> FilterExpenses([FromQuery] ExpenseFilterRequestDTO requestDTO)
        {
            var result = await _expensesService.GetExpensesWithFilter(requestDTO);

            var mapResult = _mapper.Map <List <Expenses>, List <ExpenseResponseDTO> >(result);

            return(new OkObjectResult(mapResult));
        }
Example #2
0
        public async Task <List <Domain.Model.Income.Expenses> > GetExpensesWithFilter(ExpenseFilterRequestDTO filterRequestDTO)
        {
            var query = _repository.QueryWithoutTracking <Domain.Model.Income.Expenses>().Where(q => q.Status == StatusType.Active);

            if (filterRequestDTO.BankAccountId.HasValue)
            {
                query = query.Where(q => q.BankAccount.Id == filterRequestDTO.BankAccountId);
            }
            if (!string.IsNullOrEmpty(filterRequestDTO.Description))
            {
                query = query.Where(q => q.Description.Contains(filterRequestDTO.Description));
            }
            if (filterRequestDTO.ExpenseType.HasValue)
            {
                query = query.Where(q => q.Type == filterRequestDTO.ExpenseType.Value);
            }
            if (!string.IsNullOrEmpty(filterRequestDTO.DocumentNumber))
            {
                query = query.Where(q => q.DocumentNumber == filterRequestDTO.DocumentNumber);
            }
            if (filterRequestDTO.Expiry.HasValue)
            {
                query = query.Where(q => q.Expiry == filterRequestDTO.Expiry.Value);
            }
            if (filterRequestDTO.ExpiryDate.HasValue)
            {
                query = query.Where(q => q.ExpiryDate == filterRequestDTO.ExpiryDate.Value);
            }
            query = query.Skip(filterRequestDTO.Start * filterRequestDTO.Length).Take(filterRequestDTO.Length);
            var expenseList = await query.Include(q => q.BankAccount).ToListAsync();

            return(expenseList);
        }