public IResult UpdateInterWarehouseOrder(IUpdateInterWarehouseOrderParameters parameters) { var parsedParameters = new UpdateInterWarehouseOrderConductorParameters <IUpdateInterWarehouseOrderParameters>(parameters); if (!parsedParameters.Result.Success) { return(parsedParameters.Result); } var updateResult = new UpdateInterWarehouseOrderConductor(_inventoryShipmentOrderUnitOfWork).Update(_timeStamper.CurrentTimeStamp, parsedParameters); if (!updateResult.Success) { return(updateResult); } _inventoryShipmentOrderUnitOfWork.Commit(); var key = updateResult.ResultingObject.ToInventoryShipmentOrderKey(); return(SyncParameters.Using(new SuccessResult(), new SyncInventoryShipmentOrderParameters { InventoryShipmentOrderKey = key, New = false })); }
internal IResult <InventoryShipmentOrder> Update <TParams>(DateTime timeStamp, UpdateInterWarehouseOrderConductorParameters <TParams> parameters) where TParams : IUpdateInterWarehouseOrderParameters { var inventoryShipmentOrder = UnitOfWork.InventoryShipmentOrderRepository.FindByKey(parameters.InventoryShipmentOrderKey, o => o.DestinationFacility.Locations, o => o.SourceFacility.Locations, o => o.ShipmentInformation, o => o.PickedInventory.Items.Select(i => i.CurrentLocation), o => o.PickedInventory.Items.Select(i => i.FromLocation), o => o.InventoryPickOrder.Items.Select(i => i.Customer)); if (inventoryShipmentOrder == null) { return(new InvalidResult <InventoryShipmentOrder>(null, string.Format(UserMessages.InventoryShipmentOrderNotFound, parameters.InventoryShipmentOrderKey))); } var updateResult = Update(inventoryShipmentOrder, timeStamp, parameters); if (!updateResult.Success) { return(updateResult); } return(SetPickedItemCodes(inventoryShipmentOrder, parameters.SetPickedInventoryItemCodes)); }