Refactor ShopingCart references and add UserCarts integration

This commit is contained in:
masoodafar-web
2025-11-20 00:56:58 +03:30
parent 852a0f7277
commit baa0c1449c
9 changed files with 35 additions and 6 deletions

View File

@@ -3,6 +3,7 @@ using CMSMicroservice.Protobuf.Protos.Package;
using CMSMicroservice.Protobuf.Protos.Products;
using CMSMicroservice.Protobuf.Protos.User;
using CMSMicroservice.Protobuf.Protos.UserAddress;
using CMSMicroservice.Protobuf.Protos.UserCarts;
using CMSMicroservice.Protobuf.Protos.UserContract;
using CMSMicroservice.Protobuf.Protos.UserOrder;
using PYMSMicroservice.Protobuf.Protos.Transaction;
@@ -20,6 +21,7 @@ public interface IApplicationContractContext
#region CMS
PackageContract.PackageContractClient Package { get; }
ProductsContract.ProductsContractClient Product { get; }
UserCartsContract.UserCartsContractClient UserCart { get; }
UserContract.UserContractClient User { get; }
UserContractContract.UserContractContractClient UserContract { get; }
UserAddressContract.UserAddressContractClient UserAddress { get; }

View File

@@ -1,16 +1,32 @@
using CMSMicroservice.Protobuf.Protos.UserCarts;
namespace FrontOffice.BFF.Application.ShopingCartCQ.Queries.GetAllUserCart;
public class GetAllUserCartQueryHandler : IRequestHandler<GetAllUserCartQuery, GetAllUserCartResponseDto>
{
private readonly IApplicationContractContext _context;
private readonly ICurrentUserService _currentUserService;
public GetAllUserCartQueryHandler(IApplicationContractContext context)
public GetAllUserCartQueryHandler(IApplicationContractContext context, ICurrentUserService currentUserService)
{
_context = context;
_currentUserService = currentUserService;
}
public async Task<GetAllUserCartResponseDto> Handle(GetAllUserCartQuery request, CancellationToken cancellationToken)
{
//TODO: Implement your business logic
var userAllCartResponse=await _context.UserCart.GetAllUserCartsByFilterAsync(new GetAllUserCartsByFilterRequest()
{
Filter = new GetAllUserCartsByFilterFilter()
{
UserId = long.Parse(_currentUserService.UserId ?? throw new InvalidOperationException())
}
}, cancellationToken: cancellationToken);
if (userAllCartResponse!=null && userAllCartResponse.Models.Count>0)
{
return userAllCartResponse.Adapt<GetAllUserCartResponseDto>();
}
return new GetAllUserCartResponseDto();
}
}

View File

@@ -7,7 +7,7 @@
<ItemGroup>
<PackageReference Include="Afrino.PYMSMicroservice.Protobuf" Version="0.0.11" />
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.121" />
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.122" />
<PackageReference Include="Google.Protobuf" Version="3.33.0" />
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.54.0" />
<PackageReference Include="Grpc.Tools" Version="2.76.0">

View File

@@ -3,6 +3,7 @@ using CMSMicroservice.Protobuf.Protos.Package;
using CMSMicroservice.Protobuf.Protos.Products;
using CMSMicroservice.Protobuf.Protos.User;
using CMSMicroservice.Protobuf.Protos.UserAddress;
using CMSMicroservice.Protobuf.Protos.UserCarts;
using CMSMicroservice.Protobuf.Protos.UserContract;
using CMSMicroservice.Protobuf.Protos.UserOrder;
using FrontOffice.BFF.Application.Common.Interfaces;
@@ -44,6 +45,7 @@ public class ApplicationContractContext : IApplicationContractContext
#region CMS
public PackageContract.PackageContractClient Package => GetService<PackageContract.PackageContractClient>();
public ProductsContract.ProductsContractClient Product => GetService<ProductsContract.ProductsContractClient>();
public UserCartsContract.UserCartsContractClient UserCart => GetService<UserCartsContract.UserCartsContractClient>();
public UserContract.UserContractClient User => GetService<UserContract.UserContractClient>();
public UserContractContract.UserContractContractClient UserContract => GetService<UserContractContract.UserContractContractClient>();

View File

