DependencyCollection ISoapTransactionLinkExecutor.UpdateDependencies()
        {
            ISoapTransactionLinkExecutor executor = (ISoapTransactionLinkExecutor)this;

            foreach (KeyValuePair <ConnectionType, INode> nodePairs in ProxyNodeConnections)
            {
                IFacade iFacadeNode = nodePairs.Value as IFacade;

                if (iFacadeNode != null)
                {
                    if (!iFacadeNode.IsConcrete)
                    {
                        FacadeNode facadeNode = iFacadeNode as FacadeNode;
                        InProcess.InProcessNode inProcessNode = facadeNode.BaseNode as InProcess.InProcessNode;

                        if (inProcessNode != null && inProcessNode.OriginLink != null && inProcessNode.OriginLink.OriginChain != OriginChain)
                        {
                            executor.Dependencies.AddFacade(iFacadeNode);
                        }
                    }
                }
            }

            return(executor.Dependencies);
        }
示例#2
0
        public SoapNode(InProcess.InProcessNode inProcessNode, ServerObjects.Node serviceNode)
        {
            ServiceNode   = serviceNode;
            InProcessNode = inProcessNode;

            Id         = serviceNode.NodeUid;
            DomainId   = inProcessNode.DomainId;
            RootMapId  = inProcessNode.RootMapId;
            OriginalId = inProcessNode.OriginalId;
            NodeType   = inProcessNode.NodeType;
            Status     = Proxy.LoadState.Full;

            MapManager    = inProcessNode.MapManager;
            Relationships = inProcessNode.Relationships;
            Metadata      = inProcessNode.Metadata;
        }
示例#3
0
        public INode CreateNode(TransactionFramework.ISoapTransactionLink transactionLink, Guid domainId, Guid rootMapId, 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 = LoadState.Full;

            facadeNode.BaseNode = node;

            InProcessNodes.Add(transactionLink, facadeNode);

            return facadeNode;
        }
示例#4
0
        public INode CreateNode(TransactionFramework.ISoapTransactionLink transactionLink, Guid domainId, Guid rootMapId, 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     = LoadState.Full;

            facadeNode.BaseNode = node;

            InProcessNodes.Add(transactionLink, facadeNode);

            return(facadeNode);
        }
示例#5
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();
                }
            }
        }
示例#6
0
        DependencyCollection ISoapTransactionLinkExecutor.UpdateDependencies()
        {
            ISoapTransactionLinkExecutor executor = (ISoapTransactionLinkExecutor)this;

            IFacade iFacadeNode = Node as IFacade;

            if (iFacadeNode != null)
            {
                if (!iFacadeNode.IsConcrete)
                {
                    FacadeNode facadeNode = iFacadeNode as FacadeNode;
                    InProcess.InProcessNode inProcessNode = facadeNode.BaseNode as InProcess.InProcessNode;

                    if (inProcessNode != null && inProcessNode.OriginLink != null && inProcessNode.OriginLink.OriginChain != OriginChain)
                    {
                        executor.Dependencies.AddFacade(iFacadeNode);
                    }
                }
            }

            return(executor.Dependencies);
        }
示例#7
0
 public DelayedNodeActions(InProcess.InProcessNode nodeContext)
 {
     NodeContext = nodeContext;
 }