MyNodes.Nodes.NodesEngine.AddNode C# (CSharp) Method

AddNode() public method

public AddNode ( MyNodes.Nodes.Node node, bool writeInDb = true ) : bool
node MyNodes.Nodes.Node
writeInDb bool
return bool
        public bool AddNode(Node node, bool writeInDb = true)
        {
            if (node.PanelId != MAIN_PANEL_ID && GetPanelNode(node.PanelId) == null)
            {
                LogEngineError($"Can`t create node [{node.GetType().Name}]. Panel [{node.PanelId}] does not exist.");
                return false;
            }

            bool checkNodeCanBeAdded = node.OnAddToEngine(this);
            if (!checkNodeCanBeAdded)
            {
                LogEngineError($"Can`t create node [{node.GetType().Name}]. Aborted by node.");
                return false;
            }

            lock (nodesLock)
                nodes.Add(node);

            if (writeInDb)
                nodesDb?.AddNode(node);

            LogEngineInfo($"New node [{node.GetType().Name}]");

            OnNewNode?.Invoke(node);

            return true;
        }

Usage Example

コード例 #1
0
        private void CreateOrUpdateNode(Gateways.MySensors.Node node)
        {
            MySensorsNode oldNode = GetMySensorsNode(node.Id);

            if (oldNode == null)
            {
                MySensorsNode newMySensorsNode = new MySensorsNode(node);
                engine.AddNode(newMySensorsNode);
            }
            else
            {
                oldNode.Settings["Name"].Value = node.GetSimpleName2();
                engine.UpdateNodeInEditor(oldNode);
                engine.UpdateNodeInDb(oldNode);
            }
        }