/// <summary> /// Abstract override to be called on onButtonClick /// </summary> public override bool onPropertySetButtonClick(NbtButtonData ButtonData) { if (null != ButtonData.NodeTypeProp) { //Remember: Save is an OCP too switch (ButtonData.NodeTypeProp.getObjectClassPropName()) { case PropertyName.Fulfill: CswNbtObjClassContainer NodeAsContainer = null; switch (ButtonData.SelectedText) { case FulfillMenu.Dispense: NodeAsContainer = _CswNbtResources.Nodes.GetNode(Container.RelatedNodeId); if (null != NodeAsContainer && null != NodeAsContainer.Dispense.NodeTypeProp) { NbtButtonData DispenseData = new NbtButtonData(NodeAsContainer.Dispense.NodeTypeProp); NodeAsContainer.triggerOnButtonClick(DispenseData); ButtonData.clone(DispenseData); } else { ButtonData.Data["containernodetypeid"] = Container.TargetId; ButtonData.Data["containerobjectclassid"] = Container.TargetId; JObject InitialQuantity = null; if (null != Size.RelatedNodeId && Int32.MinValue != Size.RelatedNodeId.PrimaryKey) { CswNbtObjClassSize NodeAsSize = _CswNbtResources.Nodes[Size.RelatedNodeId]; if (null != NodeAsSize) { InitialQuantity = new JObject(); NodeAsSize.InitialQuantity.ToJSON(InitialQuantity); ButtonData.Data["initialQuantity"] = InitialQuantity; } } else if (false == Quantity.Empty) { InitialQuantity = new JObject(); Quantity.ToJSON(InitialQuantity); } if (null != InitialQuantity) { ButtonData.Data["initialQuantity"] = InitialQuantity; } ButtonData.Action = CswEnumNbtButtonAction.dispense; } break; } //switch( ButtonData.SelectedText ) _getNextStatus(ButtonData.SelectedText); ButtonData.Data["requestitem"] = ButtonData.Data["requestitem"] ?? new JObject(); ButtonData.Data["requestitem"]["requestitemid"] = NodeId.ToString(); ButtonData.Data["requestitem"]["materialid"] = (Material.RelatedNodeId ?? new CswPrimaryKey()).ToString(); ButtonData.Data["requestitem"]["containerid"] = (Container.RelatedNodeId ?? new CswPrimaryKey()).ToString(); ButtonData.Data["requestitem"]["locationid"] = (Location.SelectedNodeId ?? new CswPrimaryKey()).ToString(); break; //case PropertyName.Fulfill: } } return(true); }