public ActionResult EditModel(GeneratedModel gm) { var success = false; var message = string.Empty; var _id = -1; try { if (gm.ID < 1) { repo.AddGeneratedModel(gm); } else { var mod = repo.GetGeneratedModel().Where(x => x.ID == gm.ID).FirstOrDefault(); mod.Name = gm.Name; mod.Inherits = gm.Inherits; if (!string.IsNullOrEmpty(mod.Inherits)) { var parentType = repo.GetGeneratedModel().Where(x => x.IFullName.Equals(mod.Inherits)).FirstOrDefault(); if (parentType != null) { var dupes = new List <string>(); if (DuplicateProperties(mod, parentType, dupes)) { throw new Exception("following properties already exist: " + string.Join(", ", dupes)); } } } } repo.SaveChanges(); _id = gm.ID; }catch (Exception ex) { message = ex.Message; } return(Json(new{ success = true, message = message, id = _id })); }