Esempio n. 1
0
        public async Task <IActionResult> Delete(string id)
        {
            // Ensure we have permission
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.DeleteThemes))
            {
                return(Unauthorized());
            }

            // Get theme
            var theme = _siteThemeLoader
                        .AvailableThemes.FirstOrDefault(t => t.Id.Equals(id, StringComparison.OrdinalIgnoreCase));

            // Ensure we found the theme
            if (theme == null)
            {
                return(NotFound());
            }

            // Is the theme we are deleting our current theme
            var currentTheme = await _contextFacade.GetCurrentThemeAsync();

            if (currentTheme.Equals(theme.FullPath, StringComparison.OrdinalIgnoreCase))
            {
                // Get settings
                var settings = await _siteSettingsStore.GetAsync();

                // Clear theme, ensures we fallback to our default theme
                settings.Theme = "";

                // Save settings
                var updatedSettings = await _siteSettingsStore.SaveAsync(settings);

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

            // Delete the theme from the file system
            var result = _fileSystem.DeleteDirectory(theme.FullPath);

            if (result)
            {
                _alerter.Success(T["Theme Deleted Successfully"]);
            }
            else
            {
                _alerter.Danger(T[$"Could not delete the theme at \"{theme.FullPath}\""]);
            }

            return(RedirectToAction(nameof(Index)));
        }
Esempio n. 2
0
        public bool DeleteDirectory(string path)
        {
            if (String.IsNullOrEmpty(path))
            {
                throw new ArgumentNullException(nameof(path));
            }

            if (!_fileSystem.DirectoryExists(path))
            {
                return(false);
            }

            try
            {
                _fileSystem.DeleteDirectory(path);
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 3
0
 public bool DeleteDirectory(string path)
 {
     return(_fileSystem.DeleteDirectory(path));
 }