53 lines
2.3 KiB
C#
53 lines
2.3 KiB
C#
|
|
using BackOffice.BFF.Package.Protobuf.Protos.Package;
|
||
|
|
using MediatR;
|
||
|
|
using Microsoft.Extensions.Logging;
|
||
|
|
|
||
|
|
namespace BackOffice.BFF.Application.PackageCQ.Queries.GetUserPackageStatus;
|
||
|
|
|
||
|
|
public class GetUserPackageStatusQueryHandler : IRequestHandler<GetUserPackageStatusQuery, GetUserPackageStatusResponse>
|
||
|
|
{
|
||
|
|
private readonly PackageContract.PackageContractClient _packageClient;
|
||
|
|
private readonly ILogger<GetUserPackageStatusQueryHandler> _logger;
|
||
|
|
|
||
|
|
public GetUserPackageStatusQueryHandler(
|
||
|
|
PackageContract.PackageContractClient packageClient,
|
||
|
|
ILogger<GetUserPackageStatusQueryHandler> logger)
|
||
|
|
{
|
||
|
|
_packageClient = packageClient;
|
||
|
|
_logger = logger;
|
||
|
|
}
|
||
|
|
|
||
|
|
public async Task<GetUserPackageStatusResponse> Handle(GetUserPackageStatusQuery request, CancellationToken cancellationToken)
|
||
|
|
{
|
||
|
|
// TODO: پیادهسازی GetUserPackageStatus
|
||
|
|
//
|
||
|
|
// 1. ایجاد gRPC Request:
|
||
|
|
// - var grpcRequest = new CMSMicroservice.Protobuf.Protos.Package.GetUserPackageStatusRequest {
|
||
|
|
// UserId = request.UserId
|
||
|
|
// }
|
||
|
|
//
|
||
|
|
// 2. فراخوانی CMS:
|
||
|
|
// - var response = await _packageClient.GetUserPackageStatusAsync(grpcRequest, cancellationToken: cancellationToken)
|
||
|
|
//
|
||
|
|
// 3. تبدیل به BFF Response:
|
||
|
|
// - return new GetUserPackageStatusResponse {
|
||
|
|
// UserId = response.UserId,
|
||
|
|
// PackagePurchaseMethod = response.PackagePurchaseMethod,
|
||
|
|
// HasPurchasedPackage = response.HasPurchasedPackage,
|
||
|
|
// IsClubMemberActive = response.IsClubMemberActive,
|
||
|
|
// WalletBalance = response.WalletBalance,
|
||
|
|
// DiscountBalance = response.DiscountBalance,
|
||
|
|
// CanActivateClubMembership = response.CanActivateClubMembership,
|
||
|
|
// LastOrderNumber = response.LastOrderNumber,
|
||
|
|
// LastPurchaseDate = response.LastPurchaseDate
|
||
|
|
// }
|
||
|
|
//
|
||
|
|
// 4. Log:
|
||
|
|
// - _logger.LogInformation("Retrieved package status for user {UserId}", request.UserId)
|
||
|
|
//
|
||
|
|
// نکته: این endpoint برای Admin است تا وضعیت کاربران را بررسی کند
|
||
|
|
|
||
|
|
throw new NotImplementedException("GetUserPackageStatus needs implementation");
|
||
|
|
}
|
||
|
|
}
|