public static async Task CreateNewShipment(NewShipmentRequest request) { try { var package = PackageFactory.CreatePackage(request.PackageData); await PackageEntity.ValidateNew(package); var shipment = ShipmentFactory.CreateShipment(request); await ShipmentEntity.ValidateNew(shipment); await PackageUseCases.RegisterPackage.Execute(package); await ShipmentUseCases.RegisterShipment.Execute(shipment); await ShipmentUseCases.Set.PackageId(shipment.Id.ToString(), package.Id.ToString()); await ShipmentUseCases.UpdateShipmentWithBoundry(shipment); } catch (Exception e) { throw; } }
public ShipmentFactory(NewShipmentRequest request) { Request = request; }
public static Shipment CreateShipment(NewShipmentRequest request) { var factory = new ShipmentFactory(request); return(factory.GetShipment()); }