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); }