Пример #1
0
        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
            });
        }