feat: add Configuration gRPC service and queries for club settings and features

This commit is contained in:
masoodafar-web
2025-12-19 00:30:58 +03:30
parent 9db854ba0e
commit 0cca79ebfe
17 changed files with 765 additions and 19 deletions
@@ -0,0 +1,35 @@
using FrontOffice.BFF.WebApi.Common.Services;
using FrontOffice.BFF.Application.ConfigurationCQ.Queries.GetClubConfiguration;
using FrontOffice.BFF.Application.ConfigurationCQ.Queries.GetClubFeatures;
using FrontOffice.BFF.Configuration.Protobuf.Protos.Configuration;
namespace FrontOffice.BFF.WebApi.Services;
/// <summary>
/// سرویس تنظیمات - برای کاربران FrontOffice
/// </summary>
public class ConfigurationGrpcService : ConfigurationContract.ConfigurationContractBase
{
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
public ConfigurationGrpcService(IDispatchRequestToCQRS dispatchRequestToCQRS)
{
_dispatchRequestToCQRS = dispatchRequestToCQRS;
}
/// <summary>
/// دریافت تنظیمات باشگاه مشتریان
/// </summary>
public override async Task<GetClubConfigurationResponse> GetClubConfiguration(Empty request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle<GetClubConfigurationQuery, GetClubConfigurationResponse>(context);
}
/// <summary>
/// دریافت لیست فیچرهای باشگاه مشتریان
/// </summary>
public override async Task<GetClubFeaturesResponse> GetClubFeatures(Empty request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle<GetClubFeaturesQuery, GetClubFeaturesResponse>(context);
}
}
@@ -7,15 +7,19 @@ using FrontOffice.BFF.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter;
using FrontOffice.BFF.Application.UserOrderCQ.Queries.GetVATRate;
using FrontOffice.BFF.Application.UserOrderCQ.Commands.SubmitShopBuyOrder;
using FrontOffice.BFF.UserOrder.Protobuf.Protos.UserOrder;
using MediatR;
using Mapster;
namespace FrontOffice.BFF.WebApi.Services;
public class UserOrderService : UserOrderContract.UserOrderContractBase
{
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
private readonly ISender _mediator;
public UserOrderService(IDispatchRequestToCQRS dispatchRequestToCQRS)
public UserOrderService(IDispatchRequestToCQRS dispatchRequestToCQRS, ISender mediator)
{
_dispatchRequestToCQRS = dispatchRequestToCQRS;
_mediator = mediator;
}
public override async Task<CreateNewUserOrderResponse> CreateNewUserOrder(CreateNewUserOrderRequest request, ServerCallContext context)
{
@@ -44,6 +48,7 @@ public class UserOrderService : UserOrderContract.UserOrderContractBase
public override async Task<GetVATRateResponse> GetVATRate(Empty request, ServerCallContext context)
{
return await _dispatchRequestToCQRS.Handle<Empty, GetVATRateQuery, GetVATRateResponse>(request, context);
var result = await _mediator.Send(new GetVATRateQuery());
return result.Adapt<GetVATRateResponse>();
}
}