fix for #525 when running locally without a network connection
This commit is contained in:
		@ -4,7 +4,7 @@
 | 
			
		||||
@inject IThemeService ThemeService
 | 
			
		||||
@inject IPackageService PackageService
 | 
			
		||||
 | 
			
		||||
@if (themes == null)
 | 
			
		||||
@if (_themes == null)
 | 
			
		||||
{
 | 
			
		||||
    <p><em>Loading...</em></p>
 | 
			
		||||
}
 | 
			
		||||
@ -12,7 +12,7 @@ else
 | 
			
		||||
{
 | 
			
		||||
    <ActionLink Action="Add" Text="Install Theme" />
 | 
			
		||||
 | 
			
		||||
    <Pager Items="@themes">
 | 
			
		||||
    <Pager Items="@_themes">
 | 
			
		||||
        <Header>
 | 
			
		||||
            <th> </th>
 | 
			
		||||
            <th>Name</th>
 | 
			
		||||
@ -39,41 +39,70 @@ else
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@code {
 | 
			
		||||
    private List<Theme> themes;
 | 
			
		||||
    private List<Package> packages;
 | 
			
		||||
    private List<Theme> _themes;
 | 
			
		||||
    private List<Package> _packages;
 | 
			
		||||
 | 
			
		||||
    public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host;
 | 
			
		||||
 | 
			
		||||
    protected override async Task OnInitializedAsync()
 | 
			
		||||
    {
 | 
			
		||||
        themes = await ThemeService.GetThemesAsync();
 | 
			
		||||
        packages = await PackageService.GetPackagesAsync("module");
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            _themes = await ThemeService.GetThemesAsync();
 | 
			
		||||
            _packages = await PackageService.GetPackagesAsync("theme");
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex)
 | 
			
		||||
        {
 | 
			
		||||
            if (_themes == null)
 | 
			
		||||
            {
 | 
			
		||||
                await logger.LogError(ex, "Error Loading Themes {Error}", ex.Message);
 | 
			
		||||
                AddModuleMessage("Error Loading Themes", MessageType.Error);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private bool UpgradeAvailable(string themename, string version)
 | 
			
		||||
    {
 | 
			
		||||
        var upgradeavailable = false;
 | 
			
		||||
        var package = packages.Where(item => item.PackageId == Utilities.GetTypeName(themename)).FirstOrDefault();
 | 
			
		||||
        if (package != null)
 | 
			
		||||
        if (_packages != null)
 | 
			
		||||
        {
 | 
			
		||||
            upgradeavailable = (Version.Parse(package.Version).CompareTo(Version.Parse(version)) > 0);
 | 
			
		||||
            var package = _packages.Where(item => item.PackageId == Utilities.GetTypeName(themename)).FirstOrDefault();
 | 
			
		||||
            if (package != null)
 | 
			
		||||
            {
 | 
			
		||||
                upgradeavailable = (Version.Parse(package.Version).CompareTo(Version.Parse(version)) > 0);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return upgradeavailable;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private async Task DownloadTheme(string themename, string version)
 | 
			
		||||
    {
 | 
			
		||||
        await PackageService.DownloadPackageAsync(themename, version, "Themes");
 | 
			
		||||
        await logger.LogInformation("Theme Downloaded {ThemeName} {Version}", themename, version);
 | 
			
		||||
        await ThemeService.InstallThemesAsync();
 | 
			
		||||
        NavigationManager.NavigateTo(NavigateUrl());
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            await PackageService.DownloadPackageAsync(themename, version, "Themes");
 | 
			
		||||
            await ThemeService.InstallThemesAsync();
 | 
			
		||||
            await logger.LogInformation("Theme Downloaded {ThemeName} {Version}", themename, version);
 | 
			
		||||
            NavigationManager.NavigateTo(NavigateUrl());
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex)
 | 
			
		||||
        {
 | 
			
		||||
            await logger.LogError(ex, "Error Downloading Theme {ThemeName} {Version} {Error}", themename, version, ex.Message);
 | 
			
		||||
            AddModuleMessage("Error Downloading Theme", MessageType.Error);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private async Task DeleteTheme(Theme Theme)
 | 
			
		||||
    {
 | 
			
		||||
        await ThemeService.DeleteThemeAsync(Theme.ThemeName);
 | 
			
		||||
        await logger.LogInformation("Theme Deleted {Theme}", Theme);
 | 
			
		||||
        NavigationManager.NavigateTo(NavigateUrl());
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            await ThemeService.DeleteThemeAsync(Theme.ThemeName);
 | 
			
		||||
            await logger.LogInformation("Theme Deleted {Theme}", Theme);
 | 
			
		||||
            NavigationManager.NavigateTo(NavigateUrl());
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception ex)
 | 
			
		||||
        {
 | 
			
		||||
            await logger.LogError(ex, "Error Deleting Theme {Theme} {Error}", Theme, ex.Message);
 | 
			
		||||
            AddModuleMessage("Error Deleting Theme", MessageType.Error);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user