This commit is contained in:
MeysamMoghaddam
2025-10-13 18:38:02 +03:30
parent d68f0189f4
commit 15d9f7f96a
2 changed files with 78 additions and 57 deletions
+19 -9
View File
@@ -33,6 +33,10 @@ public partial class Checkout
private long _discountAmount;
private long _finalPrice;
// Address management
private bool _isSettingDefaultAddress;
private long? _settingDefaultAddressId;
private bool CanProceedToPayment => _selectedPackage != null && _selectedAddress != null;
protected override async Task OnInitializedAsync()
@@ -96,14 +100,13 @@ public partial class Checkout
}
}
private void SelectAddress(GetAllUserAddressByFilterResponseModel address)
{
_selectedAddress = address;
StateHasChanged();
}
private async Task SetAddressAsDefault(long addressId)
{
if (_isSettingDefaultAddress) return;
_isSettingDefaultAddress = true;
_settingDefaultAddressId = addressId;
try
{
await UserAddressContract.SetAddressAsDefaultAsync(new() { Id = addressId });
@@ -114,6 +117,12 @@ public partial class Checkout
{
Snackbar.Add($"خطا در تغییر آدرس پیش‌فرض: {ex.Message}", Severity.Error);
}
finally
{
_isSettingDefaultAddress = false;
_settingDefaultAddressId = null;
await InvokeAsync(StateHasChanged);
}
}
private async Task ApplyDiscountCode()
@@ -163,6 +172,9 @@ public partial class Checkout
private async Task ProcessPayment()
{
Snackbar.Add("درگاه پرداخت متصل نیست! لطفا در زمان دیگری مجددا تلاش فرمایید!", Severity.Warning);
return;
if (!CanProceedToPayment || _selectedPackage == null || _selectedAddress == null)
{
Snackbar.Add("لطفاً پکیج و آدرس را انتخاب کنید.", Severity.Warning);
@@ -186,9 +198,7 @@ public partial class Checkout
var paymentResponse = await TransactionContract.PaymentRequestAsync(paymentRequest);
if (string.IsNullOrEmpty(paymentResponse.PaymentGWUrl))
{
throw new Exception("آدرس درگاه پرداخت دریافت نشد.");
}
Snackbar.Add("آدرس درگاه پرداخت دریافت نشد.", Severity.Error);
// Step 2: Create user order
var orderRequest = new CreateNewUserOrderRequest