public async Task<MovementDetails> Create(Movement movement, ShipmentQuantity shipmentQuantity, IEnumerable<PackagingInfo> packages)
{
var remaining = await movementsQuantity.Remaining(movement.NotificationId);
if (shipmentQuantity > remaining)
{
throw new InvalidOperationException(string.Format(
"Cannot create new movement details for movement {0} as the quantity exceeds what is remaining", movement.Id));
}
return new MovementDetails(movement.Id, shipmentQuantity, packages);
}
}