public ActionResult UpdateActivity([Bind(Include = "ID,Name,Description,Weigth,Process_id,Type_id,activity_key,Category")] APMT_Activity a) { if (ModelState.IsValid) { db.Entry(a).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("SetupActivity", new { id = a.Process_Id })); } return(View(a)); }
public ActionResult SaveActivity(int id) { var process = db.APMT_Process.FirstOrDefault(x => x.ID == id); DataSet dataSet = JsonConvert.DeserializeObject <DataSet>("{" + process.JsonContent.Substring(process.JsonContent.IndexOf("\"nodeDataArray\""), process.JsonContent.IndexOf("\"linkDataArray\"") - process.JsonContent.IndexOf("\"nodeDataArray\"")) + "}"); var demo = "{" + process.JsonContent.Substring(process.JsonContent.IndexOf("\"linkDataArray\"")); DataTable dataTable = dataSet.Tables["nodeDataArray"]; db.sp_deletetask(id); int[] k = new int[dataTable.Rows.Count]; int i = 0; foreach (DataRow row in dataTable.Rows) { k[i] = int.Parse(row["key"].ToString()); i++; } foreach (var item in GetKey(id)) { if (Array.Exists(k, e => e == item) == false) { db.APMT_Activity.Remove(db.APMT_Activity.FirstOrDefault(x => x.Process_Id == id && x.activity_key == item)); db.SaveChanges(); } } foreach (DataRow row in dataTable.Rows) { if (Array.Exists(GetKey(id), x => x == int.Parse(row["key"].ToString())) == false) { APMT_Activity a = new APMT_Activity(); a.Name = row["text"].ToString(); a.Category = row["Category"].ToString(); a.activity_key = int.Parse(row["key"].ToString()); a.Description = ""; a.Process_Id = process.ID; a.Weigth = 0; a.Type_id = 1; db.APMT_Activity.Add(a); db.SaveChanges(); } } return(RedirectToAction("SetupActivity", new { id = id })); }