public override async Task <IViewProviderResult> BuildUpdateAsync(WebApiSettings emailSettings, IViewProviderContext context) { var model = new WebApiSettingsViewModel(); // Validate model if (!await context.Updater.TryUpdateModelAsync(model)) { return(await BuildEditAsync(emailSettings, context)); } // Update settings if (context.Updater.ModelState.IsValid) { // Update existing settings var settings = await _siteSettingsStore.GetAsync(); if (settings != null) { settings.ApiKey = model.ApiKey; } else { // Create new settings settings = new SiteSettings() { ApiKey = model.ApiKey }; } // Update settings var result = await _siteSettingsStore.SaveAsync(settings); } return(await BuildEditAsync(emailSettings, context)); }
public async Task <IActionResult> IndexPost(WebApiSettingsViewModel viewModel) { // Execute view providers ProvideUpdateAsync method await _viewProvider.ProvideUpdateAsync(new WebApiSettings(), this); // Add alert _alerter.Success(T["Settings Updated Successfully!"]); return(RedirectToAction(nameof(Index))); }