public void UpdateNode(Node node)
        {
            if (writeInterval != 0)
            {
                if (!updatedNodes.Contains(node))
                    updatedNodes.Add(node);
                return;
            }

            using (var db = new SqlConnection(connectionString))
            {
                db.Open();
                var sqlQuery =
                    "UPDATE Nodes SET " +
                    "JsonData = @JsonData " +
                    "WHERE Id = @Id";

                SerializedNode serializedNode = new SerializedNode(node);
                db.Execute(sqlQuery, serializedNode);
            }
        }
        public void AddNode(Node node)
        {
            using (var db = new SqlConnection(connectionString))
            {
                db.Open();

                var sqlQuery = "INSERT INTO Nodes (Id, JsonData) "
                               + "VALUES(@Id, @JsonData)";

                SerializedNode serializedNode = new SerializedNode(node);
                db.Execute(sqlQuery, serializedNode);
            }
        }
        private void WriteUpdatedNodes()
        {

            Node[] nodes = new Node[updatedNodes.Count];
            updatedNodes.CopyTo(nodes);
            updatedNodes.Clear();

            List<SerializedNode> serializedNodes = new List<SerializedNode>();
            foreach (var node in nodes)
            {
                SerializedNode oldNode = db.SerializedNodes.FirstOrDefault(x => x.Id == node.Id);
                if (oldNode == null)
                    continue;

                SerializedNode newNode = new SerializedNode(node);
                oldNode.JsonData = newNode.JsonData;
                serializedNodes.Add(oldNode);
            }


            db.SerializedNodes.UpdateRange(serializedNodes);
            db.SaveChanges();
        }
        public void UpdateNode(Node node)
        {
            if (writeInterval != 0)
            {
                if (!updatedNodes.Contains(node))
                    updatedNodes.Add(node);
                return;
            }


            SerializedNode oldNode = db.SerializedNodes.FirstOrDefault(x => x.Id == node.Id);
            if (oldNode == null)
                return;

            SerializedNode newNode = new SerializedNode(node);
            oldNode.JsonData = newNode.JsonData;

            db.SerializedNodes.Update(oldNode);
            db.SaveChanges();
        }
        public void AddNodes(List<Node> nodes)
        {
            foreach (var node in nodes)
            {
                SerializedNode serializedNode = new SerializedNode(node);
                db.SerializedNodes.Add(serializedNode);
            }

            db.SaveChanges();
        }
        public void AddNode(Node node)
        {

            SerializedNode serializedNode = new SerializedNode(node);
            db.SerializedNodes.Add(serializedNode);

            db.SaveChanges();
        }