コード例 #1
0
        public async Task <ActionResult <AnnualTaxDTO> > Post(RequestAnnualTaxDTO input)
        {
            try
            {
                var taxType   = _taxTypeService.GetTaxType(input.PostalCode);
                var taxAmount = await _taxCalculatorService.CalculateTaxAsync(taxType, input.AnnualIncome, input.PostalCode);

                NewAnnualTaxCommand command = new NewAnnualTaxCommand
                {
                    CalculatedAt  = DateTime.Now,
                    PostalCode    = input.PostalCode,
                    AnnualIncome  = input.AnnualIncome,
                    CalculatedTax = taxAmount
                };
                var annualTax = await Mediator.Send(command);


                //This should be done with AutoMapper
                var annualTaxDto = new AnnualTaxDTO()
                {
                    Id            = annualTax.Id,
                    CalculatedAt  = annualTax.CalculatedAt,
                    PostalCode    = annualTax.PostalCode,
                    AnnualIncome  = annualTax.AnnualIncome,
                    CalculatedTax = annualTax.CalculatedTax
                };

                return(annualTaxDto);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            };
        }