public async Task <CustomerDto> GetTransactionsByCustomerAsync(CustomerInquiryInput request) { var customer = await _context.Customers .SingleOrDefaultAsync(c => (request.CustomerID != null && c.CustomerID == request.CustomerID.Value) || c.Email.Equals(request.Email)); // Load transaction to customer await LoadTransactionsForCustomer(customer); var customers = _mapper.Map <CustomerDto>(customer); return(customers); }
public async Task <ActionResult <CustomerDto> > Get([FromQuery] CustomerInquiryInput customerInquiryCriteria) { if ((customerInquiryCriteria.CustomerID == null && (string.IsNullOrEmpty(customerInquiryCriteria.Email) || !TryValidateModel(customerInquiryCriteria)))) { string errorMessages = string.Join("; ", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)); return(BadRequest(errorMessages)); } var customers = await _customersRepository.GetTransactionsByCustomerAsync(customerInquiryCriteria); if (customers == null) { return(NotFound("No inquiry criteria")); } return(Ok(customers)); }