コード例 #1
0
        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
            }));
        }
コード例 #2
0
        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));
        }