public Proxy.INode CreateNode(TransactionFramework.ISoapTransactionLink transactionLink, Guid domainId, Guid rootMapId, Proxy.NodeType nodeType, string originalId) { FacadeNode facadeNode = new FacadeNode(); InProcess.InProcessNode node = new InProcess.InProcessNode(MapManager); node.OriginLink = transactionLink; node.Facade = facadeNode; node.Id = Guid.NewGuid(); node.DomainId = domainId; node.RootMapId = rootMapId; node.NodeType = nodeType; node.OriginalId = originalId; node.Status = Proxy.LoadState.Full; facadeNode.BaseNode = node; InProcessNodes.Add(transactionLink, facadeNode); return(facadeNode); }
public void UpgradeFacade(TransactionFramework.ISoapTransactionLink transactionLink, ServerObjects.Node serviceNode) { if (InProcessNodes.ContainsKey(transactionLink)) { FacadeNode facadeNode = InProcessNodes[transactionLink]; InProcess.InProcessNode inProcessNode = facadeNode.BaseNode as InProcess.InProcessNode; if (inProcessNode != null) { SoapNode soapNode = new SoapNode(inProcessNode, serviceNode); facadeNode.BaseNode = soapNode; InProcessNodes.Remove(transactionLink); ProxyNodes[facadeNode.Id] = facadeNode; /// TODO: Need to consider a better way to do this. I don't like that there is a need to call this afterwards and maybe it should be done when creating the SoapNode. I don't like it because it doesn't have to be done everytime a new SoapNode is created e.g. if the SoapNode is created from a Service.NO as opposed to a returned call like here. soapNode.ProcessDelayedActions(); } } }