public async Task <ActionResult> GenerateQuotation([FromBody] QuotationDto quotationRequest) { // We can move the input validation into QuotationService // and give more error detail, for example invalid email etc. if (quotationRequest == null || string.IsNullOrWhiteSpace(quotationRequest.FirstName) || string.IsNullOrWhiteSpace(quotationRequest.LastName) || string.IsNullOrWhiteSpace(quotationRequest.FromCurrencyCode) || string.IsNullOrWhiteSpace(quotationRequest.ToCurrencyCode) || quotationRequest.Amount <= 0 || (!string.IsNullOrWhiteSpace(quotationRequest.Email) && !RegexUtilities.IsValidEmail(quotationRequest.Email))) { return(BadRequest()); } return(Ok(await _quotationService.GenerateQuotation(quotationRequest))); }