Beispiel #1
0
        public Proxy.INode FindNode(Guid nodeId)
        {
            Proxy.INode proxyNode;

            if (ProxyNodes.ContainsKey(nodeId))
            {
                proxyNode = ProxyNodes[nodeId];
            }
            else
            {
                SoapNode soapNode = new SoapNode(MapManager);
                soapNode.PreInitialiseNode(nodeId);

                ProxyNodes.Add(soapNode.Id, soapNode);
                proxyNode = soapNode;
            }

            return(proxyNode);
        }
Beispiel #2
0
        public Proxy.INode FindNode(ServerObjects.Node serviceNode)
        {
            Proxy.INode node;

            if (ProxyNodes.ContainsKey(serviceNode.NodeUid))
            {
                node = ProxyNodes[serviceNode.NodeUid];

                SoapNode soapNode = node as SoapNode;

                /// Not all the nodes that are stored in the NodeManager are SoapNodes, some are FacadeNodes. In this scenario we want to check if they have an inner SoapNode and use that instead.
                if (soapNode == null)
                {
                    if (node is FacadeNode)
                    {
                        FacadeNode facadeNode = node as FacadeNode;
                        soapNode = facadeNode.BaseNode as SoapNode;
                    }
                }

                if (soapNode != null)
                {
                    soapNode.UpdateNode(serviceNode);
                }
            }
            else
            {
                SoapNode soapNode = new SoapNode(MapManager);
                soapNode.UpdateNode(serviceNode);

                ProxyNodes.Add(soapNode.Id, soapNode);

                node = soapNode;
            }

            if (!ServiceNodes.ContainsKey(serviceNode.NodeUid))
            {
                ServiceNodes.Add(serviceNode.NodeUid, serviceNode);
            }

            return(node);
        }