Example #1
0
        public void UpdateSetting(string settingId, SiteSettingModifierForm form)
        {
            var db      = Db.ThisDbContext();
            var handler = SettingHandlers[settingId];

            using (var dbTrx = db.Database.BeginTransaction()) {
                try {
                    var oldSetting = GetSetting(settingId, true);
                    foreach (var sf in Db.ProtoSettingFields.Where(x => x.SettingId == settingId).ToList())
                    {
                        Db.ProtoSettingFields.Remove(sf);
                    }
                    db.SaveChanges();
                    var newSettingFields = handler.UpdateAndRebuildNewSettingFields(form, oldSetting);
                    foreach (var nsf in newSettingFields)
                    {
                        nsf.SettingId = settingId;
                        Db.ProtoSettingFields.Add(nsf);
                    }
                    db.SaveChanges();
                    dbTrx.Commit();
                } catch (Exception) {
                    dbTrx.Rollback();
                    throw;
                }
            }
            GetSetting(settingId, true); // refresh
        }
Example #2
0
        public FurtherValidationResult ValidateSettingModifierForm(string settingId, SiteSettingModifierForm form)
        {
            var handler    = SettingHandlers[settingId];
            var oldSetting = GetSetting(settingId, true);
            var result     = handler.ValidateSettingModifierForm(form, oldSetting);

            return(result ?? FurtherValidationResult.Ok);
        }
Example #3
0
        public ProtoSettingField[] UpdateAndRebuildNewSettingFields(SiteSettingModifierForm form,
                                                                    SiteSetting oldSetting)
        {
            var fm     = form.DirectCastTo <WelcomeCardSettingForm>();
            var fields = new[] {
                new ProtoSettingField {
                    FieldName   = nameof(WelcomeCardSetting.WelcomeHeading),
                    StringValue = fm.WelcomeHeading
                },
                new ProtoSettingField {
                    FieldName   = nameof(WelcomeCardSetting.WelcomeBody),
                    StringValue = fm.WelcomeBody
                }
            };

            return(fields);
        }
Example #4
0
        public VueComponentDefinition[] CreateSettingModifierFormVues(SiteSettingModifierForm form,
                                                                      SiteSetting oldSetting)
        {
            var vues = new[] {
                new VueComponentDefinition {
                    Name  = "cms-form-field-text",
                    Props = new {
                        label     = "Welcome Heading",
                        valuePath = nameof(WelcomeCardSettingForm.WelcomeHeading)
                    }
                },
                new VueComponentDefinition {
                    Name  = "cms-form-field-rich-html",
                    Props = new {
                        label     = "Welcome Body",
                        valuePath = nameof(WelcomeCardSettingForm.WelcomeBody)
                    }
                }
            };

            return(vues);
        }
Example #5
0
 public FurtherValidationResult ValidateSettingModifierForm(SiteSettingModifierForm form,
                                                            SiteSetting oldSetting)
 {
     return(FurtherValidationResult.Ok);
 }
Example #6
0
        public VueComponentDefinition[] CreateSettingModifierFormVues(string settingId, SiteSettingModifierForm form)
        {
            var handler    = SettingHandlers[settingId];
            var oldSetting = GetSetting(settingId, true);
            var vues       = handler.CreateSettingModifierFormVues(form, oldSetting);

            return(vues);
        }