feat: Implement Public Message management features including create, update, delete, and publish functionalities
This commit is contained in:
+35
-31
@@ -1,4 +1,6 @@
|
||||
using BackOffice.BFF.Application.Common.Interfaces;
|
||||
using BackOffice.BFF.Package.Protobuf.Protos.Package;
|
||||
using CMSMicroservice.Protobuf.Protos.Package;
|
||||
using MediatR;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
@@ -6,47 +8,49 @@ namespace BackOffice.BFF.Application.PackageCQ.Queries.GetUserPackageStatus;
|
||||
|
||||
public class GetUserPackageStatusQueryHandler : IRequestHandler<GetUserPackageStatusQuery, GetUserPackageStatusResponse>
|
||||
{
|
||||
private readonly PackageContract.PackageContractClient _packageClient;
|
||||
private readonly IApplicationContractContext _context;
|
||||
private readonly ILogger<GetUserPackageStatusQueryHandler> _logger;
|
||||
|
||||
public GetUserPackageStatusQueryHandler(
|
||||
PackageContract.PackageContractClient packageClient,
|
||||
IApplicationContractContext context,
|
||||
ILogger<GetUserPackageStatusQueryHandler> logger)
|
||||
{
|
||||
_packageClient = packageClient;
|
||||
_context = context;
|
||||
_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 است تا وضعیت کاربران را بررسی کند
|
||||
var grpcRequest = new GetUserPackageStatusRequest
|
||||
{
|
||||
UserId = request.UserId
|
||||
};
|
||||
|
||||
throw new NotImplementedException("GetUserPackageStatus needs implementation");
|
||||
var response = await _context.Packages.GetUserPackageStatusAsync(grpcRequest, cancellationToken: cancellationToken);
|
||||
|
||||
_logger.LogInformation("Retrieved package status for user {UserId}", request.UserId);
|
||||
|
||||
var result = new GetUserPackageStatusResponse
|
||||
{
|
||||
UserId = response.UserId,
|
||||
PackagePurchaseMethod = response.PackagePurchaseMethod,
|
||||
HasPurchasedPackage = response.HasPurchasedPackage,
|
||||
IsClubMemberActive = response.IsClubMemberActive,
|
||||
WalletBalance = response.WalletBalance,
|
||||
DiscountBalance = response.DiscountBalance,
|
||||
CanActivateClubMembership = response.CanActivateClubMembership
|
||||
};
|
||||
|
||||
if (response.LastOrderNumber != null)
|
||||
{
|
||||
result.LastOrderNumber = response.LastOrderNumber;
|
||||
}
|
||||
|
||||
if (response.LastPurchaseDate != null)
|
||||
{
|
||||
result.LastPurchaseDate = response.LastPurchaseDate;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user