public async Task <IActionResult> GetFilteredReceipts(ReceiptFilterCriteria filterCriteria) { var receipts = await _receiptService.GetFilteredReceiptsAsync(filterCriteria); if (receipts == null) { return(NoContent()); } return(Ok(receipts)); }
public async Task <IEnumerable <Receipt> > GetFilteredReceiptsAsync(ReceiptFilterCriteria filterCriteria) { return(await _context.Receipts .Where(r => !filterCriteria.UserId.HasValue || r.UserId == filterCriteria.UserId) .Where(r => !filterCriteria.DateFrom.HasValue || r.PurchaseDate >= filterCriteria.DateFrom) .Where(r => !filterCriteria.DateTo.HasValue || r.PurchaseDate <= filterCriteria.DateTo) .Where(r => !filterCriteria.TotalFrom.HasValue || r.TotalAmount >= filterCriteria.TotalFrom) .Where(r => !filterCriteria.TotalTo.HasValue || r.TotalAmount <= filterCriteria.TotalTo) .Where(r => !filterCriteria.CategoryId.HasValue || r.CategoryId == filterCriteria.CategoryId) .Include(r => r.ReceiptPhoto) .Include(r => r.PaymentMethod) .Include(r => r.Category) .Include(r => r.Currency) .ToListAsync()); }