@@ -21,6 +21,7 @@
<ProjectReference Include="..\FrontOffice.BFF.Application\FrontOffice.BFF.Application.csproj" />
<ProjectReference Include="..\FrontOffice.BFF.Infrastructure\FrontOffice.BFF.Infrastructure.csproj" />
<ProjectReference Include="..\Protobufs\FrontOffice.BFF.Products.Protobuf\FrontOffice.BFF.Products.Protobuf.csproj" />
<ProjectReference Include="..\Protobufs\FrontOffice.BFF.ShopingCart.Protobuf\FrontOffice.BFF.ShopingCart.Protobuf.csproj" />
<ProjectReference Include="..\Protobufs\FrontOffice.BFF.Transaction.Protobuf\FrontOffice.BFF.Transaction.Protobuf.csproj" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,8 +1,9 @@
using FrontOffice.BFF.Protobuf.Protos.ShopingCart;
using FrontOffice.BFF.WebApi.Common.Services;
using FrontOffice.BFF.Application.ShopingCartCQ.Commands.AddNewUserCart;
using FrontOffice.BFF.Application.ShopingCartCQ.Queries.GetAllUserCart;
using FrontOffice.BFF.Application.ShopingCartCQ.Commands.UpdateUserCart;
using FrontOffice.BFF.ShopingCart.Protobuf.Protos.ShopingCart;
namespace FrontOffice.BFF.WebApi.Services;
public class ShopingCartService : ShopingCartContract.ShopingCartContractBase
{

View File

@@ -24,6 +24,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FrontOffice.BFF.Transaction
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FrontOffice.BFF.Products.Protobuf", "Protobufs\FrontOffice.BFF.Products.Protobuf\FrontOffice.BFF.Products.Protobuf.csproj", "{CB77669F-5B48-4AC6-B20E-A928660E93F8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FrontOffice.BFF.ShopingCart.Protobuf", "Protobufs\FrontOffice.BFF.ShopingCart.Protobuf\FrontOffice.BFF.ShopingCart.Protobuf.csproj", "{DC61324B-D389-4A1D-B048-D0AA43A6BBE7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -70,6 +72,10 @@ Global
{CB77669F-5B48-4AC6-B20E-A928660E93F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CB77669F-5B48-4AC6-B20E-A928660E93F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB77669F-5B48-4AC6-B20E-A928660E93F8}.Release|Any CPU.Build.0 = Release|Any CPU
{DC61324B-D389-4A1D-B048-D0AA43A6BBE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC61324B-D389-4A1D-B048-D0AA43A6BBE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DC61324B-D389-4A1D-B048-D0AA43A6BBE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC61324B-D389-4A1D-B048-D0AA43A6BBE7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -81,5 +87,6 @@ Global
{663CDDFA-E15F-4356-AE01-2311C9B83D52} = {CA9BF4D6-6729-4011-888E-48F5F739B469}
{F59861D9-01D6-44C9-85A9-E6050D55D290} = {CA9BF4D6-6729-4011-888E-48F5F739B469}
{CB77669F-5B48-4AC6-B20E-A928660E93F8} = {CA9BF4D6-6729-4011-888E-48F5F739B469}
{DC61324B-D389-4A1D-B048-D0AA43A6BBE7} = {CA9BF4D6-6729-4011-888E-48F5F739B469}
EndGlobalSection
EndGlobal

View File

@@ -1,5 +1,5 @@
using FluentValidation;
using FrontOfficeMicroservice.Protobuf.Protos.ShopingCart;
using FrontOffice.BFF.ShopingCart.Protobuf.Protos.ShopingCart;
namespace FrontOfficeMicroservice.Protobuf.Validator.ShopingCart;
public class AddNewUserCartRequestValidator : AbstractValidator<AddNewUserCartRequest>

View File

@@ -1,5 +1,5 @@
using FluentValidation;
using FrontOfficeMicroservice.Protobuf.Protos.ShopingCart;
using FrontOffice.BFF.ShopingCart.Protobuf.Protos.ShopingCart;
namespace FrontOfficeMicroservice.Protobuf.Validator.ShopingCart;
public class UpdateUserCartRequestValidator : AbstractValidator<UpdateUserCartRequest>