- Added CheckUserPermissionQuery and CheckUserPermissionQueryHandler for permission validation. - Introduced GetUserRolesQuery and GetUserRolesQueryHandler to retrieve user roles. - Created IPermissionService interface and its implementation in PermissionService. - Defined permission and role constants in PermissionDefinitions. - Developed SetDefaultVatPercentageCommand and its handler for VAT configuration. - Implemented GetCurrentVatPercentageQuery and handler to fetch current VAT settings. - Added manual payment commands: CreateManualPayment, ApproveManualPayment, and RejectManualPayment with respective handlers and validators. - Created GetManualPaymentsQuery and handler for retrieving manual payment records. - Integrated gRPC services for manual payments with appropriate permission checks. - Established Protobuf definitions for manual payment operations and metadata.
57 lines
2.0 KiB
C#
57 lines
2.0 KiB
C#
using BackOffice.BFF.Application.Common.Interfaces;
|
|
using MediatR;
|
|
using Microsoft.Extensions.Logging;
|
|
using BffPackage = BackOffice.BFF.Package.Protobuf.Protos.Package;
|
|
using CmsPackage = CMSMicroservice.Protobuf.Protos.Package;
|
|
|
|
namespace BackOffice.BFF.Application.PackageCQ.Queries.GetUserPackageStatus;
|
|
|
|
public class GetUserPackageStatusQueryHandler : IRequestHandler<GetUserPackageStatusQuery, BffPackage.GetUserPackageStatusResponse>
|
|
{
|
|
private readonly IApplicationContractContext _context;
|
|
private readonly ILogger<GetUserPackageStatusQueryHandler> _logger;
|
|
|
|
public GetUserPackageStatusQueryHandler(
|
|
IApplicationContractContext context,
|
|
ILogger<GetUserPackageStatusQueryHandler> logger)
|
|
{
|
|
_context = context;
|
|
_logger = logger;
|
|
}
|
|
|
|
public async Task<BffPackage.GetUserPackageStatusResponse> Handle(GetUserPackageStatusQuery request, CancellationToken cancellationToken)
|
|
{
|
|
var grpcRequest = new CmsPackage.GetUserPackageStatusRequest
|
|
{
|
|
UserId = request.UserId
|
|
};
|
|
|
|
var response = await _context.Packages.GetUserPackageStatusAsync(grpcRequest, cancellationToken: cancellationToken);
|
|
|
|
_logger.LogInformation("Retrieved package status for user {UserId}", request.UserId);
|
|
|
|
var result = new BffPackage.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;
|
|
}
|
|
}
|