Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 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"
 }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
 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);
 }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
 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;
 }
Esempio n. 8
0
 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;
 }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
 private void BindFormToDbModel(CustomerCategoryForm form, CustomerCategory cc, SaveReturn saveReturn)
 {
     cc.Description = VerifyNotBlank(saveReturn, form.Description, "Description", "Category Description");
 }
Esempio n. 11
0
        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));
        }