public async Task <string> PostAsync(TaxCalculationViewModel taxModel)
        {
            var httpClient = new HttpClient();
            var response   = await httpClient.PostAsync(new Uri("http://localhost:44341/api/TaxCalculation"), new StringContent(JsonConvert.SerializeObject(taxModel)));

            response.EnsureSuccessStatusCode();

            string content = await response.Content.ReadAsStringAsync();

            return(await Task.Run(() => content));
        }
        public IActionResult Index(TaxCalcRequestViewModel taxModel)
        {
            TaxCalculationViewModel taxCalcModel = new TaxCalculationViewModel();

            taxCalcModel.PostalCode   = taxModel.SelectedPostalCode;
            taxCalcModel.AnnualIncome = Double.Parse(taxModel.AnnualIncome.ToString());
            taxCalcModel.TaxAmount    = 0;

            var PostResult = PostAsync(taxCalcModel).GetAwaiter().GetResult();

            taxModel = SetUpPostalCodes(taxModel);
            return(View(taxModel));
        }
예제 #3
0
        public ActionResult TaxPayersList([Bind(Include = "PostCode,TaxTotal,TaxTotal,TaxTotal,TaxTotal")] TaxCalculationViewModel taxCalculationViewModel)
        {
            _paySpaceAssessmentApplicationReposatory.GetAllCalculatedTaxType.Select(s => new TaxCalculationViewModel
            {
                taxID           = s.taxID,
                PostCode        = s.PostCode,
                TaxTotal        = s.TaxTotal,
                YearlySalary    = s.YearlySalary,
                transcationDate = DateTime.Now
            });
            var model = PopulateTaxCalculationViewModel();

            return(View("TaxPayersList", model));
        }
예제 #4
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));
        }
