public async Task RunAsync(DispatchContainer command)
        {
            Task <Shipment> getShipmentTask = _shipments
                                              .GetShipmentAsync(command.ShipmentIdentity);

            Task <Supplier> getSupplierTask = _suppliers
                                              .GetSupplierAsync(command.SupplierIdentity);

            await Task.WhenAll(getShipmentTask, getSupplierTask);

            Shipment shipment = await getShipmentTask;
            Supplier supplier = await getSupplierTask;

            Money      price      = new(command.Price);
            Assignment assignment = new(command.ContainerIdentity, supplier.Identity, price);

            Container dispatchedContainer = shipment.Dispatch(assignment);

            supplier.Load(dispatchedContainer);

            Task saveShipmentTask = _shipments.SaveAsync(shipment);
            Task saveSupplierTask = _suppliers.SaveAsync(supplier);

            await Task.WhenAll(saveShipmentTask, saveSupplierTask);
        }
        public async Task RunAsync(ExportShipment command)
        {
            Inventory inventory = await _inventories
                                  .GetInventoryAsync(command.InventoryIdentity);

            ExportShipmentService dmService = new(inventory);

            Shipment shipment = dmService.Export();

            Task saveInventoryTask = _inventories.SaveAsync(inventory);
            Task saveShipmentTask  = _shipments.SaveAsync(shipment);

            await Task.WhenAll(saveInventoryTask, saveShipmentTask);
        }