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; }
}
}