예제 #5
0
        //[ValidateAntiForgeryToken]
        public ActionResult CalculateTax(string postalCode, string annaulSalary)
        {
            TaxCalculationViewModel taxCalculationViewModel = new TaxCalculationViewModel();

            double Salary      = double.Parse(annaulSalary);
            double taxedAmount = 0.0;

            if (postalCode == "7741")
            {
                if ((Salary > 0) && (Salary <= 8350))
                {
                    double taxRate1 = 0.1;
                    taxedAmount = Salary * taxRate1;

                    taxCalculationViewModel.taxID           = 0;
                    taxCalculationViewModel.YearlySalary    = annaulSalary;
                    taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                    taxCalculationViewModel.PostCode        = postalCode;
                    taxCalculationViewModel.transcationDate = DateTime.Now;

                    Tax_CalculationTable tax = new Tax_CalculationTable();
                    tax.taxID           = taxCalculationViewModel.taxID;
                    tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                    tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                    tax.PostCode        = taxCalculationViewModel.PostCode;
                    tax.transcationDate = DateTime.Now;
                    //Call the bool to create text amount
                    _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                }
                else
                {
                    if ((Salary > 8351) && (Salary <= 33950))
                    {
                        double taxRate1 = 0.15;
                        taxedAmount = Salary * taxRate1;

                        taxCalculationViewModel.taxID           = 0;
                        taxCalculationViewModel.YearlySalary    = annaulSalary;
                        taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                        taxCalculationViewModel.PostCode        = postalCode;
                        taxCalculationViewModel.transcationDate = DateTime.Now;

                        Tax_CalculationTable tax = new Tax_CalculationTable();
                        tax.taxID           = taxCalculationViewModel.taxID;
                        tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                        tax.PostCode        = taxCalculationViewModel.PostCode;
                        tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                        tax.transcationDate = DateTime.Now;

                        //Call the bool to create text amount
                        _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                    }
                    else
                    if ((Salary > 33951) && (Salary <= 82250))
                    {
                        double taxRate1 = 0.25;
                        taxedAmount = Salary * taxRate1;

                        taxCalculationViewModel.taxID           = 0;
                        taxCalculationViewModel.YearlySalary    = annaulSalary;
                        taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                        taxCalculationViewModel.PostCode        = postalCode;
                        taxCalculationViewModel.transcationDate = DateTime.Now;

                        Tax_CalculationTable tax = new Tax_CalculationTable();
                        tax.taxID           = taxCalculationViewModel.taxID;
                        tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                        tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                        tax.PostCode        = taxCalculationViewModel.PostCode;
                        tax.transcationDate = DateTime.Now;
                        //Call the bool to create text amount
                        _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                    }
                    else
                    if ((Salary > 82251) && (Salary <= 171550))
                    {
                        double taxRate1 = 0.28;
                        taxedAmount = Salary * taxRate1;

                        taxCalculationViewModel.taxID           = 0;
                        taxCalculationViewModel.YearlySalary    = annaulSalary;
                        taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                        taxCalculationViewModel.PostCode        = postalCode;
                        taxCalculationViewModel.transcationDate = DateTime.Now;

                        Tax_CalculationTable tax = new Tax_CalculationTable();

                        tax.taxID           = taxCalculationViewModel.taxID;
                        tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                        tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                        tax.PostCode        = taxCalculationViewModel.PostCode;
                        tax.transcationDate = DateTime.Now;
                        //Call the bool to create text amount
                        _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                    }
                    else
                    if ((Salary > 171551) && (Salary <= 372950))
                    {
                        double taxRate1 = 0.33;
                        taxedAmount = Salary * taxRate1;

                        taxCalculationViewModel.taxID           = 0;
                        taxCalculationViewModel.YearlySalary    = annaulSalary;
                        taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                        taxCalculationViewModel.PostCode        = postalCode;
                        taxCalculationViewModel.transcationDate = DateTime.Now;

                        Tax_CalculationTable tax = new Tax_CalculationTable();

                        tax.taxID           = taxCalculationViewModel.taxID;
                        tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                        tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                        tax.PostCode        = taxCalculationViewModel.PostCode;
                        tax.transcationDate = DateTime.Now;
                        //Call the bool to create text amount
                        _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                    }
                    else
                    if ((Salary > 171551) && (Salary <= 372950))
                    {
                        double taxRate1 = 0.35;
                        taxedAmount = Salary * taxRate1;

                        taxCalculationViewModel.taxID           = 0;
                        taxCalculationViewModel.YearlySalary    = annaulSalary;
                        taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                        taxCalculationViewModel.PostCode        = postalCode;
                        taxCalculationViewModel.transcationDate = DateTime.Now;

                        Tax_CalculationTable tax = new Tax_CalculationTable();
                        tax.taxID           = taxCalculationViewModel.taxID;
                        tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                        tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                        tax.PostCode        = taxCalculationViewModel.PostCode;
                        tax.transcationDate = DateTime.Now;
                        //Call the bool to create text amount
                        _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                    }
                    else
                    if (Salary > 372951)
                    {
                        double taxRate1 = 0.35;
                        taxedAmount = Salary * taxRate1;

                        taxCalculationViewModel.taxID           = 0;
                        taxCalculationViewModel.YearlySalary    = annaulSalary;
                        taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                        taxCalculationViewModel.PostCode        = postalCode;
                        taxCalculationViewModel.transcationDate = DateTime.Now;

                        Tax_CalculationTable tax = new Tax_CalculationTable();
                        tax.taxID           = taxCalculationViewModel.taxID;
                        tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                        tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                        tax.PostCode        = taxCalculationViewModel.PostCode;
                        tax.transcationDate = DateTime.Now;
                        //Call the bool to create text amount
                        _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                    }
                }
            }
            if (postalCode == "A100")
            {
                if (Salary == 10000)
                {
                    double taxRate2   = 17.3 * 100;
                    double totalTaxed = Salary * taxRate2;


                    taxCalculationViewModel.taxID           = 0;
                    taxCalculationViewModel.YearlySalary    = annaulSalary;
                    taxCalculationViewModel.TaxTotal        = totalTaxed.ToString();
                    taxCalculationViewModel.PostCode        = postalCode;
                    taxCalculationViewModel.transcationDate = DateTime.Now;

                    Tax_CalculationTable tax = new Tax_CalculationTable();
                    tax.taxID           = taxCalculationViewModel.taxID;
                    tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                    tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                    tax.PostCode        = taxCalculationViewModel.PostCode;
                    tax.transcationDate = DateTime.Now;
                    //Call the bool to create text amount
                    _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                }
                else
                {
                    if (Salary < 171550)
                    {
                        double taxR     = 0.05;
                        double totalTax = Salary * taxR;

                        taxCalculationViewModel.taxID           = 0;
                        taxCalculationViewModel.YearlySalary    = annaulSalary;
                        taxCalculationViewModel.TaxTotal        = taxedAmount.ToString();
                        taxCalculationViewModel.PostCode        = postalCode;
                        taxCalculationViewModel.transcationDate = DateTime.Now;

                        Tax_CalculationTable tax = new Tax_CalculationTable();
                        tax.taxID           = taxCalculationViewModel.taxID;
                        tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                        tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                        tax.PostCode        = taxCalculationViewModel.PostCode;
                        tax.transcationDate = DateTime.Now;
                        //Call the bool to create text amount
                        _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
                    }
                }
            }
            if (postalCode == "7000")
            {
                double FatRa       = 17.5;
                double totalTaxVal = Salary * FatRa;

                taxCalculationViewModel.taxID           = 0;
                taxCalculationViewModel.YearlySalary    = annaulSalary;
                taxCalculationViewModel.TaxTotal        = totalTaxVal.ToString();
                taxCalculationViewModel.PostCode        = postalCode;
                taxCalculationViewModel.transcationDate = DateTime.Now;

                Tax_CalculationTable tax = new Tax_CalculationTable();

                tax.taxID           = taxCalculationViewModel.taxID;
                tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                tax.PostCode        = taxCalculationViewModel.PostCode;
                tax.transcationDate = DateTime.Now;
                //Call the bool to create text amount
                _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
            }
            if (postalCode == "1000")
            {
                double proR          = 17.5;
                double totalTaxValue = Salary * proR;

                taxCalculationViewModel.taxID           = 0;
                taxCalculationViewModel.YearlySalary    = annaulSalary;
                taxCalculationViewModel.TaxTotal        = totalTaxValue.ToString();
                taxCalculationViewModel.PostCode        = postalCode;
                taxCalculationViewModel.transcationDate = DateTime.Now;

                Tax_CalculationTable tax = new Tax_CalculationTable();
                tax.taxID           = taxCalculationViewModel.taxID;
                tax.YearlySalary    = taxCalculationViewModel.YearlySalary;
                tax.TaxTotal        = taxCalculationViewModel.TaxTotal;
                tax.PostCode        = taxCalculationViewModel.PostCode;
                tax.transcationDate = DateTime.Now;

                //Call the bool to create text amount
                _paySpaceAssessmentApplicationReposatory.SaveCalculatedTax(tax);
            }
            return(RedirectToAction("TaxPayersList"));
        }