public ActionResult Create() { var model = new TaxRateEditViewModel(); foreach (var taxClass in taxClassService.FindAll().ToList()) { model.ClassRates.Add(new TaxClassRateEditViewModel { TaxClassId = taxClass.Id, TaxClassName = taxClass.Name }); } ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name"); return View(model); }
public TaxRate AddOrUpdate(TaxRateEditViewModel model) { TaxRate taxRate; if (model.Id == 0) { taxRate = Mapper.Map <TaxRate>(model); db.TaxRates.Add(taxRate); } else { taxRate = Find(model.Id); taxRate = Mapper.Map(model, taxRate); var classRatesToDelete = taxRate.ClassRates.ToList().Where(r => !model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId) || model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId && cr.Amount == null)); foreach (var taxClassRate in classRatesToDelete) { db.TaxClassRates.Remove(taxClassRate); } } foreach (var classRateView in model.ClassRates) { if (classRateView.Amount == null) { continue; } TaxClassRate classRate = null; if (model.Id != 0) { classRate = taxRate.ClassRates.FirstOrDefault(r => r.TaxClassId == classRateView.TaxClassId); // If rate exists in db and is changed in view if (classRate != null) { classRate.Amount = classRateView.Amount.Value; } } if (classRate == null) { classRate = new TaxClassRate { TaxRateId = taxRate.Id, TaxClassId = classRateView.TaxClassId, Amount = classRateView.Amount.Value }; db.TaxClassRates.Add(classRate); } } db.SaveChanges(); return(taxRate); }
public ActionResult Create(TaxRateEditViewModel model) { if (ModelState.IsValid) { var taxRate = taxRateService.AddOrUpdate(model); return RedirectToAction("Index") .WithSuccess(string.Format("The tax rate \"{0}\" has been added".TA(), taxRate.Name)); } ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name"); return View(model); }
public ActionResult Create(TaxRateEditViewModel model) { if (ModelState.IsValid) { var taxRate = taxRateService.AddOrUpdate(model); return(RedirectToAction("Index") .WithSuccess(string.Format("The tax rate \"{0}\" has been added".TA(), taxRate.Name))); } ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name"); return(View(model)); }
public TaxRate AddOrUpdate(TaxRateEditViewModel model) { TaxRate taxRate; if (model.Id == 0) { taxRate = Mapper.Map<TaxRate>(model); db.TaxRates.Add(taxRate); } else { taxRate = Find(model.Id); taxRate = Mapper.Map(model, taxRate); var classRatesToDelete = taxRate.ClassRates.ToList().Where(r => !model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId) || model.ClassRates.Any(cr => cr.TaxClassId == r.TaxClassId && cr.Amount == null)); foreach (var taxClassRate in classRatesToDelete) { db.TaxClassRates.Remove(taxClassRate); } } foreach (var classRateView in model.ClassRates) { if (classRateView.Amount == null) continue; TaxClassRate classRate = null; if (model.Id != 0) { classRate = taxRate.ClassRates.FirstOrDefault(r => r.TaxClassId == classRateView.TaxClassId); // If rate exists in db and is changed in view if (classRate != null) { classRate.Amount = classRateView.Amount.Value; } } if (classRate == null) { classRate = new TaxClassRate { TaxRateId = taxRate.Id, TaxClassId = classRateView.TaxClassId, Amount = classRateView.Amount.Value }; db.TaxClassRates.Add(classRate); } } db.SaveChanges(); return taxRate; }
public ActionResult Create() { var model = new TaxRateEditViewModel(); foreach (var taxClass in taxClassService.FindAll().ToList()) { model.ClassRates.Add(new TaxClassRateEditViewModel { TaxClassId = taxClass.Id, TaxClassName = taxClass.Name }); } ViewBag.TaxZoneId = new SelectList(taxZoneService.FindAll().Where(z => z.IsActive).ToList(), "Id", "Name"); return(View(model)); }