public JsonResult SaveModel(SettingForm form) { SaveReturn saveReturn = new SaveReturn(); if (form == null) { // sanity check, shouldn't happen saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Data error, value is null")); } if (!saveReturn.HasErrors) { Setting model; if (form.SettingId == 0) { // new category model = new Setting(); BindFormToDbModel(form, model, saveReturn); if (!saveReturn.HasErrors) { model.CreatedByUserId = model.ChangedByUserId; model.CreatedDttm = model.ChangedDttm; db.Settings.Add(model); try { db.SaveChanges(); } catch (Exception ex) { if (IsDuplicateKey(ex)) //%% this is only needed if there's a unique key on the table. { //%% display a message that tells the user what the duplicate field is saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Duplicate setting value")); } else { throw; } } } } else { // existing model = db.Settings.Where(r => r.SettingId == form.SettingId).SingleOrDefault(); BindFormToDbModel(form, model, saveReturn); if (!saveReturn.HasErrors) { db.SaveChanges(); } } if (!saveReturn.HasErrors) { saveReturn.Model = model; // model to re-display } } return(Json(saveReturn)); }
private void BindFormToDbModel(SettingForm form, Setting model, SaveReturn saveReturn) { // %% there needs to be a line of code like the one below for each field in SettingForm to assign the form fields to the model fields. model.Value = VerifyNotBlank(saveReturn, form.Value, "Value", "Setting Value"); // %% if value is blank, an error message is stored in saveReturn, "Value" is the control ID (usually the field name) on the webpage to focus on // "Setting Value" is the text prompt to the user. User will see "Setting Value cannot be blank" }
public JsonResult SaveModel(CustomerForm form) { SaveReturn saveReturn = new SaveReturn(); if (form == null) { // sanity check, shouldn't happen saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Data error, value is null")); } if (!saveReturn.HasErrors) { Customer model; if (form.CustomerId == 0) { // new category model = new Customer(); BindFormToDbModel(form, model, saveReturn); if (!saveReturn.HasErrors) { model.CreatedById = model.ChangedById; model.CreatedDttm = model.ChangedDttm; db.Customers.Add(model); try { db.SaveChanges(); } catch (Exception ex) { if (IsDuplicateKey(ex)) { saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Duplicate customer name")); } else { throw; } } } } else { // existing model = db.Customers.Where(r => r.CustomerId == form.CustomerId).SingleOrDefault(); BindFormToDbModel(form, model, saveReturn); if (!saveReturn.HasErrors) { db.SaveChanges(); } } if (!saveReturn.HasErrors) { saveReturn.Model = model; // model to re-display } } return(Json(saveReturn)); }
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)); }
public int VerifyNotZero(SaveReturn saveReturn, int value, string ctrlName, string displayName = null) { if (value == 0) { saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, (displayName == null ? ctrlName : displayName) + " is a required field", ctrlName)); } return(value); }
public string VerifyNotBlank(SaveReturn saveReturn, string value, string ctrlName, string displayName = null) { if (string.IsNullOrWhiteSpace(value)) { saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, (displayName == null ? ctrlName : displayName) + " is a required field", ctrlName)); } return(value); }
private void BindFormToDbModel(ContactForm form, Contact model, SaveReturn saveReturn, DateTime updateTime) { model.LastName = VerifyNotBlank(saveReturn, form.LastName, "LastName", "Last Name"); model.FirstName = form.FirstName; model.MiddleName = form.MiddleName; model.UseCustomerAddress = form.UseCustomerAddress; model.Address = form.Address; model.City = form.City; model.State = form.State; model.ZipCode = form.ZipCode; model.PhoneNumber = form.PhoneNumber; model.Email = form.Email; model.ChangedById = User.Identity.GetUserId <int>(); model.ChangedDttm = updateTime; }
private void BindFormToDbModel(CustomerForm form, Customer model, SaveReturn saveReturn) { model.CustomerName = VerifyNotBlank(saveReturn, form.CustomerName, "CustomerName", "Customer Name"); model.Address = form.Address; model.City = form.City; model.State = form.State; model.ZipCode = form.ZipCode; model.PhoneNumber = form.PhoneNumber; model.Email = form.Email; model.CustomerCategoryId = Zpm.NullIfZero(form.CustomerCategoryId); model.CreditLimit = form.CreditLimit; model.ReviewDate = form.ReviewDate; model.ChangedById = User.Identity.GetUserId <int>(); model.ChangedDttm = DateTime.Now; }
public JsonResult SaveModel(CustomerForm form) { DateTime updateTime = DateTime.Now; SaveReturn saveReturn = new SaveReturn(); if (form == null) { saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Data error, value is null")); } if (!saveReturn.HasErrors) { Customer cust; if (form.CustomerId == 0) { // new customer cust = new Customer(); BindFormToDbModel(form, cust, saveReturn, updateTime); if (!saveReturn.HasErrors) { cust.CreatedById = cust.ChangedById; cust.CreatedDttm = cust.ChangedDttm; db.Customers.Add(cust); try { db.SaveChanges(); } catch (Exception ex) { if (IsDuplicateKey(ex)) { saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Duplicate Customer Name")); } else { throw Zpm.GetInnerException(ex); } } } } else { // existing cust = db.Customers.Where(r => r.CustomerId == form.CustomerId).SingleOrDefault(); BindFormToDbModel(form, cust, saveReturn, updateTime); if (!saveReturn.HasErrors) { db.SaveChanges(); } } if (!saveReturn.HasErrors) { var ccList = db.CustomerContacts.Where(r => r.CustomerId == cust.CustomerId).ToList(); if (form.ContactIds != null) { foreach (var id in form.ContactIds) { var cc = ccList.Find(r => r.ContactId == id); if (cc == null) { // add cc = new CustomerContact() { CustomerId = cust.CustomerId, ContactId = id, CreatedById = User.Identity.GetUserId <int>(), CreatedDttm = updateTime }; db.CustomerContacts.Add(cc); } else { ccList.Remove(cc); } } } db.CustomerContacts.RemoveRange(ccList); db.SaveChanges(); } if (!saveReturn.HasErrors) { var ccList = db.CustomerContacts.Where(r => r.CustomerId == cust.CustomerId).Select(r => r.ContactId).ToList(); Dictionary <string, object> data = ConvertToDictionary(cust); data["ContactIds"] = ccList; saveReturn.Model = data; // 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"); }
public JsonResult SaveModel(ContactForm form) { DateTime updateTime = DateTime.Now; SaveReturn saveReturn = new SaveReturn(); if (form == null) { // sanity check, shouldn't happen saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Data error, value is null")); } if (!saveReturn.HasErrors) { Contact model; if (form.ContactId == 0) { // new category model = new Contact(); BindFormToDbModel(form, model, saveReturn, updateTime); if (!saveReturn.HasErrors) { model.CreatedById = model.ChangedById; model.CreatedDttm = model.ChangedDttm; db.Contacts.Add(model); try { db.SaveChanges(); } catch (Exception ex) { if (IsDuplicateKey(ex)) { // display a message that tells the user what the duplicate field is saveReturn.Messages.Add(new SaveMessage(SaveMessageType.Error, SaveMessageDelivery.MessageLine, "Duplicate contact name")); } else { throw; } } } } else { // existing model = db.Contacts.Where(r => r.ContactId == form.ContactId).SingleOrDefault(); BindFormToDbModel(form, model, saveReturn, updateTime); if (!saveReturn.HasErrors) { db.SaveChanges(); } } if (!saveReturn.HasErrors) { var ccList = db.CustomerContacts.Where(r => r.ContactId == model.ContactId).ToList(); if (form.CustomerIds != null) { foreach (var id in form.CustomerIds) { if (id != 0) // 0 is handled by web client { var cc = ccList.Find(r => r.CustomerId == id); if (cc == null) { // add cc = new CustomerContact() { CustomerId = id, ContactId = model.ContactId, CreatedById = User.Identity.GetUserId <int>(), CreatedDttm = updateTime }; db.CustomerContacts.Add(cc); } else { ccList.Remove(cc); } } } } db.CustomerContacts.RemoveRange(ccList); db.SaveChanges(); } if (!saveReturn.HasErrors) { var ccList = db.CustomerContacts.Where(r => r.ContactId == model.ContactId).Select(r => r.CustomerId).ToList(); Dictionary <string, object> data = ConvertToDictionary(model); data["CustomerIds"] = ccList; saveReturn.Model = data; // model to re-display } } return(Json(saveReturn)); }