public JsonResult Update(string model) { string typeName = string.Empty; string reason = string.Empty; string message = string.Empty; try { Lookup item = JsonConvert.DeserializeObject <Lookup>(model); typeName = item.Type; LookupProvider provider = new LookupProvider(_dbContext); // check to make sure the lookup name is not used anywhere LookupType type; if (Enum.TryParse(typeName, out type)) { // make sure the original one is not in used Lookup oldItem = provider.Retrieve(item.Id); if (provider.InUse(type, oldItem.Name)) // old lookup name is in used; can't change it { reason = "Conflict"; message = string.Format("Cannot change {0} type of '{1}' that is still in used.", typeName, oldItem.Name); } else if (provider.Exist(type, item.Name) || provider.InUse(type, item.Name)) // new lookup name is in used; can't change it { reason = "Conflict"; message = InUseMessage(typeName, item.Name); } else { provider.Update(item.Id, item); provider.Commit(); return(Json(item, JsonRequestBehavior.AllowGet)); } } else { reason = "Bad Type"; message = TypeNotFound(typeName); } } catch (Exception ex) { reason = "Server Error"; message = ex.Message + " " + ex.InnerException.Message; } // assemble custom error for kendo CRUD operation Response.StatusCode = (int)System.Net.HttpStatusCode.OK; // custom error return 200 code var exception = new // custom response body indicated by the 'errors' field { errors = CrudError("Update", typeName, reason, message) }; return(Json(exception, JsonRequestBehavior.AllowGet)); }
public JsonResult Delete(string model) { string typeName = string.Empty; string reason = string.Empty; string message = string.Empty; try { Lookup item = JsonConvert.DeserializeObject <Lookup>(model); typeName = item.Type; LookupProvider provider = new LookupProvider(_dbContext); // check to make sure the lookup exists and is not used anywhere LookupType type; if (Enum.TryParse(typeName, out type)) { if (provider.InUse(type, item.Name)) { reason = "Conflict"; message = InUseMessage(typeName, item.Name); } else { provider.Delete(item.Id); provider.Commit(); return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } } else { reason = "Bad Type"; message = TypeNotFound(typeName); } } catch (Exception ex) { reason = "Server Error"; message = ex.Message + " " + ex.InnerException.Message; } // assemble custom error for kendo CRID operation Response.StatusCode = (int)System.Net.HttpStatusCode.OK; // custom error return 200 code var exception = new // custom response body indicated by the 'errors' field { errors = CrudError("Delete", typeName, reason, message) }; return(Json(exception, JsonRequestBehavior.AllowGet)); }