Api/Netina.Repository/Handlers/Warehouses/CreateShippingCommandHandle...

24 lines
1.0 KiB
C#

using Netina.Domain.CommandQueries.Commands;
using Netina.Domain.Dtos.SmallDtos;
using Netina.Domain.Entities.Warehouses;
using Netina.Repository.Repositories.Base.Contracts;
namespace Netina.Repository.Handlers.Warehouses;
public class CreateShippingCommandHandler : IRequestHandler<CreateShippingCommand , ShippingSDto>
{
private readonly IRepositoryWrapper _repositoryWrapper;
public CreateShippingCommandHandler(IRepositoryWrapper repositoryWrapper)
{
_repositoryWrapper = repositoryWrapper;
}
public async Task<ShippingSDto> Handle(CreateShippingCommand request, CancellationToken cancellationToken)
{
var ent = Shipping.Create(request.Name, request.WarehouseName, request.IsExpressShipping, request.IsShipBySeller,
request.IsOriginalWarehouse,request.DeliveryCost,request.WorkingDays);
_repositoryWrapper.SetRepository<Shipping>().Add(ent);
await _repositoryWrapper.SaveChangesAsync(cancellationToken);
return ent.AdaptToSDto();
}
}