public async Task <IActionResult> Create([Bind("ProgressiveTaxID,Rate,From,To")] ProgressiveTax progressiveTax) { if (_context.ProgressiveTaxes.Where(x => x.Rate == progressiveTax.Rate && x.IsDeleted == false).FirstOrDefault() != null) { return(Forbid()); //Duplicate Rate } if (ModelState.IsValid) { progressiveTax.CreatedDate = progressiveTax.LastModifiedDate = DateTime.Now; progressiveTax.CreatedBy = progressiveTax.LastModifiedBy = "System"; progressiveTax.IsDeleted = false; _context.Add(progressiveTax); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(progressiveTax)); }
public void Calculate_ProgressiveTax_expectedValuesCalculates( double percentage, double grossSalary, double lowerLimit, double upperLimit, double expectedSumm) { // arrange decimal percentageDec = (decimal)percentage; decimal grossSalaryDec = (decimal)grossSalary; decimal lowerLimitDec = (decimal)lowerLimit; decimal?upperLimitDec = upperLimit == 0 ? null : (decimal?)upperLimit; decimal expectedSummDec = (decimal)expectedSumm; var progressiveTax = new ProgressiveTax(percentageDec, lowerLimitDec, upperLimitDec); // act progressiveTax.Calculate(grossSalaryDec); decimal actualTaxSumm = progressiveTax.Summ; // assert Assert.AreEqual(expectedSummDec, actualTaxSumm); }
public async Task <IActionResult> Edit(int id, [Bind("ProgressiveTaxID,Rate,From,To")] ProgressiveTax progressiveTax) { ProgressiveTax updateRec = _context.ProgressiveTaxes.Where(x => x.ProgressiveTaxID == id && x.IsDeleted == false).FirstOrDefault(); if (id != progressiveTax.ProgressiveTaxID | updateRec == null) { return(NotFound()); } if (ModelState.IsValid) { try { updateRec.Rate = progressiveTax.Rate; updateRec.From = progressiveTax.From; updateRec.To = progressiveTax.To; updateRec.LastModifiedBy = "System"; updateRec.LastModifiedDate = DateTime.Now; _context.Update(updateRec); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProgressiveTaxExists(progressiveTax.ProgressiveTaxID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(progressiveTax)); }
public static void Initialize(TaxCalculatorContext context) { context.Database.EnsureCreated(); if (context.TaxTypes.Any()) { return;// DB has been seeded } var progressiveTaxes = new ProgressiveTax[] { new ProgressiveTax { Rate = 0.1, From = 0, To = 8350, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new ProgressiveTax { Rate = 0.15, From = 8351, To = 33950, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new ProgressiveTax { Rate = 0.25, From = 33951, To = 82250, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new ProgressiveTax { Rate = 0.28, From = 82251, To = 171550, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new ProgressiveTax { Rate = 0.33, From = 171551, To = 372950, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new ProgressiveTax { Rate = 0.35, From = 372951, To = double.MaxValue, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false } }; progressiveTaxes.ToList().ForEach(x => context.ProgressiveTaxes.Add(x)); context.SaveChanges(); var taxTypes = new TaxType[] { new TaxType { Description = "Progressive", Code = "PGRSV", CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new TaxType { Description = "Flat Value", Code = "FLVL", CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new TaxType { Description = "Flat Rate", Code = "FLRT", CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false } }; taxTypes.ToList().ForEach(x => context.TaxTypes.Add(x)); context.SaveChanges(); var postalCodes = new PostalCode[] { new PostalCode { Value = "7441", TaxTypeID = context.TaxTypes.ToList().Where(x => x.Code.Equals("PGRSV")).FirstOrDefault().TaxTypeID, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new PostalCode { Value = "A100", TaxTypeID = context.TaxTypes.ToList().Where(x => x.Code.Equals("FLVL")).FirstOrDefault().TaxTypeID, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new PostalCode { Value = "7000", TaxTypeID = context.TaxTypes.ToList().Where(x => x.Code.Equals("FLRT")).FirstOrDefault().TaxTypeID, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false }, new PostalCode { Value = "1000", TaxTypeID = context.TaxTypes.ToList().Where(x => x.Code.Equals("PGRSV")).FirstOrDefault().TaxTypeID, CreatedBy = "System", LastModifiedBy = "System", CreatedDate = DateTime.Now, LastModifiedDate = DateTime.Now, IsDeleted = false } }; postalCodes.ToList().ForEach(x => context.PostalCodes.Add(x)); context.SaveChanges(); }