Add sender dependency to UpdateUserCartsCommandHandler and handle empty cart case
This commit is contained in:
@@ -1,16 +1,23 @@
|
|||||||
|
using CMSMicroservice.Application.UserCartsCQ.Commands.DeleteUserCarts;
|
||||||
using CMSMicroservice.Domain.Events;
|
using CMSMicroservice.Domain.Events;
|
||||||
namespace CMSMicroservice.Application.UserCartsCQ.Commands.UpdateUserCarts;
|
namespace CMSMicroservice.Application.UserCartsCQ.Commands.UpdateUserCarts;
|
||||||
public class UpdateUserCartsCommandHandler : IRequestHandler<UpdateUserCartsCommand, Unit>
|
public class UpdateUserCartsCommandHandler : IRequestHandler<UpdateUserCartsCommand, Unit>
|
||||||
{
|
{
|
||||||
private readonly IApplicationDbContext _context;
|
private readonly IApplicationDbContext _context;
|
||||||
|
private readonly ISender _sender;
|
||||||
|
|
||||||
public UpdateUserCartsCommandHandler(IApplicationDbContext context)
|
public UpdateUserCartsCommandHandler(IApplicationDbContext context, ISender sender)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
|
_sender = sender;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Unit> Handle(UpdateUserCartsCommand request, CancellationToken cancellationToken)
|
public async Task<Unit> Handle(UpdateUserCartsCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
|
if (request.Count<=0)
|
||||||
|
{
|
||||||
|
await _sender.Send(request.Adapt<DeleteUserCartsCommand>(), cancellationToken);
|
||||||
|
}
|
||||||
var entity = await _context.UserCartss
|
var entity = await _context.UserCartss
|
||||||
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(UserCarts), request.Id);
|
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(UserCarts), request.Id);
|
||||||
request.Adapt(entity);
|
request.Adapt(entity);
|
||||||
|
|||||||
Reference in New Issue
Block a user