diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index 18c6348..88d2fa8 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -1,3 +1,4 @@
# Docs moved to totalDoc
See [totalDoc/INDEX.md](../../totalDoc/INDEX.md) for all documentation.
+
\ No newline at end of file
diff --git a/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor b/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor
index d55b8bc..eaab334 100644
--- a/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor
+++ b/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor
@@ -35,7 +35,23 @@
}
- @if (_authLoaded && !_isClubMemberActive)
+ @if (_authLoaded && _redirectingToMagic)
+ {
+
+
+
+
+ کیف پول شما در حالت جادویی است. در حال انتقال به صفحه شارژ کیف پول جادویی...
+
+
+ رفتن به شارژ کیف جادویی
+
+
+
+ }
+ else if (_authLoaded && !_isClubMemberActive)
{
diff --git a/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor.cs b/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor.cs
index 816aada..bac834d 100644
--- a/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor.cs
+++ b/src/FrontOffice.Main/Pages/Profile/ChargeCreditWallet.razor.cs
@@ -16,6 +16,7 @@ public partial class ChargeCreditWallet : ComponentBase
private bool _isClubMemberActive;
private bool _hasPurchasedPackage;
private bool _authLoaded;
+ private bool _redirectingToMagic;
private readonly long[] _presetAmounts = { 500_000, 1_000_000, 5_000_000, 10_000_000, 20_000_000, 50_000_000 };
@@ -53,11 +54,15 @@ public partial class ChargeCreditWallet : ComponentBase
{
_authLoaded = true;
}
+
+ // اگر کیف پول جادویی فعال است، فرم شارژ ۱:۱ نشان داده نشود
+ if (_isClubMemberActive && await TryRedirectIfMagicWalletAsync())
+ return;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
- if (firstRender && !string.IsNullOrEmpty(_pendingReturnUrl) && _isClubMemberActive)
+ if (firstRender && !string.IsNullOrEmpty(_pendingReturnUrl) && _isClubMemberActive && !_redirectingToMagic)
{
await CreditChargeNavigation.SaveReturnUrlAsync(JSRuntime, _pendingReturnUrl);
}
@@ -75,6 +80,9 @@ public partial class ChargeCreditWallet : ComponentBase
return;
}
+ if (await TryRedirectIfMagicWalletAsync())
+ return;
+
if (_chargeAmount <= 0 || _isProcessing) return;
_isProcessing = true;
@@ -113,6 +121,35 @@ public partial class ChargeCreditWallet : ComponentBase
}
}
+ ///
+ /// اگر WalletMode جادویی باشد، پیام میدهد و به صفحه شارژ کیف جادویی هدایت میکند.
+ ///
+ private async Task TryRedirectIfMagicWalletAsync()
+ {
+ try
+ {
+ var status = await WalletService.GetMagicWalletStatusAsync();
+ if (status.WalletMode != 1)
+ return false;
+
+ var multiplier = status.MagicMultiplier > 0 ? status.MagicMultiplier : 2.5;
+ var multiplierText = multiplier.ToString("0.#");
+
+ _redirectingToMagic = true;
+ Snackbar.Add(
+ $"کیف پول شما در حالت جادویی است. شارژ از این صفحه موجودی را چندبرابر نمیکند. برای دریافت ضریب جادویی (×{multiplierText}) به صفحه شارژ کیف پول جادویی هدایت میشوید.",
+ Severity.Info);
+
+ Navigation.NavigateTo(RouteConstants.Profile.MagicWallet);
+ return true;
+ }
+ catch
+ {
+ // در صورت خطا در خواندن وضعیت، مانع شارژ عادی نشو
+ return false;
+ }
+ }
+
private async Task ContinueShoppingAsync()
{
var returnUrl = await CreditChargeNavigation.GetReturnUrlAsync(JSRuntime);
diff --git a/src/FrontOffice.Main/Pages/Profile/Wallet.razor b/src/FrontOffice.Main/Pages/Profile/Wallet.razor
index d52d737..e13abee 100644
--- a/src/FrontOffice.Main/Pages/Profile/Wallet.razor
+++ b/src/FrontOffice.Main/Pages/Profile/Wallet.razor
@@ -38,18 +38,36 @@
درخواستهای برداشت
-
+
@if (_isClubMemberActive)
{
-
- شارژ کیفپول اصلی
-
+ @if (_isMagicWallet)
+ {
+
+ شارژ کیفپول جادویی
+
+
+ کیف پول شما در حالت جادویی است؛ شارژ از مسیر جادویی با ضریب چندبرابر اعمال میشود.
+
+ }
+ else
+ {
+
+ شارژ کیفپول اصلی
+
+ }
}
else
{
diff --git a/src/FrontOffice.Main/Pages/Profile/Wallet.razor.cs b/src/FrontOffice.Main/Pages/Profile/Wallet.razor.cs
index 04f9c96..f20a00c 100644
--- a/src/FrontOffice.Main/Pages/Profile/Wallet.razor.cs
+++ b/src/FrontOffice.Main/Pages/Profile/Wallet.razor.cs
@@ -14,6 +14,7 @@ public partial class Wallet : ComponentBase
private string _filterType = "all";
private bool _isClubMemberActive;
private bool _hasPurchasedPackage;
+ private bool _isMagicWallet;
protected override async Task OnInitializedAsync()
{
@@ -29,6 +30,16 @@ public partial class Wallet : ComponentBase
_hasPurchasedPackage = false;
}
+ try
+ {
+ var magicStatus = await WalletService.GetMagicWalletStatusAsync();
+ _isMagicWallet = magicStatus.WalletMode == 1;
+ }
+ catch
+ {
+ _isMagicWallet = false;
+ }
+
var b = await WalletService.GetBalancesAsync();
_balances = (FormatPrice(b.CreditBalance), FormatPrice(b.DiscountBalance), FormatPrice(b.NetworkBalance));
_txs = await WalletService.GetTransactionsAsync();