@namespace Oqtane.Modules.Admin.ModuleDefinitions @inherits ModuleBase @inject NavigationManager NavigationManager @inject IFileService FileService @inject IModuleDefinitionService ModuleDefinitionService @inject IPackageService PackageService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer
 
@if (_packages != null) { if (_packages.Count > 0) {

@context.Name

  by:  @context.Owner
@(context.Description.Length > 400 ? (context.Description.Substring(0, 400) + "...") : context.Description)
@(String.Format("{0:n0}", context.Downloads)) @SharedLocalizer["Search.Downloads"]  |   @SharedLocalizer["Search.Released"]: @context.ReleaseDate.ToString("MMM dd, yyyy")  |  @SharedLocalizer["Search.Version"]: @context.Version  |  @SharedLocalizer["Search.Source"]: @context.PackageUrl
} else {
@Localizer["Search.NoResults"]
} }
@SharedLocalizer["Cancel"] @code { private List _packages; private string _search = ""; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { try { await LoadModuleDefinitions(); } catch (Exception ex) { await logger.LogError(ex, "Error Loading Packages {Error}", ex.Message); AddModuleMessage(Localizer["Error.Package.Load"], MessageType.Error); } } private async Task LoadModuleDefinitions() { var moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId); _packages = await PackageService.GetPackagesAsync("module", _search); if (_packages != null) { foreach (Package package in _packages.ToArray()) { if (moduledefinitions.Exists(item => item.PackageName == package.PackageId)) { _packages.Remove(package); } } } } private async Task Search() { try { await LoadModuleDefinitions(); } catch (Exception ex) { await logger.LogError(ex, "Error On Search"); } } private async Task Reset() { try { _search = ""; await LoadModuleDefinitions(); } catch (Exception ex) { await logger.LogError(ex, "Error On Reset"); } } private async Task InstallModules() { try { await ModuleDefinitionService.InstallModuleDefinitionsAsync(); AddModuleMessage(string.Format(Localizer["Success.Module.Install"], NavigateUrl("admin/system")), MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Installing Module"); } } private async Task DownloadModule(string packageid, string version) { try { await PackageService.DownloadPackageAsync(packageid, version, "Packages"); await logger.LogInformation("Module {ModuleDefinitionName} {Version} Downloaded Successfully", packageid, version); AddModuleMessage(Localizer["Success.Module.Download"], MessageType.Success); StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Downloading Module {ModuleDefinitionName} {Version}", packageid, version); AddModuleMessage(Localizer["Error.Module.Download"], MessageType.Error); } } }