Example #1
0
        public IActionResult Create([FromBody] TaxCalcRequestViewModel taxRequest)
        {
            if (taxRequest == null)
            {
                return(BadRequest());
            }

            //check if a valid post code has been selected
            switch (taxRequest.PostalCode)
            {
            case "7441":
            case "1000":
                taxRequest.TaxAmount = CalculateProgressiveTax(taxRequest.AnnualIncome);
                break;

            case "A100":
                taxRequest.TaxAmount = CalculateFlatValueTax(taxRequest.AnnualIncome);
                break;

            case "7000":
                taxRequest.TaxAmount = CalculateFlatRateTax(taxRequest.AnnualIncome);
                break;

            default:
                return(BadRequest());
            }

            TaxCalculationViewModel taxCalcViewModel = new TaxCalculationViewModel();

            taxCalcViewModel.PostalCode   = taxRequest.PostalCode;
            taxCalcViewModel.AnnualIncome = taxRequest.AnnualIncome;
            taxCalcViewModel.TaxAmount    = taxRequest.TaxAmount;

            var id = _taxCalculationService.Add(taxCalcViewModel);

            //TODO: Write to TaxCalc table

            return(Ok(taxRequest));
        }