예제 #1
0
        }//_dispose()

        private void _move(string operation, string barcode, JObject update, CswNbtObjClassBatchOp BatchNode)
        {
            try
            {
                string newLocationBarcode = update["location"].ToString();

                CswNbtNode newLocationNode = _getNodeFromBarcode(newLocationBarcode, CswEnumNbtObjectClass.LocationClass, CswNbtObjClassLocation.PropertyName.Barcode);
                if (null != newLocationNode)
                {
                    CswPrimaryKey newLocationNodeId = newLocationNode.NodeId;

                    CswNbtObjClassContainer containerNode = _getNodeFromBarcode(barcode, CswEnumNbtObjectClass.ContainerClass, CswNbtObjClassContainer.PropertyName.Barcode);
                    if (null != containerNode)
                    {
                        containerNode.MoveContainer(newLocationNodeId);
                        containerNode.postChanges(false);
                    }
                    else
                    {
                        string msg = _generateErrorMessage(operation, barcode, new Dictionary <string, string> {
                            { "New Location", newLocationBarcode }
                        }, "A container with barcode " + barcode + " does not exist.");
                        _storeError(BatchNode, msg);
                    }
                }
                else
                {
                    string msg = _generateErrorMessage(operation, barcode, new Dictionary <string, string> {
                        { "New Location", newLocationBarcode }
                    }, "The Location barcode, " + newLocationBarcode + ", does not exist");
                    _storeError(BatchNode, msg);
                }
            }
            catch (Exception e)
            {
                string msg = "The move operation failed for the container barcode " + barcode + "with exception: " + e;
                _storeError(BatchNode, msg);
            }
        }//_move()