public ActionResult Edit([Bind(Include = "Views12,TcSet")] EditViewsVM editVM, int[] TcSetID, int[]lsystemid, int[] CalcID) { ViewBag.Calculation = db.Calculation.Where(x => !x.CalculationFormula.Contains("Length")).ToList(); if (ModelState.IsValid) { var views = db.Views.Where(x => x.ViewsID == editVM.Views12.ViewsID).FirstOrDefault(); if(db.Views.Any(x=>x.ViewsName.Equals(editVM.Views12.ViewsName)&&(x.ViewsID!=editVM.Views12.ViewsID))) { ModelState.AddModelError("", "View name already exists"); Views views12 = db.Views.Find(editVM.Views12.ViewsID); var model = new EditViewsVM { Views12 = views12, TcSet = new List<TcSet>(), Calculation = new List<Calculation>() }; var set = db.ViewsProperty.Where(x => x.ViewsID == views12.ViewsID).ToList(); foreach (var item in set) model.TcSet.Add(item.TcSet); ViewBag.TC = db.TechnicalCharacteristic.OrderBy(x=>x.TCName).ToList(); model.Calculation = db.ViewsCalculation.Where(x => x.ViewsID == views.ViewsID).Select(x => x.Calculation).ToList(); return View(model); } if (TcSetID == null) { ModelState.AddModelError("", "You have not selected any properties in the View"); //ViewBag.Lsystem = db.Lsystem.Where(x => x.LsystemID != 0); Views views12 = db.Views.Find(views.ViewsID); var model = new EditViewsVM { Views12 = views12, TcSet = new List<TcSet>(), Calculation = new List<Calculation>() }; var set = db.ViewsProperty.Where(x => x.ViewsID == views12.ViewsID).ToList(); foreach (var item in set) model.TcSet.Add(db.TcSet.FirstOrDefault(x => x.TcSetID == item.TcSetID)); ViewBag.TC = db.TechnicalCharacteristic.OrderBy(x=>x.TCName).ToList(); model.Calculation = db.ViewsCalculation.Where(x => x.ViewsID == views.ViewsID).Select(x => x.Calculation).ToList(); return View(model); } views.ViewsName = editVM.Views12.ViewsName; views.DescriptionDE = editVM.Views12.DescriptionDE; views.DescriptionEN = editVM.Views12.DescriptionEN; views.ModifiedBy = User.Identity.Name; views.ModifiedOn = DateTime.Now; db.Entry(views).State = EntityState.Modified; db.Entry(views).Property(x => x.CreatedBy).IsModified = false; db.Entry(views).Property(x => x.CreatedOn).IsModified = false; var viewprop = db.ViewsProperty.Where(x => x.ViewsID == views.ViewsID).ToList(); foreach (var item in viewprop) db.ViewsProperty.Remove(item); var setname = new List<string>(); foreach(var setid in TcSetID) { var set = db.TcSet.FirstOrDefault(y => y.TcSetID == setid).SetName; if(!setname.Contains(set)) { setname.Add(set); var x = new ViewsProperty(); x.TcSetID = setid; x.ViewsID = views.ViewsID; db.ViewsProperty.Add(x); } } foreach (var item in db.ViewsCalculation.Where(x => x.ViewsID == views.ViewsID).ToList()) db.ViewsCalculation.Remove(item); foreach(var item in CalcID) { var c = new ViewsCalculation { ViewsID = views.ViewsID, CalculationID = item }; db.ViewsCalculation.Add(c); } db.SaveChanges(); return RedirectToAction("Index"); } return View("Error"); }
// GET: Views/Edit/5 public ActionResult Edit(int? id) { //ViewBag.Lsystem = db.Lsystem.Where(x => x.LsystemID != 0); if (id == null) { ViewBag.Error = "A null parameter was passed to the function"; return View("Error"); } Views views = db.Views.Find(id); var model = new EditViewsVM { Views12 = views, TcSet = new List<TcSet>(), Calculation = new List<Calculation>() }; var set = db.ViewsProperty.Where(x => x.ViewsID == id).ToList(); foreach (var item in set) model.TcSet.Add(item.TcSet); model.Calculation = db.ViewsCalculation.Where(x => x.ViewsID == id).Select(x=>x.Calculation).ToList(); ViewBag.TC = db.TechnicalCharacteristic.OrderBy(x=>x.TCName).ToList(); ViewBag.Calculation = db.Calculation.Where(x => !x.CalculationFormula.Contains("Length")).ToList(); if (views == null) { ViewBag.Error = "The requested View does not exist"; return View("Error"); } return View(model); }