u
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user