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 }
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); }
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); }
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); }
public FurtherValidationResult ValidateSettingModifierForm(SiteSettingModifierForm form, SiteSetting oldSetting) { return(FurtherValidationResult.Ok); }
public VueComponentDefinition[] CreateSettingModifierFormVues(string settingId, SiteSettingModifierForm form) { var handler = SettingHandlers[settingId]; var oldSetting = GetSetting(settingId, true); var vues = handler.CreateSettingModifierFormVues(form, oldSetting); return(vues); }