Cleanup in handlers
This commit is contained in:
@@ -3,7 +3,6 @@ using Imprink.Application.Dtos;
|
||||
using Imprink.Application.Services;
|
||||
using Imprink.Domain.Entities;
|
||||
using MediatR;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Imprink.Application.Commands.Addresses;
|
||||
|
||||
@@ -31,21 +30,23 @@ public class CreateAddressCommand : IRequest<AddressDto>
|
||||
public class CreateAddressHandler(
|
||||
IUnitOfWork uw,
|
||||
IMapper mapper,
|
||||
ICurrentUserService userService,
|
||||
ILogger<CreateAddressHandler> logger)
|
||||
ICurrentUserService userService)
|
||||
: IRequestHandler<CreateAddressCommand, AddressDto>
|
||||
{
|
||||
public async Task<AddressDto> Handle(CreateAddressCommand request, CancellationToken cancellationToken)
|
||||
public async Task<AddressDto> Handle(
|
||||
CreateAddressCommand request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
return await uw.TransactAsync(async () =>
|
||||
{
|
||||
var address = mapper.Map<Address>(request);
|
||||
|
||||
address.UserId = userService.GetCurrentUserId()!;
|
||||
address.UserId = userService.GetCurrentUserId();
|
||||
|
||||
if (address.IsDefault)
|
||||
{
|
||||
var currentDefault = await uw.AddressRepository.GetDefaultByUserIdAsync(address.UserId, cancellationToken);
|
||||
var currentDefault = await uw.AddressRepository
|
||||
.GetDefaultByUserIdAsync(address.UserId, cancellationToken);
|
||||
|
||||
if (currentDefault != null)
|
||||
{
|
||||
currentDefault.IsDefault = false;
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
using AutoMapper;
|
||||
using Imprink.Application.Dtos;
|
||||
using Imprink.Domain.Entities;
|
||||
using MediatR;
|
||||
|
||||
namespace Imprink.Application.Commands.Addresses;
|
||||
|
||||
public class GetAddressByIdQuery : IRequest<AddressDto?>
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public string? UserId { get; set; }
|
||||
}
|
||||
|
||||
public class GetAddressByIdHandler(IUnitOfWork uw, IMapper mapper) : IRequestHandler<GetAddressByIdQuery, AddressDto?>
|
||||
{
|
||||
public async Task<AddressDto?> Handle(GetAddressByIdQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
Address? address;
|
||||
|
||||
if (!string.IsNullOrEmpty(request.UserId))
|
||||
{
|
||||
address = await uw.AddressRepository.GetByIdAndUserIdAsync(request.Id, request.UserId, cancellationToken);
|
||||
}
|
||||
else
|
||||
{
|
||||
address = await uw.AddressRepository.GetByIdAsync(request.Id, cancellationToken);
|
||||
}
|
||||
|
||||
return address != null ? mapper.Map<AddressDto>(address) : null;
|
||||
}
|
||||
}
|
||||
@@ -8,23 +8,30 @@ namespace Imprink.Application.Commands.Addresses;
|
||||
public class GetAddressesByUserIdQuery : IRequest<IEnumerable<AddressDto>>
|
||||
{
|
||||
public string UserId { get; set; } = null!;
|
||||
public bool ActiveOnly { get; set; } = false;
|
||||
public bool ActiveOnly { get; set; }
|
||||
public string? AddressType { get; set; }
|
||||
}
|
||||
|
||||
public class GetAddressesByUserIdHandler(IUnitOfWork uw, IMapper mapper) : IRequestHandler<GetAddressesByUserIdQuery, IEnumerable<AddressDto>>
|
||||
public class GetAddressesByUserIdHandler(
|
||||
IUnitOfWork uw,
|
||||
IMapper mapper)
|
||||
: IRequestHandler<GetAddressesByUserIdQuery, IEnumerable<AddressDto>>
|
||||
{
|
||||
public async Task<IEnumerable<AddressDto>> Handle(GetAddressesByUserIdQuery request, CancellationToken cancellationToken)
|
||||
public async Task<IEnumerable<AddressDto>> Handle(
|
||||
GetAddressesByUserIdQuery request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
IEnumerable<Address> addresses;
|
||||
|
||||
if (!string.IsNullOrEmpty(request.AddressType))
|
||||
{
|
||||
addresses = await uw.AddressRepository.GetByUserIdAndTypeAsync(request.UserId, request.AddressType, cancellationToken);
|
||||
addresses = await uw.AddressRepository
|
||||
.GetByUserIdAndTypeAsync(request.UserId, request.AddressType, cancellationToken);
|
||||
}
|
||||
else if (request.ActiveOnly)
|
||||
{
|
||||
addresses = await uw.AddressRepository.GetActiveByUserIdAsync(request.UserId, cancellationToken);
|
||||
addresses = await uw.AddressRepository
|
||||
.GetActiveByUserIdAsync(request.UserId, cancellationToken);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
using AutoMapper;
|
||||
using Imprink.Application.Dtos;
|
||||
using Imprink.Application.Services;
|
||||
using Imprink.Domain.Entities;
|
||||
using MediatR;
|
||||
|
||||
namespace Imprink.Application.Commands.Addresses;
|
||||
|
||||
public class GetMyAddressesQuery : IRequest<IEnumerable<AddressDto?>>;
|
||||
|
||||
public class GetMyAddressesHandler(
|
||||
IUnitOfWork uw,
|
||||
IMapper mapper,
|
||||
ICurrentUserService userService)
|
||||
: IRequestHandler<GetMyAddressesQuery, IEnumerable<AddressDto?>>
|
||||
{
|
||||
public async Task<IEnumerable<AddressDto?>> Handle(
|
||||
GetMyAddressesQuery request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
IEnumerable<Address?> addresses = await uw.AddressRepository
|
||||
.GetByUserIdAsync(userService.GetCurrentUserId(), cancellationToken);
|
||||
|
||||
return mapper.Map<IEnumerable<AddressDto>>(addresses);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user