Пример #1
0
        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);
        }
Пример #2
0
        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();
                }
            }
        }