@namespace Oqtane.Modules.Admin.Upgrade @inherits ModuleBase @inject NavigationManager NavigationManager @inject IFileService FileService @inject IPackageService PackageService @inject IInstallationService InstallationService
@if (uploaded) { } else { } @if (upgradeavailable) {

Upgrade Available

} @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } } bool uploaded = false; bool upgradeavailable = false; FileUpload fileupload; protected override async Task OnInitializedAsync() { List packages = await PackageService.GetPackagesAsync("framework"); Package package = packages.FirstOrDefault(); if (package != null) { upgradeavailable = (Version.Parse(package.Version).CompareTo(Version.Parse(Constants.Version)) > 0); } if (!upgradeavailable) { ModuleInstance.AddModuleMessage("Framework Is Up To Date", MessageType.Info); } } private async Task UploadFile() { string[] files = await fileupload.GetFiles(); if (files.Length > 0) { if (files[0].Contains(".Framework.")) { try { if (await FileService.UploadFilesAsync("Framework", files, "")) { ModuleInstance.AddModuleMessage("Framework Uploaded Successfully. Click Upgrade To Complete Installation.", MessageType.Success); uploaded = true; StateHasChanged(); } else { ModuleInstance.AddModuleMessage("Framework Upload Failed.", MessageType.Error); } } catch (Exception ex) { ModuleInstance.AddModuleMessage("Framework Upload Failed. " + ex.Message, MessageType.Error); } } else { ModuleInstance.AddModuleMessage("Invalid Framework Package", MessageType.Error); } } else { ModuleInstance.AddModuleMessage("You Must Select A Framework Package To Upload", MessageType.Warning); } } private async Task Upgrade() { await InstallationService.Upgrade(); NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); } private async Task Download(string packageid, string version) { await PackageService.DownloadPackageAsync(packageid, version, "Framework"); await InstallationService.Upgrade(); NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); } }