public async Task <DeleteActiveDeliveryCommandResult> Handle(DeleteActiveDeliveryCommand request, CancellationToken cancellationToken)
        {
            var activeDelivery = await _activeDeliveryRepository.FindByIdAsync(request.DeliveryId);

            if (activeDelivery is null)
            {
                return(new DeleteActiveDeliveryCommandResult(false,
                                                             new[] { $"Could not find Delivery with id {request.DeliveryId}" }));
            }


            if (activeDelivery.IsAnyDeliveryItemsScanned)
            {
                return(new DeleteActiveDeliveryCommandResult(false, new[] { "At least 1 delivery item is scanned" }));
            }

            var cancelledDelivery = new CancelledDelivery(activeDelivery, request.CancellationReason);

            _activeDeliveryRepository.Remove(activeDelivery);
            _cancelledDeliveryRepository.Add(cancelledDelivery);
            if (await _activeDeliveryRepository.UnitOfWork.SaveChangesAsync(cancellationToken) < 1)
            {
                return(new DeleteActiveDeliveryCommandResult(false, new[] { "Something went wrong during saving Db" }));
            }


            return(new DeleteActiveDeliveryCommandResult(true));
        }
Ejemplo n.º 2
0
 public void Remove(CancelledDelivery cancelledDelivery)
 {
     _context.CancelledDeliveries.Remove(cancelledDelivery);
 }
Ejemplo n.º 3
0
 public CancelledDelivery Add(CancelledDelivery cancelledDelivery)
 {
     return(_context.CancelledDeliveries.Add(cancelledDelivery).Entity);
 }