public Response <Expense> ProcessExpenseEmailText(string emailText) { var expenseFromEmail = new Expense(); var response = new Response <Expense>(); var emailXml = _extractor.ExtractXmlFromEmailText(emailText); _validationService.ValidateEmailXml(response, emailXml); if (!response.Success) { return(response); } _validationService.ValidateTotalCostInExpenseEmail(response, emailXml); if (!response.Success) { return(response); } var expense = _mappingService.MapExpenseEmailXmlToDomain(expenseFromEmail, emailXml); return(new Response <Expense> { Payload = expense }); }