public JsonResult AddSystem(string selectedItems, int unitId) { using (var db = new WebAppDbContext()) { using (var transaction = db.Database.BeginTransaction()) { List <TreeViewNode> parentItems = new List <TreeViewNode>(); var vm = new ConfigViewModel(); try { if (unitId != 0) { if (IsValidSiteId(unitId)) { List <TreeViewNode> items = (new JavaScriptSerializer()).Deserialize <List <TreeViewNode> >(selectedItems); List <string> newListOfParent = new List <string>(); foreach (var temp in items.Select(x => x.parents)) { newListOfParent = newListOfParent.Concat(temp).ToList(); } newListOfParent = newListOfParent.Distinct().ToList(); foreach (var selected in items) { if (selected.parent == "#") { selected.parent = "0"; } if (!db.C_Site_Config.Where(x => x.SiteId == unitId).Any(x => x.ESWBS == selected.id)) { var model = new C_Site_Config { SiteId = unitId, ESWBS = selected.id, PESWBS = selected.parent, Title = selected.text, Nomanclature = selected.text.Substring(selected.text.IndexOf('-') + 2), }; db.C_Site_Config.Add(model); } } foreach (var selected in newListOfParent) { if (!items.Where(x => x.id == selected).Any() && selected != "#") { C_Config_Master master = db.C_Config_Master.Where(x => x.ESWBS == selected).FirstOrDefault(); if (!db.C_Site_Config.Where(x => x.SiteId == unitId).Any(x => x.ESWBS == selected)) { var model = new C_Site_Config { SiteId = unitId, ESWBS = selected, PESWBS = master.PESWBS, Title = master.Nomanclature, Nomanclature = master.Nomanclature, }; db.C_Site_Config.Add(model); } } } db.SaveChanges(); transaction.Commit(); vm = GetSiteConfigTree(unitId); } } //Serialize to JSON string. return(Json(vm, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { transaction.Rollback(); Exception(ex); return(Json(vm, JsonRequestBehavior.AllowGet)); } } } }
public ActionResult EditChild(C_SiteConfigModel model) { var type = "error"; var msg = string.Empty; string actionName = "EditChild"; _logger.Log(LogLevel.Trace, actionName + " :: started."); ConfigViewModel vm = new ConfigViewModel(); try { if (ModelState.IsValid) { if (model.SiteId > 0) { if (IsValidSiteId(model.SiteId)) { using (var db = new WebAppDbContext()) { if (model.SiteId != 0 && !String.IsNullOrWhiteSpace(model.ESWBS)) { if (db.C_Site_Config.Any(x => x.SiteId == model.SiteId && model.ESWBS == x.ESWBS)) { var obj = new C_Site_Config() { SiteId = model.SiteId, ESWBS = model.ESWBS, PESWBS = model.PESWBS, Nomanclature = model.Nomanclature, Qty = model.Qty, PMS_No = model.PMS_No, SMR_Code = model.SMR_Code, CageId = model.CageId, PartId = model.PartId, Title = model.ESWBS + " - " + model.Nomanclature, }; db.Entry(obj).State = EntityState.Modified; db.SaveChanges(); vm = GetSiteConfigTree(model.SiteId); type = "success"; msg = "ESWBS Updated Successfully !! "; } else { msg = "ESWBS : " + model.ESWBS + " Not Found."; _logger.Log(LogLevel.Trace, actionName + " :: " + msg); } _logger.Log(LogLevel.Trace, actionName + " :: Ended."); } else { _logger.Log(LogLevel.Error, actionName + " :: Ended. Required data missing. "); msg = "Required Data Missing !!!"; } } } else { msg = "Please Select Valid Site !!!"; } } else { msg = "Invalid Site Selected !!!"; } } else { _logger.Log(LogLevel.Error, actionName + " :: Ended. Model validation failed "); Alert("Something Went Wrong !!", NotificationType.error); msg = "Validation failed !!!"; } } catch (Exception ex) { type = "error"; Exception(ex); _logger.Log(LogLevel.Error, actionName + " EXCEPTION :: " + ex.ToString() + " INNER EXCEPTION :: " + ex.InnerException?.ToString()); msg = "Something Went Wrong !!!"; } if (type == "success") { return(Json(new { type = type, msg = msg, vm = vm }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { type = type, msg = msg, vm = model }, JsonRequestBehavior.AllowGet)); } }