@namespace Oqtane.Modules.Admin.ModuleDefinitions @inherits ModuleBase @inject IModuleDefinitionService ModuleDefinitionService @inject IPackageService PackageService @inject NavigationManager NavigationManager @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer

@SharedLocalizer["Cancel"]

@SharedLocalizer["Cancel"]
@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 @((MarkupString)(!string.IsNullOrEmpty(context.PackageUrl) ? "  |  " + SharedLocalizer["Search.Source"] + ": " + new Uri(context.PackageUrl).Host + "" : "")) @((MarkupString)(context.TrialPeriod > 0 ? "  |  " + context.TrialPeriod + " " + @SharedLocalizer["Trial"] + "" : "")) @if (context.Price != null && !string.IsNullOrEmpty(context.PackageUrl)) { } @if (context.Price != null && !string.IsNullOrEmpty(context.PaymentUrl)) { @context.Price.Value.ToString("$#,##0.00") } else { }
} else {
@Localizer["Search.NoResults"]
} }
@if (_productname != "") {
} @code { private ElementReference form; private bool validated = false; private int _moduleDefinitionId; private string _name; private string _description = ""; private string _categories; private string _moduledefinitionname = ""; private string _version; private string _packagename = ""; private string _owner = ""; private string _url = ""; private string _contact = ""; private string _license = ""; private string _runtimes = ""; private string _permissions; private string _createdby; private DateTime _createdon; private string _modifiedby; private DateTime _modifiedon; #pragma warning disable 649 private PermissionGrid _permissionGrid; #pragma warning restore 649 private List _packages; private string _productname = ""; private string _packageid = ""; private string _packagelicense = ""; private string _packageversion = ""; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; protected override async Task OnInitializedAsync() { try { _moduleDefinitionId = Int32.Parse(PageState.QueryString["id"]); var moduleDefinition = await ModuleDefinitionService.GetModuleDefinitionAsync(_moduleDefinitionId, ModuleState.SiteId); if (moduleDefinition != null) { _name = moduleDefinition.Name; _description = moduleDefinition.Description; _categories = moduleDefinition.Categories; _moduledefinitionname = moduleDefinition.ModuleDefinitionName; _version = moduleDefinition.Version; _packagename = moduleDefinition.PackageName; _owner = moduleDefinition.Owner; _url = moduleDefinition.Url; _contact = moduleDefinition.Contact; _license = moduleDefinition.License; _runtimes = moduleDefinition.Runtimes; _permissions = moduleDefinition.Permissions; _createdby = moduleDefinition.CreatedBy; _createdon = moduleDefinition.CreatedOn; _modifiedby = moduleDefinition.ModifiedBy; _modifiedon = moduleDefinition.ModifiedOn; _packages = await PackageService.GetPackagesAsync("translation", "", "", moduleDefinition.PackageName); } } catch (Exception ex) { await logger.LogError(ex, "Error Loading ModuleDefinition {ModuleDefinitionId} {Error}", _moduleDefinitionId, ex.Message); AddModuleMessage(Localizer["Error.Module.Load"], MessageType.Error); } } private async Task SaveModuleDefinition() { validated = true; var interop = new Interop(JSRuntime); if (await interop.FormValid(form)) { try { var moduledefinition = await ModuleDefinitionService.GetModuleDefinitionAsync(_moduleDefinitionId, ModuleState.SiteId); if (moduledefinition.Name != _name) { moduledefinition.Name = _name; } if (moduledefinition.Description != _description) { moduledefinition.Description = _description; } if (moduledefinition.Categories != _categories) { moduledefinition.Categories = _categories; } moduledefinition.Permissions = _permissionGrid.GetPermissions(); await ModuleDefinitionService.UpdateModuleDefinitionAsync(moduledefinition); await logger.LogInformation("ModuleDefinition Saved {ModuleDefinition}", moduledefinition); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Saving ModuleDefinition {ModuleDefinitionId} {Error}", _moduleDefinitionId, ex.Message); AddModuleMessage(Localizer["Error.Module.Save"], MessageType.Error); } } else { AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } private void HideModal() { _productname = ""; _packagelicense = ""; StateHasChanged(); } private async Task GetPackage(string packageid, string version) { try { var package = await PackageService.GetPackageAsync(packageid, version); if (package != null) { _productname = package.Name; _packageid = package.PackageId; if (!string.IsNullOrEmpty(package.License)) { _packagelicense = package.License.Replace("\n", "
"); } _packageversion = package.Version; } StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Getting Package {PackageId} {Version}", packageid, version); AddModuleMessage(Localizer["Error.Translation.Download"], MessageType.Error); } } private async Task DownloadTranslation() { try { await PackageService.DownloadPackageAsync(_packageid, _version, Constants.PackagesFolder); await logger.LogInformation("Package {PackageId} {Version} Downloaded Successfully", _packageid, _version); AddModuleMessage(Localizer["Success.Translation.Download"], MessageType.Success); _productname = ""; _packagelicense = ""; StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error Downloading Package {PackageId} {Version}", _packageid, _version); AddModuleMessage(Localizer["Error.Translation.Download"], MessageType.Error); } } private async Task InstallTranslations() { try { await PackageService.InstallPackagesAsync(); AddModuleMessage(string.Format(Localizer["Success.Translation.Install"], NavigateUrl("admin/system")), MessageType.Success); } catch (Exception ex) { await logger.LogError(ex, "Error Installing Translations"); } } }