diff --git a/src/CMSMicroservice.Application/WalletCQ/Commands/ChargeCreditWallet/ChargeCreditWalletCommandHandler.cs b/src/CMSMicroservice.Application/WalletCQ/Commands/ChargeCreditWallet/ChargeCreditWalletCommandHandler.cs index d983cb7..03c231a 100644 --- a/src/CMSMicroservice.Application/WalletCQ/Commands/ChargeCreditWallet/ChargeCreditWalletCommandHandler.cs +++ b/src/CMSMicroservice.Application/WalletCQ/Commands/ChargeCreditWallet/ChargeCreditWalletCommandHandler.cs @@ -55,9 +55,16 @@ public class ChargeCreditWalletCommandHandler request.Amount); var user = await _context.Users + .Include(u => u.ClubMembership) .FirstOrDefaultAsync(u => u.Id == request.UserId, cancellationToken) ?? throw new NotFoundException(nameof(User), request.UserId); + if (user.ClubMembership?.IsActive != true) + { + throw new BadRequestException( + "برای شارژ کیف پول اصلی ابتدا باید پکیج را خریداری کرده و قرارداد باشگاه مشتریان را امضا کنید."); + } + var wallet = await _context.UserWallets .FirstOrDefaultAsync(w => w.UserId == request.UserId, cancellationToken) ?? throw new NotFoundException("کیف پول کاربر یافت نشد"); diff --git a/src/CMSMicroservice.Application/WalletCQ/Commands/VerifyCreditWalletCharge/VerifyCreditWalletChargeCommandHandler.cs b/src/CMSMicroservice.Application/WalletCQ/Commands/VerifyCreditWalletCharge/VerifyCreditWalletChargeCommandHandler.cs index c3985a5..9986a5a 100644 --- a/src/CMSMicroservice.Application/WalletCQ/Commands/VerifyCreditWalletCharge/VerifyCreditWalletChargeCommandHandler.cs +++ b/src/CMSMicroservice.Application/WalletCQ/Commands/VerifyCreditWalletCharge/VerifyCreditWalletChargeCommandHandler.cs @@ -51,9 +51,16 @@ public class VerifyCreditWalletChargeCommandHandler request.Authority); var user = await _context.Users + .Include(u => u.ClubMembership) .FirstOrDefaultAsync(u => u.Id == request.UserId, cancellationToken) ?? throw new NotFoundException(nameof(User), request.UserId); + if (user.ClubMembership?.IsActive != true) + { + throw new BadRequestException( + "برای شارژ کیف پول اصلی ابتدا باید پکیج را خریداری کرده و قرارداد باشگاه مشتریان را امضا کنید."); + } + var paymentTx = await _context.PaymentTransactions .FirstOrDefaultAsync(pt => pt.Authority == request.Authority, cancellationToken); diff --git a/src/CMSMicroservice.WebApi/Services/UserWalletService.cs b/src/CMSMicroservice.WebApi/Services/UserWalletService.cs index e8b8ff4..fa60522 100644 --- a/src/CMSMicroservice.WebApi/Services/UserWalletService.cs +++ b/src/CMSMicroservice.WebApi/Services/UserWalletService.cs @@ -277,6 +277,14 @@ public class UserWalletService : UserWalletContract.UserWalletContractBase ErrorMessage = ex.Message }; } + catch (BadRequestException ex) + { + return new InitiateCreditChargeResponse + { + IsSuccess = false, + ErrorMessage = ex.Message + }; + } } // ============= Wallet Verify Methods =============