public JsonResult SaveModel(CustomerCategoryForm form) { SaveReturn saveReturn = new SaveReturn(); if (form == null) { saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Data error, value is null")); } if (!saveReturn.HasErrors) { CustomerCategory cc; if (form.CustomerCategoryId == 0) { // new category cc = new CustomerCategory(); BindFormToDbModel(form, cc, saveReturn); if (!saveReturn.HasErrors) { db.CustomerCategorys.Add(cc); try { db.SaveChanges(); } catch (Exception ex) { if (IsDuplicateKey(ex)) { saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Duplicate Customer Category Description")); } else { throw; } } } } else { // existing cc = db.CustomerCategorys.Where(r => r.CustomerCategoryId == form.CustomerCategoryId).SingleOrDefault(); BindFormToDbModel(form, cc, saveReturn); if (!saveReturn.HasErrors) { db.SaveChanges(); } } if (!saveReturn.HasErrors) { saveReturn.Model = cc; // model to re-display } } return(Json(saveReturn)); }
private void BindFormToDbModel(CustomerCategoryForm form, CustomerCategory cc, SaveReturn saveReturn) { cc.Description = VerifyNotBlank(saveReturn, form.Description, "Description", "Category Description"); }