public ActionResult Index(TaxCalculateViewModel model) { if (ModelState.IsValid) { var taxRate = DocumentSession.Load <TaxRate>(model.SelectedYear); model.Result = _calculateService.Calculate(taxRate, model.TaxableIncome.Value); } else { ShowErrorMessage("Please input valid data"); } var list = DocumentSession.Query <TaxRate>() .OrderByDescending(r => r.Year) .ToArray() .Select(r => new SelectListItem { Text = r.Description, Value = r.Id.ToString(), }); ViewBag.TaxRatesList = list; return(View(model)); }
public IActionResult Index(TaxCalculateViewModel lendViewModel) { // update the database var postalCode = _postalCodeRepository.GetById(lendViewModel.SelectedPostalCodeId); var incomeTax = _incomeTaxRepository.GetFullIncomeTax(postalCode.IncomeTaxId); var result = TaxCalculatorServiceFactory.GetTaxCalculatorService( (DataContracts.TaxType)Enum.Parse(typeof(DataContracts.TaxType), incomeTax.IncomeTaxType)).Calculate(incomeTax, lendViewModel.TaxableIncome); TaxResultViewModel taxResultViewModel = new TaxResultViewModel() { TaxableIncome = lendViewModel.TaxableIncome, TaxAmount = result.TotalAmount, TaxType = incomeTax.IncomeTaxType }; var log = new TaxQueryLog() { DateQueried = DateTime.Now, PostCode = postalCode.PostCode, TaxableIncome = lendViewModel.TaxableIncome, TaxAmount = result.TotalAmount }; _taxQueryLogRepository.Create(log); return(RedirectToAction("TaxResult", taxResultViewModel)); }
public void calculate_should_call_calculator_service() { //arrange var result = new Result(); var calculateService = Substitute.For <ICalculateService>(); calculateService.Calculate(null, 0).ReturnsForAnyArgs(c => result); var documentSession = Substitute.For <IDocumentSession>(); documentSession.Query <TaxRate>().Returns(new FakeRavenQueryable <TaxRate>(Enumerable.Empty <TaxRate>().AsQueryable())); var controller = new CalculatorController(calculateService) { DocumentSession = documentSession }; var model = new TaxCalculateViewModel { SelectedYear = 1, TaxableIncome = 1, }; //act controller.Index(model); //assert calculateService.ReceivedWithAnyArgs().Calculate(null, 0); Assert.AreEqual(result, model.Result); }
public IActionResult Index() { var taxClaculationView = new TaxCalculateViewModel() { PostalCodes = _postalCodeRepository.GetAll() }; return(View(taxClaculationView)); }