public override async Task <IViewProviderResult> BuildUpdateAsync(ReCaptchaSettings recaptchaSettings, IViewProviderContext context) { var model = new ReCaptchaSettingsViewModel(); // Validate model if (!await context.Updater.TryUpdateModelAsync(model)) { return(await BuildEditAsync(recaptchaSettings, context)); } // Update settings if (context.Updater.ModelState.IsValid) { recaptchaSettings = new ReCaptchaSettings() { SiteKey = recaptchaSettings.SiteKey, Secret = recaptchaSettings.Secret }; // Update reCAPTCHA settings await _recaptchaSettingsStore.SaveAsync(recaptchaSettings); } // Redirect back to edit return(await BuildEditAsync(recaptchaSettings, context)); }
public override async Task <IDisplayResult> UpdateAsync(ReCaptchaSettings section, BuildEditorContext context) { var user = _httpContextAccessor.HttpContext?.User; if (!await _authorizationService.AuthorizeAsync(user, Permissions.ManageReCaptchaSettings)) { return(null); } if (context.GroupId == GroupId) { var model = new ReCaptchaSettingsViewModel(); if (await context.Updater.TryUpdateModelAsync(model, Prefix)) { section.SiteKey = model.SiteKey?.Trim(); section.SecretKey = model.SecretKey?.Trim(); // Release the tenant to apply settings. await _shellHost.ReleaseShellContextAsync(_shellSettings); } } return(await EditAsync(section, context)); }
public override Task <IViewProviderResult> BuildEditAsync(ReCaptchaSettings viewModel, IViewProviderContext context) { var recaptchaSettingsViewModel = new ReCaptchaSettingsViewModel() { SiteKey = viewModel.SiteKey, Secret = viewModel.Secret }; return(Task.FromResult(Views( View <ReCaptchaSettingsViewModel>("Admin.Edit.Header", model => recaptchaSettingsViewModel).Zone("header").Order(1), View <ReCaptchaSettingsViewModel>("Admin.Edit.Tools", model => recaptchaSettingsViewModel).Zone("tools").Order(1), View <ReCaptchaSettingsViewModel>("Admin.Edit.Content", model => recaptchaSettingsViewModel).Zone("content").Order(1) ))); }
public async Task <IActionResult> IndexPost(ReCaptchaSettingsViewModel viewModel) { // Execute view providers ProvideUpdateAsync method await _viewProvider.ProvideUpdateAsync(new ReCaptchaSettings() { SiteKey = viewModel.SiteKey, Secret = viewModel.Secret }, this); // Add alert _alerter.Success(T["Settings Updated Successfully!"]); return(RedirectToAction(nameof(Index))); }
public override async Task <IDisplayResult> UpdateAsync(ReCaptchaSettings section, BuildEditorContext context) { if (context.GroupId == GroupId) { var model = new ReCaptchaSettingsViewModel(); if (await context.Updater.TryUpdateModelAsync(model, Prefix)) { section.SiteKey = model.SiteKey?.Trim(); section.SecretKey = model.SecretKey?.Trim(); // Release the tenant to apply settings. await _shellHost.ReleaseShellContextAsync(_shellSettings); } } return(await EditAsync(section, context)); }