From 89f5241680f8d239a0ffeb47508beb11718505fb Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Thu, 26 Feb 2026 17:44:53 +0330 Subject: [PATCH] Phase 8b: Expand Package CRUD with all package-based fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CreateDialog: Add 12 new fields (SortOrder, ActivationFee, DiscountMultiplier, MagicWalletMultiplier, MagicWalletMaxDeposit, MagicWalletMaxCredit, MaxBalancesPerLeg, MaxNetworkLevel, IsActive, IsBasePackage, SupportsDirectPurchase, SupportsDayaPurchase) - UpdateDialog: Same 12 new fields added - PackageMainPage grid: Add Price, SortOrder, IsActive, IsBasePackage columns - Dialog size: Small → Medium for expanded forms - CreateNew defaults: IsActive=true, DiscountMultiplier=2.0, etc. - Fix HasPurchasedGoldenPackage → HasPurchasedPackage in UserNetworkInfo - NuGet: 0.0.184 → 0.0.185 + local feed source --- src/BackOffice/BackOffice.csproj | 2 +- src/BackOffice/NuGet.config | 2 + .../Pages/Network/UserNetworkInfo.razor | 2 +- .../Package/Components/CreateDialog.razor | 53 ++++++++++++++++++- .../Package/Components/UpdateDialog.razor | 53 ++++++++++++++++++- .../Pages/Package/PackageMainPage.razor | 45 ++++++++++------ .../Pages/Package/PackageMainPage.razor.cs | 4 +- 7 files changed, 138 insertions(+), 23 deletions(-) diff --git a/src/BackOffice/BackOffice.csproj b/src/BackOffice/BackOffice.csproj index b2be996..91395aa 100644 --- a/src/BackOffice/BackOffice.csproj +++ b/src/BackOffice/BackOffice.csproj @@ -138,7 +138,7 @@ - + diff --git a/src/BackOffice/NuGet.config b/src/BackOffice/NuGet.config index c53f59f..6402f43 100644 --- a/src/BackOffice/NuGet.config +++ b/src/BackOffice/NuGet.config @@ -2,6 +2,8 @@ + + diff --git a/src/BackOffice/Pages/Network/UserNetworkInfo.razor b/src/BackOffice/Pages/Network/UserNetworkInfo.razor index 76ded87..78e1d93 100644 --- a/src/BackOffice/Pages/Network/UserNetworkInfo.razor +++ b/src/BackOffice/Pages/Network/UserNetworkInfo.razor @@ -302,7 +302,7 @@ خرید پکیج: - @if (_userInfo.HasPurchasedGoldenPackage) + @if (_userInfo.HasPurchasedPackage) { خریداری شده diff --git a/src/BackOffice/Pages/Package/Components/CreateDialog.razor b/src/BackOffice/Pages/Package/Components/CreateDialog.razor index cf628ab..898cfc1 100644 --- a/src/BackOffice/Pages/Package/Components/CreateDialog.razor +++ b/src/BackOffice/Pages/Package/Components/CreateDialog.razor @@ -41,12 +41,61 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/src/BackOffice/Pages/Package/Components/UpdateDialog.razor b/src/BackOffice/Pages/Package/Components/UpdateDialog.razor index 17adb8c..c335706 100644 --- a/src/BackOffice/Pages/Package/Components/UpdateDialog.razor +++ b/src/BackOffice/Pages/Package/Components/UpdateDialog.razor @@ -42,12 +42,61 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/src/BackOffice/Pages/Package/PackageMainPage.razor b/src/BackOffice/Pages/Package/PackageMainPage.razor index 952a11d..f026081 100644 --- a/src/BackOffice/Pages/Package/PackageMainPage.razor +++ b/src/BackOffice/Pages/Package/PackageMainPage.razor @@ -18,7 +18,11 @@ - + + + + + مدیریت پکیج @@ -51,31 +55,42 @@ - + - @if (string.IsNullOrWhiteSpace(context.Item.Description)) + @context.Item.Price.ToString("N0") + + + + + + @if (context.Item.IsActive) { - - + فعال } else { - - - - @(context.Item.Description.HtmlToText().Truncate(20, true)) - - + غیرفعال } - - + - + @if (context.Item.IsBasePackage) + { + پایه + } + else + { + عادی + } + + + + + - + - diff --git a/src/BackOffice/Pages/Package/PackageMainPage.razor.cs b/src/BackOffice/Pages/Package/PackageMainPage.razor.cs index ff5f7e7..25bf46c 100644 --- a/src/BackOffice/Pages/Package/PackageMainPage.razor.cs +++ b/src/BackOffice/Pages/Package/PackageMainPage.razor.cs @@ -33,7 +33,7 @@ public partial class PackageMainPage { var parameters = new DialogParameters { { x => x.Model, model.Adapt() } }; - var dialog = await DialogService.ShowAsync($"ویرایش پکیج", parameters, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); + var dialog = await DialogService.ShowAsync($"ویرایش پکیج", parameters, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Medium }); var result = await dialog.Result; if (!result.Canceled) @@ -70,7 +70,7 @@ public partial class PackageMainPage public async Task CreateNew() { - var dialog = await DialogService.ShowAsync($"افزودن پکیج", new DialogParameters() { { x => x.Model, new CreateNewPackageRequest() } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); + var dialog = await DialogService.ShowAsync($"افزودن پکیج", new DialogParameters() { { x => x.Model, new CreateNewPackageRequest() { IsActive = true, SupportsDirectPurchase = true, DiscountMultiplier = 2.0, MagicWalletMultiplier = 2.5, MaxBalancesPerLeg = 300, MaxNetworkLevel = 15, MagicWalletMaxDeposit = 1_000_000_000, MagicWalletMaxCredit = 2_500_000_000 } } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Medium }); var result = await dialog.Result; if (!result.Canceled) {