예제 #1
0
        public override async Task <IViewProviderResult> BuildUpdateAsync(PlatoSiteSettings settings, IViewProviderContext context)
        {
            var model = new PlatoSiteSettingsViewModel();

            // Validate model
            if (!await context.Updater.TryUpdateModelAsync(model))
            {
                return(await BuildEditAsync(settings, context));
            }

            // Update settings
            if (context.Updater.ModelState.IsValid)
            {
                // Create the model
                settings = new PlatoSiteSettings()
                {
                    HostUrl         = model.HostUrl,
                    DemoUrl         = model.DemoUrl,
                    PlatoDesktopUrl = model.PlatoDesktopUrl
                };

                // Persist the settings
                var result = await _platoSiteSettingsStore.SaveAsync(settings);

                if (result != null)
                {
                    // Recycle shell context to ensure changes take effect
                    _platoHost.RecycleShell(_shellSettings);
                }
            }

            return(await BuildEditAsync(settings, context));
        }
예제 #2
0
        public async Task <IActionResult> IndexPost(PlatoSiteSettingsViewModel viewModel)
        {
            // Execute view providers ProvideUpdateAsync method
            await _viewProvider.ProvideUpdateAsync(new PlatoSiteSettings(), this);

            // Add alert
            _alerter.Success(T["Settings Updated Successfully!"]);

            // Redirect to success
            return(RedirectToAction(nameof(Index)));
        }
예제 #3
0
        public async Task <IActionResult> IndexPost(PlatoSiteSettingsViewModel viewModel)
        {
            // Ensure we have permission
            //if (!await _authorizationService.AuthorizeAsync(User, Permissions.EditTwitterSettings))
            //{
            //    return Unauthorized();
            //}

            // Execute view providers ProvideUpdateAsync method
            await _viewProvider.ProvideUpdateAsync(new PlatoSiteSettings(), this);

            // Add alert
            _alerter.Success(T["Settings Updated Successfully!"]);

            // Reidrect to success
            return(RedirectToAction(nameof(Index)));
        }