@namespace Oqtane.Modules.Admin.ModuleDefinitions @using Oqtane.Enums @inherits ModuleBase @inject NavigationManager NavigationManager @inject IFileService FileService @inject IModuleDefinitionService ModuleDefinitionService @inject IPackageService PackageService
@if (_packages != null) {

Available Modules

Name Version
@context.Name @context.Version
} Cancel @code { private List _packages; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { try { var moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId); _packages = await PackageService.GetPackagesAsync("module"); foreach(Package package in _packages.ToArray()) { if (moduledefinitions.Exists(item => Utilities.GetTypeName(item.ModuleDefinitionName) == package.PackageId)) { _packages.Remove(package); } } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Packages {Error}", ex.Message); AddModuleMessage("Error Loading Packages", MessageType.Error); } } private async Task InstallModules() { try { await ModuleDefinitionService.InstallModuleDefinitionsAsync(); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Installating Module"); } } private async Task DownloadModule(string moduledefinitionname, string version) { try { await PackageService.DownloadPackageAsync(moduledefinitionname, version, "Modules"); await logger.LogInformation("Module {ModuleDefinitionName} {Version} Downloaded Successfully", moduledefinitionname, version); AddModuleMessage("Module Downloaded Successfully. Click Install To Complete Installation.", MessageType.Success); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Downloading Module {ModuleDefinitionName} {Version}", moduledefinitionname, version); AddModuleMessage("Error Downloading Module", MessageType.Error); } } }