Refactor user ID handling in command handlers and update Protobuf package version to 0.0.124
This commit is contained in:
@@ -17,7 +17,7 @@ public class LoggingBehaviour<TRequest> : IRequestPreProcessor<TRequest> where T
|
|||||||
public async Task Process(TRequest request, CancellationToken cancellationToken)
|
public async Task Process(TRequest request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var requestName = typeof(TRequest).Name;
|
var requestName = typeof(TRequest).Name;
|
||||||
var userId = _currentUserService.UserId ?? string.Empty;
|
var userId = _currentUserService.UserId ;
|
||||||
_logger.LogInformation("Request: {Name} {@UserId} {@Request}",
|
_logger.LogInformation("Request: {Name} {@UserId} {@Request}",
|
||||||
requestName, userId, request);
|
requestName, userId, request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class PerformanceBehaviour<TRequest, TResponse> : IPipelineBehavior<TRequ
|
|||||||
if (elapsedMilliseconds > 500)
|
if (elapsedMilliseconds > 500)
|
||||||
{
|
{
|
||||||
var requestName = typeof(TRequest).Name;
|
var requestName = typeof(TRequest).Name;
|
||||||
var userId = _currentUserService.UserId ?? string.Empty;
|
var userId = _currentUserService.UserId;
|
||||||
|
|
||||||
_logger.LogWarning("Long Running Request: {Name} ({ElapsedMilliseconds} milliseconds) {@UserId} {@Request}",
|
_logger.LogWarning("Long Running Request: {Name} ({ElapsedMilliseconds} milliseconds) {@UserId} {@Request}",
|
||||||
requestName, elapsedMilliseconds, userId, request);
|
requestName, elapsedMilliseconds, userId, request);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ namespace FrontOffice.BFF.Application.Common.Interfaces;
|
|||||||
|
|
||||||
public interface ICurrentUserService
|
public interface ICurrentUserService
|
||||||
{
|
{
|
||||||
string? UserId { get; }
|
long? UserId { get; }
|
||||||
string? FirstName { get; }
|
string? FirstName { get; }
|
||||||
string? LastName { get; }
|
string? LastName { get; }
|
||||||
string? MobileNumber { get; }
|
string? MobileNumber { get; }
|
||||||
|
|||||||
@@ -1,16 +1,26 @@
|
|||||||
|
using CMSMicroservice.Protobuf.Protos.UserCarts;
|
||||||
|
|
||||||
namespace FrontOffice.BFF.Application.ShopingCartCQ.Commands.AddNewUserCart;
|
namespace FrontOffice.BFF.Application.ShopingCartCQ.Commands.AddNewUserCart;
|
||||||
|
|
||||||
public class AddNewUserCartCommandHandler : IRequestHandler<AddNewUserCartCommand, Unit>
|
public class AddNewUserCartCommandHandler : IRequestHandler<AddNewUserCartCommand, Unit>
|
||||||
{
|
{
|
||||||
private readonly IApplicationContractContext _context;
|
private readonly IApplicationContractContext _context;
|
||||||
|
private readonly ICurrentUserService _currentUserService;
|
||||||
|
|
||||||
public AddNewUserCartCommandHandler(IApplicationContractContext context)
|
public AddNewUserCartCommandHandler(IApplicationContractContext context, ICurrentUserService currentUserService)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
|
_currentUserService = currentUserService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Unit> Handle(AddNewUserCartCommand request, CancellationToken cancellationToken)
|
public async Task<Unit> Handle(AddNewUserCartCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
//TODO: Implement your business logic
|
await _context.UserCart.CreateNewUserCartsAsync(new CreateNewUserCartsRequest()
|
||||||
|
{
|
||||||
|
ProductId = request.ProductId,
|
||||||
|
Count = request.Count,
|
||||||
|
UserId = _currentUserService.UserId.Value
|
||||||
|
}, cancellationToken: cancellationToken);
|
||||||
return new Unit();
|
return new Unit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Protobuf.Protos.UserCarts;
|
||||||
|
|
||||||
namespace FrontOffice.BFF.Application.ShopingCartCQ.Commands.UpdateUserCart;
|
namespace FrontOffice.BFF.Application.ShopingCartCQ.Commands.UpdateUserCart;
|
||||||
public class UpdateUserCartCommandHandler : IRequestHandler<UpdateUserCartCommand, Unit>
|
public class UpdateUserCartCommandHandler : IRequestHandler<UpdateUserCartCommand, Unit>
|
||||||
{
|
{
|
||||||
@@ -10,7 +12,11 @@ public class UpdateUserCartCommandHandler : IRequestHandler<UpdateUserCartComman
|
|||||||
|
|
||||||
public async Task<Unit> Handle(UpdateUserCartCommand request, CancellationToken cancellationToken)
|
public async Task<Unit> Handle(UpdateUserCartCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
//TODO: Implement your business logic
|
await _context.UserCart.UpdateUserCartsAsync(new UpdateUserCartsRequest()
|
||||||
|
{
|
||||||
|
Id = request.UserCartId,
|
||||||
|
Count = request.Count,
|
||||||
|
}, cancellationToken: cancellationToken);
|
||||||
return new Unit();
|
return new Unit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class GetAllUserCartQueryHandler : IRequestHandler<GetAllUserCartQuery, G
|
|||||||
{
|
{
|
||||||
Filter = new GetAllUserCartsByFilterFilter()
|
Filter = new GetAllUserCartsByFilterFilter()
|
||||||
{
|
{
|
||||||
UserId = long.Parse(_currentUserService.UserId ?? throw new InvalidOperationException())
|
UserId = _currentUserService.UserId ?? throw new InvalidOperationException()
|
||||||
}
|
}
|
||||||
}, cancellationToken: cancellationToken);
|
}, cancellationToken: cancellationToken);
|
||||||
if (userAllCartResponse!=null && userAllCartResponse.Models.Count>0)
|
if (userAllCartResponse!=null && userAllCartResponse.Models.Count>0)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class CreateNewUserAddressCommandHandler : IRequestHandler<CreateNewUserA
|
|||||||
{
|
{
|
||||||
var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
|
var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
|
||||||
var req = request.Adapt<CreateNewUserAddressRequest>();
|
var req = request.Adapt<CreateNewUserAddressRequest>();
|
||||||
req.UserId = long.Parse(userId);
|
req.UserId = userId;
|
||||||
var response = await _context.UserAddress.CreateNewUserAddressAsync(request: req, cancellationToken: cancellationToken);
|
var response = await _context.UserAddress.CreateNewUserAddressAsync(request: req, cancellationToken: cancellationToken);
|
||||||
return response.Adapt<CreateNewUserAddressResponseDto>();
|
return response.Adapt<CreateNewUserAddressResponseDto>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public class GetAllUserAddressByFilterQueryHandler : IRequestHandler<GetAllUserA
|
|||||||
var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
|
var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
|
||||||
var req = request.Adapt<GetAllUserAddressByFilterRequest>();
|
var req = request.Adapt<GetAllUserAddressByFilterRequest>();
|
||||||
req.Filter ??= new();
|
req.Filter ??= new();
|
||||||
req.Filter.UserId = long.Parse(userId);
|
req.Filter.UserId = userId;
|
||||||
var response = await _context.UserAddress.GetAllUserAddressByFilterAsync(request: req, cancellationToken: cancellationToken);
|
var response = await _context.UserAddress.GetAllUserAddressByFilterAsync(request: req, cancellationToken: cancellationToken);
|
||||||
return response.Adapt<GetAllUserAddressByFilterResponseDto>();
|
return response.Adapt<GetAllUserAddressByFilterResponseDto>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public class AcceptContractCommandHandler : IRequestHandler<AcceptContractComman
|
|||||||
await _context.UserContract.CreateNewUserContractAsync(new CreateNewUserContractRequest()
|
await _context.UserContract.CreateNewUserContractAsync(new CreateNewUserContractRequest()
|
||||||
{
|
{
|
||||||
SignGuid = request.SignGuid,
|
SignGuid = request.SignGuid,
|
||||||
UserId = long.Parse(_currentUserService.UserId ?? throw new InvalidOperationException()),
|
UserId = _currentUserService.UserId ?? throw new InvalidOperationException(),
|
||||||
ContractId = 1,
|
ContractId = 1,
|
||||||
SignedPdfFile = request.ContractHtml,
|
SignedPdfFile = request.ContractHtml,
|
||||||
}, cancellationToken: cancellationToken);
|
}, cancellationToken: cancellationToken);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class SetPasswordForUserCommandHandler : IRequestHandler<SetPasswordForUs
|
|||||||
public async Task<Unit> Handle(SetPasswordForUserCommand request, CancellationToken cancellationToken)
|
public async Task<Unit> Handle(SetPasswordForUserCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var setPasswordRequest = request.Adapt<SetPasswordForUserRequest>();
|
var setPasswordRequest = request.Adapt<SetPasswordForUserRequest>();
|
||||||
setPasswordRequest.UserId = long.Parse(_currentUserService.UserId ?? throw new InvalidOperationException());
|
setPasswordRequest.UserId = _currentUserService.UserId ?? throw new InvalidOperationException();
|
||||||
await _context.User.SetPasswordForUserAsync(setPasswordRequest, cancellationToken: cancellationToken);
|
await _context.User.SetPasswordForUserAsync(setPasswordRequest, cancellationToken: cancellationToken);
|
||||||
return new Unit();
|
return new Unit();
|
||||||
|
|
||||||
|
|||||||
@@ -15,12 +15,12 @@ public class GetUserQueryHandler : IRequestHandler<GetUserQuery, GetUserResponse
|
|||||||
var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
|
var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
|
||||||
var response = await _context.User.GetUserAsync(request: new()
|
var response = await _context.User.GetUserAsync(request: new()
|
||||||
{
|
{
|
||||||
Id = long.Parse(userId)
|
Id = userId
|
||||||
}, cancellationToken: cancellationToken);
|
}, cancellationToken: cancellationToken);
|
||||||
var result = response.Adapt<GetUserResponseDto>();
|
var result = response.Adapt<GetUserResponseDto>();
|
||||||
var getJwtToken = await _context.User.GetJwtTokenAsync(request: new()
|
var getJwtToken = await _context.User.GetJwtTokenAsync(request: new()
|
||||||
{
|
{
|
||||||
Id = long.Parse(userId)
|
Id = userId
|
||||||
}, cancellationToken: cancellationToken);
|
}, cancellationToken: cancellationToken);
|
||||||
if(getJwtToken != null && !string.IsNullOrWhiteSpace(getJwtToken.Token))
|
if(getJwtToken != null && !string.IsNullOrWhiteSpace(getJwtToken.Token))
|
||||||
result.Token = getJwtToken.Token;
|
result.Token = getJwtToken.Token;
|
||||||
|
|||||||
@@ -20,14 +20,14 @@ public class CreateNewUserOrderCommandHandler : IRequestHandler<CreateNewUserOrd
|
|||||||
Filter = new()
|
Filter = new()
|
||||||
{
|
{
|
||||||
IsDefault = true,
|
IsDefault = true,
|
||||||
UserId = long.Parse(userId)
|
UserId = userId
|
||||||
}
|
}
|
||||||
}, cancellationToken: cancellationToken);
|
}, cancellationToken: cancellationToken);
|
||||||
if (getAllUserAddress?.Models?.Any() == false)
|
if (getAllUserAddress?.Models?.Any() == false)
|
||||||
throw new Exception(message:"آدرس نامعتبر است!!");
|
throw new Exception(message:"آدرس نامعتبر است!!");
|
||||||
|
|
||||||
var req = request.Adapt<CreateNewUserOrderRequest>();
|
var req = request.Adapt<CreateNewUserOrderRequest>();
|
||||||
req.UserId = long.Parse(userId);
|
req.UserId = userId;
|
||||||
req.UserAddressId = getAllUserAddress!.Models.First().Id;
|
req.UserAddressId = getAllUserAddress!.Models.First().Id;
|
||||||
|
|
||||||
var response = await _context.UserOrder.CreateNewUserOrderAsync(request: req, cancellationToken: cancellationToken);
|
var response = await _context.UserOrder.CreateNewUserOrderAsync(request: req, cancellationToken: cancellationToken);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class GetAllUserOrderByFilterQueryHandler : IRequestHandler<GetAllUserOrd
|
|||||||
|
|
||||||
var req = request.Adapt<GetAllUserOrderByFilterRequest>();
|
var req = request.Adapt<GetAllUserOrderByFilterRequest>();
|
||||||
req.Filter ??= new();
|
req.Filter ??= new();
|
||||||
req.Filter.UserId = long.Parse(userId);
|
req.Filter.UserId = userId;
|
||||||
var response = await _context.UserOrder.GetAllUserOrderByFilterAsync(request: req, cancellationToken: cancellationToken);
|
var response = await _context.UserOrder.GetAllUserOrderByFilterAsync(request: req, cancellationToken: cancellationToken);
|
||||||
return response.Adapt<GetAllUserOrderByFilterResponseDto>();
|
return response.Adapt<GetAllUserOrderByFilterResponseDto>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Afrino.PYMSMicroservice.Protobuf" Version="0.0.11" />
|
<PackageReference Include="Afrino.PYMSMicroservice.Protobuf" Version="0.0.11" />
|
||||||
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.123" />
|
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.124" />
|
||||||
<PackageReference Include="Google.Protobuf" Version="3.33.0" />
|
<PackageReference Include="Google.Protobuf" Version="3.33.0" />
|
||||||
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.54.0" />
|
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.54.0" />
|
||||||
<PackageReference Include="Grpc.Tools" Version="2.76.0">
|
<PackageReference Include="Grpc.Tools" Version="2.76.0">
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class LoggingBehaviour : Interceptor
|
|||||||
UnaryServerMethod<TRequest, TResponse> continuation)
|
UnaryServerMethod<TRequest, TResponse> continuation)
|
||||||
{
|
{
|
||||||
var requestName = typeof(TRequest).Name;
|
var requestName = typeof(TRequest).Name;
|
||||||
var userId = _currentUserService.UserId ?? string.Empty;
|
var userId = _currentUserService.UserId;
|
||||||
_logger.LogInformation("gRPC Starting receiving call. Type/Method: {Type} / {Method} Request: {Name} {@UserId} {@Request}",
|
_logger.LogInformation("gRPC Starting receiving call. Type/Method: {Type} / {Method} Request: {Name} {@UserId} {@Request}",
|
||||||
MethodType.Unary, context.Method , requestName, userId, request);
|
MethodType.Unary, context.Method , requestName, userId, request);
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class PerformanceBehaviour : Interceptor
|
|||||||
if (elapsedMilliseconds > 500)
|
if (elapsedMilliseconds > 500)
|
||||||
{
|
{
|
||||||
var requestName = typeof(TRequest).Name;
|
var requestName = typeof(TRequest).Name;
|
||||||
var userId = _currentUserService.UserId ?? string.Empty;
|
var userId = _currentUserService.UserId;
|
||||||
|
|
||||||
_logger.LogWarning("gRPC Long Running Request: {Name} ({ElapsedMilliseconds} milliseconds) {@UserId} {@Request}",
|
_logger.LogWarning("gRPC Long Running Request: {Name} ({ElapsedMilliseconds} milliseconds) {@UserId} {@Request}",
|
||||||
requestName, elapsedMilliseconds, userId, request);
|
requestName, elapsedMilliseconds, userId, request);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class CurrentUserService : ICurrentUserService
|
|||||||
_httpContextAccessor = httpContextAccessor;
|
_httpContextAccessor = httpContextAccessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string? UserId => _httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.NameIdentifier);
|
public long? UserId => long?.Parse(_httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.NameIdentifier) ?? throw new InvalidOperationException());
|
||||||
public string? FirstName => _httpContextAccessor.HttpContext?.User?.FindFirstValue("FirstName");
|
public string? FirstName => _httpContextAccessor.HttpContext?.User?.FindFirstValue("FirstName");
|
||||||
public string? LastName => _httpContextAccessor.HttpContext?.User?.FindFirstValue("LastName");
|
public string? LastName => _httpContextAccessor.HttpContext?.User?.FindFirstValue("LastName");
|
||||||
public string? MobileNumber => _httpContextAccessor.HttpContext?.User?.FindFirstValue("MobileNumber");
|
public string? MobileNumber => _httpContextAccessor.HttpContext?.User?.FindFirstValue("MobileNumber");
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Version>0.0.12</Version>
|
<Version>0.0.13</Version>
|
||||||
<PackageId>FrontOffice.BFF.ShopingCart.Protobuf</PackageId>
|
<PackageId>FrontOffice.BFF.ShopingCart.Protobuf</PackageId>
|
||||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||||
<DebugSymbols>False</DebugSymbols>
|
<DebugSymbols>False</DebugSymbols>
|
||||||
|
|||||||
Reference in New Issue
Block a user