public CswNbtRequestDataModel.CswRequestReturn fulfillRequest(CswNbtRequestDataModel.RequestFulfill Request) { //delegate has to be static because you can't create an instance yet: you don't have resources until the delegate is actually called CswNbtRequestDataModel.CswRequestReturn Ret = new CswNbtRequestDataModel.CswRequestReturn(); var InitDriverType = new CswWebSvcDriver <CswNbtRequestDataModel.CswRequestReturn, CswNbtRequestDataModel.RequestFulfill>( CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null), ReturnObj: Ret, WebSvcMethodPtr: CswNbtWebServiceRequesting.fulfillContainerMoveRequest, ParamObj: Request ); InitDriverType.run(); return(Ret); }
private static Int32 moveContainers(CswNbtResources NbtResources, CswNbtObjClassRequestItem RequestItem, CswNbtRequestDataModel.RequestFulfill Request) { Int32 Ret = 0; if (null != RequestItem) { foreach (string ContainerId in Request.ContainerIds) { CswNbtObjClassContainer ContainerNode = NbtResources.Nodes[ContainerId]; if (null != ContainerNode) { ContainerNode.Location.SelectedNodeId = RequestItem.Location.SelectedNodeId; ContainerNode.Location.RefreshNodeName(); ContainerNode.postChanges(ForceUpdate: false); Ret += 1; } } } return(Ret); }
/// <summary> /// WCF method to fulfill a Move Containers request /// </summary> public static void fulfillContainerMoveRequest(ICswResources CswResources, CswNbtRequestDataModel.CswRequestReturn Ret, CswNbtRequestDataModel.RequestFulfill Request) { CswNbtResources NbtResources = _validate(CswResources); CswNbtObjClassRequestItem RequestItem = NbtResources.Nodes[Request.RequestItemId]; if (null != RequestItem) { Int32 ContainersMoved = moveContainers(NbtResources, RequestItem, Request); Ret.Data.Succeeded = ContainersMoved > 0; if (Ret.Data.Succeeded) { if (CswTools.IsDouble(RequestItem.TotalMoved.Value)) { RequestItem.TotalMoved.Value += ContainersMoved; } else { RequestItem.TotalMoved.Value = ContainersMoved; } RequestItem.Status.Value = CswNbtObjClassRequestItem.Statuses.Moved; RequestItem.FulfillmentHistory.AddComment("Moved " + ContainersMoved + " containers to " + CswNbtNode.getNodeLink(RequestItem.Location.SelectedNodeId, RequestItem.Location.CachedFullPath)); RequestItem.postChanges(ForceUpdate: false); } } }