diff --git a/Oqtane.Client/Modules/Admin/Languages/Add.razor b/Oqtane.Client/Modules/Admin/Languages/Add.razor index db6c3813..505793e8 100644 --- a/Oqtane.Client/Modules/Admin/Languages/Add.razor +++ b/Oqtane.Client/Modules/Admin/Languages/Add.razor @@ -80,6 +80,7 @@ else @(String.Format("{0:n0}", context.Downloads)) @SharedLocalizer["Search.Downloads"]  |   @SharedLocalizer["Search.Released"]: @context.ReleaseDate.ToString("MMM dd, yyyy")  |   @SharedLocalizer["Search.Version"]: @context.Version + @((MarkupString)(context.TrialPeriod > 0 ? "  |  " + context.TrialPeriod + " " + @SharedLocalizer["Trial"] + "" : "")) @if (context.Price > 0 && !string.IsNullOrEmpty(context.PackageUrl)) diff --git a/Oqtane.Client/Modules/Admin/Languages/Index.razor b/Oqtane.Client/Modules/Admin/Languages/Index.razor index b8a3d21d..1bca6f2c 100644 --- a/Oqtane.Client/Modules/Admin/Languages/Index.razor +++ b/Oqtane.Client/Modules/Admin/Languages/Index.razor @@ -29,9 +29,13 @@ else @if (UpgradeAvailable(context.Code)) - { + { - } + } + else + { + @((MarkupString)PurchaseLink(context.Code)) + } @@ -91,6 +95,23 @@ else return upgradeavailable; } + private string PurchaseLink(string code) + { + string link = ""; + if (_packages != null) + { + var package = _packages.Where(item => item.PackageId == (Constants.PackageId + ".Client." + code)).FirstOrDefault(); + if (package != null) + { + if (package.Price > 0 && !string.IsNullOrEmpty(package.PaymentUrl)) + { + link = "" + package.Price.ToString("$#,##0.00") + ""; + } + } + } + return link; + } + private async Task DownloadLanguage(string code) { try diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor index ea396c7a..07a1d059 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor @@ -36,7 +36,8 @@ @(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.Version"]: @context.Version + @((MarkupString)(context.TrialPeriod > 0 ? "  |  " + context.TrialPeriod + " " + @SharedLocalizer["Trial"] + "" : "")) @if (context.Price > 0 && !string.IsNullOrEmpty(context.PackageUrl)) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor index b5d23a21..4b6cfca9 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor @@ -28,17 +28,21 @@ else @if (context.AssemblyName != "Oqtane.Client") - { + { - } + } @context.Name @context.Version @if (UpgradeAvailable(context.PackageName, context.Version)) - { + { - } + } + else + { + @((MarkupString)PurchaseLink(context.PackageName)) + } @@ -82,6 +86,23 @@ else return upgradeavailable; } + private string PurchaseLink(string packagename) + { + string link = ""; + if (!string.IsNullOrEmpty(packagename) && _packages != null) + { + var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault(); + if (package != null) + { + if (package.Price > 0 && !string.IsNullOrEmpty(package.PaymentUrl)) + { + link = "" + package.Price.ToString("$#,##0.00") + ""; + } + } + } + return link; + } + private async Task DownloadModule(string packagename, string version) { try diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor index 9b7bd6b2..37bf4c14 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Add.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor @@ -37,6 +37,7 @@ @(String.Format("{0:n0}", context.Downloads)) @SharedLocalizer["Search.Downloads"]  |   @SharedLocalizer["Search.Released"]: @context.ReleaseDate.ToString("MMM dd, yyyy")  |   @SharedLocalizer["Search.Version"]: @context.Version + @((MarkupString)(context.TrialPeriod > 0 ? "  |  " + context.TrialPeriod + " " + @SharedLocalizer["Trial"] + "" : "")) @if (context.Price > 0 && !string.IsNullOrEmpty(context.PackageUrl)) diff --git a/Oqtane.Client/Modules/Admin/Themes/Index.razor b/Oqtane.Client/Modules/Admin/Themes/Index.razor index 5346704e..f04e77aa 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Index.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Index.razor @@ -29,17 +29,21 @@ else @if (context.AssemblyName != "Oqtane.Client") - { + { - } + } @context.Name @context.Version @if (UpgradeAvailable(context.PackageName, context.Version)) - { + { - } + } + else + { + @((MarkupString)PurchaseLink(context.PackageName)) + } @@ -99,6 +103,23 @@ else } } + private string PurchaseLink(string packagename) + { + string link = ""; + if (!string.IsNullOrEmpty(packagename) && _packages != null) + { + var package = _packages.Where(item => item.PackageId == packagename).FirstOrDefault(); + if (package != null) + { + if (package.Price > 0 && !string.IsNullOrEmpty(package.PaymentUrl)) + { + link = "" + package.Price.ToString("$#,##0.00") + ""; + } + } + } + return link; + } + private async Task DeleteTheme(Theme Theme) { try diff --git a/Oqtane.Client/Resources/SharedResources.resx b/Oqtane.Client/Resources/SharedResources.resx index 9ef78435..ca38d971 100644 --- a/Oqtane.Client/Resources/SharedResources.resx +++ b/Oqtane.Client/Resources/SharedResources.resx @@ -300,4 +300,7 @@ Review License Terms + + Day Trial + \ No newline at end of file diff --git a/Oqtane.Shared/Models/Package.cs b/Oqtane.Shared/Models/Package.cs index 447346e7..83450574 100644 --- a/Oqtane.Shared/Models/Package.cs +++ b/Oqtane.Shared/Models/Package.cs @@ -76,5 +76,10 @@ namespace Oqtane.Models /// The Url for purchasing the package ( if commercial ) /// public string PaymentUrl { get; set; } + + /// + /// The trial period in days ( if commercial ) + /// + public int TrialPeriod { get; set; } } }