This commit is contained in:
MeysamMoghaddam
2025-10-13 12:05:05 +03:30
parent 05f4833270
commit cac1b1e3bc
6 changed files with 5367 additions and 790 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,36 @@
using CMSMicroservice.Protobuf.Protos.UserOrder;
namespace FrontOffice.BFF.Application.UserOrderCQ.Commands.CreateNewUserOrder; namespace FrontOffice.BFF.Application.UserOrderCQ.Commands.CreateNewUserOrder;
public class CreateNewUserOrderCommandHandler : IRequestHandler<CreateNewUserOrderCommand, CreateNewUserOrderResponseDto> public class CreateNewUserOrderCommandHandler : IRequestHandler<CreateNewUserOrderCommand, CreateNewUserOrderResponseDto>
{ {
private readonly IApplicationContractContext _context; private readonly IApplicationContractContext _context;
private readonly ICurrentUserService _currentUserService;
public CreateNewUserOrderCommandHandler(IApplicationContractContext context) public CreateNewUserOrderCommandHandler(IApplicationContractContext context, ICurrentUserService currentUserService)
{ {
_context = context; _context = context;
_currentUserService = currentUserService;
} }
public async Task<CreateNewUserOrderResponseDto> Handle(CreateNewUserOrderCommand request, CancellationToken cancellationToken) public async Task<CreateNewUserOrderResponseDto> Handle(CreateNewUserOrderCommand request, CancellationToken cancellationToken)
{ {
//TODO: Implement your business logic var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
return new CreateNewUserOrderResponseDto(); var getAllUserAddress = await _context.UserAddress.GetAllUserAddressByFilterAsync(request: new()
{
Filter = new()
{
IsDefault = true,
UserId = long.Parse(userId)
}
}, cancellationToken: cancellationToken);
if (getAllUserAddress?.Models?.Any() == false)
throw new Exception(message:"آدرس نامعتبر است!!");
var req = request.Adapt<CreateNewUserOrderRequest>();
req.UserId = long.Parse(userId);
req.UserAddressId = getAllUserAddress!.Models.First().Id;
var response = await _context.UserOrder.CreateNewUserOrderAsync(request: req, cancellationToken: cancellationToken);
return response.Adapt<CreateNewUserOrderResponseDto>();
} }
} }

View File

@@ -1,3 +1,5 @@
using CMSMicroservice.Protobuf.Protos.UserOrder;
namespace FrontOffice.BFF.Application.UserOrderCQ.Commands.DeleteUserOrder; namespace FrontOffice.BFF.Application.UserOrderCQ.Commands.DeleteUserOrder;
public class DeleteUserOrderCommandHandler : IRequestHandler<DeleteUserOrderCommand, Unit> public class DeleteUserOrderCommandHandler : IRequestHandler<DeleteUserOrderCommand, Unit>
{ {
@@ -10,7 +12,7 @@ public class DeleteUserOrderCommandHandler : IRequestHandler<DeleteUserOrderComm
public async Task<Unit> Handle(DeleteUserOrderCommand request, CancellationToken cancellationToken) public async Task<Unit> Handle(DeleteUserOrderCommand request, CancellationToken cancellationToken)
{ {
//TODO: Implement your business logic await _context.UserOrder.DeleteUserOrderAsync(request: request.Adapt<DeleteUserOrderRequest>(), cancellationToken: cancellationToken);
return new Unit(); return Unit.Value;
} }
} }

View File

@@ -1,3 +1,5 @@
using CMSMicroservice.Protobuf.Protos.UserOrder;
namespace FrontOffice.BFF.Application.UserOrderCQ.Commands.UpdateUserOrder; namespace FrontOffice.BFF.Application.UserOrderCQ.Commands.UpdateUserOrder;
public class UpdateUserOrderCommandHandler : IRequestHandler<UpdateUserOrderCommand, Unit> public class UpdateUserOrderCommandHandler : IRequestHandler<UpdateUserOrderCommand, Unit>
{ {
@@ -10,7 +12,7 @@ public class UpdateUserOrderCommandHandler : IRequestHandler<UpdateUserOrderComm
public async Task<Unit> Handle(UpdateUserOrderCommand request, CancellationToken cancellationToken) public async Task<Unit> Handle(UpdateUserOrderCommand request, CancellationToken cancellationToken)
{ {
//TODO: Implement your business logic await _context.UserOrder.UpdateUserOrderAsync(request: request.Adapt<UpdateUserOrderRequest>(), cancellationToken: cancellationToken);
return new Unit(); return Unit.Value;
} }
} }

View File

@@ -1,16 +1,25 @@
using CMSMicroservice.Protobuf.Protos.UserOrder;
namespace FrontOffice.BFF.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter; namespace FrontOffice.BFF.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter;
public class GetAllUserOrderByFilterQueryHandler : IRequestHandler<GetAllUserOrderByFilterQuery, GetAllUserOrderByFilterResponseDto> public class GetAllUserOrderByFilterQueryHandler : IRequestHandler<GetAllUserOrderByFilterQuery, GetAllUserOrderByFilterResponseDto>
{ {
private readonly IApplicationContractContext _context; private readonly IApplicationContractContext _context;
private readonly ICurrentUserService _currentUserService;
public GetAllUserOrderByFilterQueryHandler(IApplicationContractContext context) public GetAllUserOrderByFilterQueryHandler(IApplicationContractContext context, ICurrentUserService currentUserService)
{ {
_context = context; _context = context;
_currentUserService = currentUserService;
} }
public async Task<GetAllUserOrderByFilterResponseDto> Handle(GetAllUserOrderByFilterQuery request, CancellationToken cancellationToken) public async Task<GetAllUserOrderByFilterResponseDto> Handle(GetAllUserOrderByFilterQuery request, CancellationToken cancellationToken)
{ {
//TODO: Implement your business logic var userId = _currentUserService.UserId ?? throw new ForbiddenAccessException();
return new GetAllUserOrderByFilterResponseDto();
var req = request.Adapt<GetAllUserOrderByFilterRequest>();
req.Filter ??= new();
req.Filter.UserId = long.Parse(userId);
var response = await _context.UserOrder.GetAllUserOrderByFilterAsync(request: req, cancellationToken: cancellationToken);
return response.Adapt<GetAllUserOrderByFilterResponseDto>();
} }
} }

View File

@@ -1,3 +1,5 @@
using CMSMicroservice.Protobuf.Protos.UserOrder;
namespace FrontOffice.BFF.Application.UserOrderCQ.Queries.GetUserOrder; namespace FrontOffice.BFF.Application.UserOrderCQ.Queries.GetUserOrder;
public class GetUserOrderQueryHandler : IRequestHandler<GetUserOrderQuery, GetUserOrderResponseDto> public class GetUserOrderQueryHandler : IRequestHandler<GetUserOrderQuery, GetUserOrderResponseDto>
{ {
@@ -10,7 +12,7 @@ public class GetUserOrderQueryHandler : IRequestHandler<GetUserOrderQuery, GetUs
public async Task<GetUserOrderResponseDto> Handle(GetUserOrderQuery request, CancellationToken cancellationToken) public async Task<GetUserOrderResponseDto> Handle(GetUserOrderQuery request, CancellationToken cancellationToken)
{ {
//TODO: Implement your business logic var response = await _context.UserOrder.GetUserOrderAsync(request: request.Adapt<GetUserOrderRequest>(), cancellationToken: cancellationToken);
return new GetUserOrderResponseDto(); return response.Adapt<GetUserOrderResponseDto>();
} }
} }