public static string SaveChanges(int parentID, string rows) { Dictionary <string, string> result = new Dictionary <string, string>() { { "saved", "" }, { "ids", "" }, { "error", "" } }; bool exists = false, saved = false; string ids = string.Empty, errorMsg = string.Empty, tempMsg = string.Empty; try { DataTable dtjson = (DataTable)JsonConvert.DeserializeObject(rows, (typeof(DataTable))); if (dtjson.Rows.Count == 0) { errorMsg = "Unable to save. An invalid list of changes was provided."; saved = false; } int id = 0, sortOrder = 0, archive = 0; string scope = string.Empty, description = string.Empty; HttpServerUtility server = HttpContext.Current.Server; //save foreach (DataRow dr in dtjson.Rows) { id = 0; sortOrder = 0; scope = string.Empty; description = string.Empty; archive = 0; tempMsg = string.Empty; int.TryParse(dr["ALLOCATIONID"].ToString(), out id); //scope = server.UrlDecode(dr["Scope"].ToString()); //description = server.UrlDecode(dr["DESCRIPTION"].ToString()); //int.TryParse(dr["SORT_ORDER"].ToString(), out sortOrder); //int.TryParse(dr["X"].ToString(), out archive); saved = MasterData.Allocation_Set_GroupID(id, parentID, out tempMsg); if (saved) { ids += string.Format("{0}{1}", ids.Length > 0 ? "," : "", id.ToString()); } if (tempMsg.Length > 0) { errorMsg = string.Format("{0}{1}{2}", errorMsg, errorMsg.Length > 0 ? Environment.NewLine : "", tempMsg); } } } catch (Exception ex) { LogUtility.LogException(ex); saved = false; errorMsg = ex.Message; } result["saved"] = saved.ToString(); result["error"] = errorMsg; return(JsonConvert.SerializeObject(result, Formatting.None)); }