@namespace Oqtane.Modules.Admin.Upgrade @inherits ModuleBase @inject NavigationManager NavigationManager @inject IFileService FileService @inject IPackageService PackageService @inject IInstallationService InstallationService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer @if (_initialized) { @if (_versions.Count > 0 && _upgradeable) {

@if (!_downloaded) { } else { } } else { }

} @code { private bool _initialized = false; private bool _downloaded = false; private List _versions = new List(); private string _version; private bool _upgradeable = false; private string _backup = "True"; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { try { if (NavigationManager.BaseUri.Contains("localhost:")) { AddModuleMessage(Localizer["Localhost.Text"], MessageType.Info); } else { AddModuleMessage(Localizer["Disclaimer.Text"], MessageType.Warning); var packages = await PackageService.GetPackagesAsync("framework", "", "", ""); if (packages != null) { _version = packages.First(item => item.PackageId.StartsWith(Constants.PackageId)).Version; foreach (var version in Constants.ReleaseVersions.Split(',')) { if (Version.Parse(version).CompareTo(Version.Parse(Constants.Version)) > 0) { _versions.Add(version); } } _upgradeable = (Version.Parse(_version).CompareTo(Version.Parse(Constants.Version)) > 0); } _initialized = true; } } catch { // can be caused by no network connection } } private async Task Upgrade() { try { AddModuleMessage(Localizer["Info.Upgrade.Wait"], MessageType.Info); ShowProgressIndicator(); var interop = new Interop(JSRuntime); await interop.RedirectBrowser(NavigateUrl(), 10); await InstallationService.Upgrade(bool.Parse(_backup)); } catch (Exception ex) { await logger.LogError(ex, "Error Executing Upgrade {Error}", ex.Message); AddModuleMessage(Localizer["Error.Upgrade.Execute"], MessageType.Error); } } private async Task Download(string packageid, string version) { try { ShowProgressIndicator(); await PackageService.DownloadPackageAsync(packageid, version); await PackageService.DownloadPackageAsync(Constants.UpdaterPackageId, version); _downloaded = true; HideProgressIndicator(); AddModuleMessage(Localizer["Success.Framework.Download"], MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Downloading Framework Package {Error}", ex.Message); HideProgressIndicator(); AddModuleMessage(Localizer["Error.Framework.Download"], MessageType.Error); } } }