feat: Add Protobuf definitions for Network Membership service
- Introduced `networkmembership.proto` with RPC methods for retrieving user network tree, statistics, and position. - Implemented HTTP annotations for gRPC transcoding in the service methods. - Added support for Google API annotations in `annotations.proto` and `http.proto`. - Created `ConfigureServices.cs` to register FluentValidation for the Protobuf services. - Updated project file to include necessary dependencies for gRPC and Protobuf.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using FrontOffice.BFF.WebApi.Common.Services;
|
||||
using FrontOffice.BFF.Application.ClubMembershipCQ.Queries.GetMyClubMembership;
|
||||
using FrontOffice.BFF.Application.ClubMembershipCQ.Commands.ActivateMyClubMembership;
|
||||
using FrontOffice.BFF.ClubMembership.Protobuf.Protos.ClubMembership;
|
||||
|
||||
namespace FrontOffice.BFF.WebApi.Services;
|
||||
|
||||
/// <summary>
|
||||
/// سرویس عضویت باشگاه - برای کاربران FrontOffice
|
||||
/// </summary>
|
||||
public class ClubMembershipGrpcService : ClubMembershipContract.ClubMembershipContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
|
||||
|
||||
public ClubMembershipGrpcService(IDispatchRequestToCQRS dispatchRequestToCQRS)
|
||||
{
|
||||
_dispatchRequestToCQRS = dispatchRequestToCQRS;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت وضعیت عضویت باشگاه کاربر جاری
|
||||
/// </summary>
|
||||
public override async Task<GetMyClubMembershipResponse> GetMyClubMembership(Empty request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyClubMembershipQuery, GetMyClubMembershipResponse>(context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// فعالسازی عضویت باشگاه (پرداخت 56M)
|
||||
/// </summary>
|
||||
public override async Task<ActivateMyClubMembershipResponse> ActivateMyClubMembership(ActivateMyClubMembershipRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<ActivateMyClubMembershipRequest, ActivateMyClubMembershipCommand, ActivateMyClubMembershipResponse>(request, context);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
using FrontOffice.BFF.WebApi.Common.Services;
|
||||
using FrontOffice.BFF.Application.ClubMembershipCQ.Queries.GetMyClubMembership;
|
||||
using FrontOffice.BFF.Application.ClubMembershipCQ.Commands.ActivateMyClubMembership;
|
||||
using MediatR;
|
||||
using System.Threading;
|
||||
|
||||
namespace FrontOffice.BFF.WebApi.Services;
|
||||
|
||||
@@ -11,19 +13,19 @@ namespace FrontOffice.BFF.WebApi.Services;
|
||||
/// </summary>
|
||||
public class ClubMembershipService
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
|
||||
private readonly ISender _sender;
|
||||
|
||||
public ClubMembershipService(IDispatchRequestToCQRS dispatchRequestToCQRS)
|
||||
public ClubMembershipService(ISender sender)
|
||||
{
|
||||
_dispatchRequestToCQRS = dispatchRequestToCQRS;
|
||||
_sender = sender;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت وضعیت عضویت باشگاه کاربر جاری
|
||||
/// </summary>
|
||||
public async Task<GetMyClubMembershipResponseDto> GetMyClubMembership(Empty request, ServerCallContext context)
|
||||
public async Task<GetMyClubMembershipResponseDto> GetMyClubMembership(CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyClubMembershipQuery, GetMyClubMembershipResponseDto>(context);
|
||||
return await _sender.Send(new GetMyClubMembershipQuery(), cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -31,8 +33,8 @@ public class ClubMembershipService
|
||||
/// </summary>
|
||||
public async Task<ActivateMyClubMembershipResponseDto> ActivateMyClubMembership(
|
||||
ActivateMyClubMembershipCommand request,
|
||||
ServerCallContext context)
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<ActivateMyClubMembershipCommand, ActivateMyClubMembershipResponseDto>(request, context);
|
||||
return await _sender.Send(request, cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
using FrontOffice.BFF.WebApi.Common.Services;
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyCommissionPayouts;
|
||||
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyWeeklyBalances;
|
||||
using FrontOffice.BFF.Commission.Protobuf.Protos.Commission;
|
||||
|
||||
namespace FrontOffice.BFF.WebApi.Services;
|
||||
|
||||
/// <summary>
|
||||
/// سرویس کمیسیون - برای کاربران FrontOffice
|
||||
/// </summary>
|
||||
public class CommissionService : CommissionContract.CommissionContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
|
||||
|
||||
public CommissionService(IDispatchRequestToCQRS dispatchRequestToCQRS)
|
||||
{
|
||||
_dispatchRequestToCQRS = dispatchRequestToCQRS;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست پرداختهای کمیسیون کاربر
|
||||
/// </summary>
|
||||
public override async Task<GetMyCommissionPayoutsResponse> GetMyCommissionPayouts(GetMyCommissionPayoutsRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyCommissionPayoutsRequest, GetMyCommissionPayoutsQuery, GetMyCommissionPayoutsResponse>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست بالانسهای هفتگی کاربر
|
||||
/// </summary>
|
||||
public override async Task<GetMyWeeklyBalancesResponse> GetMyWeeklyBalances(GetMyWeeklyBalancesRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyWeeklyBalancesRequest, GetMyWeeklyBalancesQuery, GetMyWeeklyBalancesResponse>(request, context);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
using FrontOffice.BFF.WebApi.Common.Services;
|
||||
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetDiscountProducts;
|
||||
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetDiscountCategories;
|
||||
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetMyDiscountCart;
|
||||
using FrontOffice.BFF.Application.DiscountShopCQ.Queries.GetMyDiscountOrders;
|
||||
using FrontOffice.BFF.Application.DiscountShopCQ.Commands.AddToDiscountCart;
|
||||
using FrontOffice.BFF.Application.DiscountShopCQ.Commands.RemoveFromDiscountCart;
|
||||
using FrontOffice.BFF.Application.DiscountShopCQ.Commands.PlaceDiscountOrder;
|
||||
using FrontOffice.BFF.DiscountShop.Protobuf.Protos.DiscountShop;
|
||||
|
||||
namespace FrontOffice.BFF.WebApi.Services;
|
||||
|
||||
/// <summary>
|
||||
/// سرویس فروشگاه تخفیفی - برای کاربران عضو باشگاه
|
||||
/// </summary>
|
||||
public class DiscountShopService : DiscountShopContract.DiscountShopContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
|
||||
|
||||
public DiscountShopService(IDispatchRequestToCQRS dispatchRequestToCQRS)
|
||||
{
|
||||
_dispatchRequestToCQRS = dispatchRequestToCQRS;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست محصولات تخفیفی
|
||||
/// </summary>
|
||||
public override async Task<GetDiscountProductsResponse> GetDiscountProducts(GetDiscountProductsRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetDiscountProductsRequest, GetDiscountProductsQuery, GetDiscountProductsResponse>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت دستهبندیهای فروشگاه تخفیفی
|
||||
/// </summary>
|
||||
public override async Task<GetDiscountCategoriesResponse> GetDiscountCategories(GetDiscountCategoriesRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetDiscountCategoriesRequest, GetDiscountCategoriesQuery, GetDiscountCategoriesResponse>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت سبد خرید تخفیفی کاربر جاری
|
||||
/// </summary>
|
||||
public override async Task<GetMyDiscountCartResponse> GetMyDiscountCart(Empty request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyDiscountCartQuery, GetMyDiscountCartResponse>(context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// افزودن محصول به سبد خرید تخفیفی
|
||||
/// </summary>
|
||||
public override async Task<Empty> AddToDiscountCart(AddToDiscountCartRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<AddToDiscountCartRequest, AddToDiscountCartCommand>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// حذف محصول از سبد خرید تخفیفی
|
||||
/// </summary>
|
||||
public override async Task<Empty> RemoveFromDiscountCart(RemoveFromDiscountCartRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<RemoveFromDiscountCartRequest, RemoveFromDiscountCartCommand>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست سفارشات تخفیفی کاربر جاری
|
||||
/// </summary>
|
||||
public override async Task<GetMyDiscountOrdersResponse> GetMyDiscountOrders(GetMyDiscountOrdersRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyDiscountOrdersRequest, GetMyDiscountOrdersQuery, GetMyDiscountOrdersResponse>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ثبت سفارش تخفیفی
|
||||
/// </summary>
|
||||
public override async Task<PlaceDiscountOrderResponse> PlaceDiscountOrder(PlaceDiscountOrderRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<PlaceDiscountOrderRequest, PlaceDiscountOrderCommand, PlaceDiscountOrderResponse>(request, context);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using FrontOffice.BFF.WebApi.Common.Services;
|
||||
using FrontOffice.BFF.Application.NetworkMembershipCQ.Queries.GetMyNetworkTree;
|
||||
using FrontOffice.BFF.Application.NetworkMembershipCQ.Queries.GetMyNetworkStatistics;
|
||||
using FrontOffice.BFF.Application.NetworkMembershipCQ.Queries.GetMyNetworkPosition;
|
||||
using FrontOffice.BFF.NetworkMembership.Protobuf.Protos.NetworkMembership;
|
||||
|
||||
namespace FrontOffice.BFF.WebApi.Services;
|
||||
|
||||
/// <summary>
|
||||
/// سرویس عضویت شبکهای - برای کاربران FrontOffice
|
||||
/// </summary>
|
||||
public class NetworkMembershipService : NetworkMembershipContract.NetworkMembershipContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
|
||||
|
||||
public NetworkMembershipService(IDispatchRequestToCQRS dispatchRequestToCQRS)
|
||||
{
|
||||
_dispatchRequestToCQRS = dispatchRequestToCQRS;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت درخت شبکه کاربر جاری
|
||||
/// </summary>
|
||||
public override async Task<GetMyNetworkTreeResponse> GetMyNetworkTree(GetMyNetworkTreeRequest request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyNetworkTreeRequest, GetMyNetworkTreeQuery, GetMyNetworkTreeResponse>(request, context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت آمار شبکه کاربر جاری
|
||||
/// </summary>
|
||||
public override async Task<GetMyNetworkStatisticsResponse> GetMyNetworkStatistics(Empty request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyNetworkStatisticsQuery, GetMyNetworkStatisticsResponse>(context);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت موقعیت کاربر در شبکه
|
||||
/// </summary>
|
||||
public override async Task<GetMyNetworkPositionResponse> GetMyNetworkPosition(Empty request, ServerCallContext context)
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetMyNetworkPositionQuery, GetMyNetworkPositionResponse>(context);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user