public void AddLink(Link link) { using (var db = new SqlConnection(connectionString)) { db.Open(); var sqlQuery = "INSERT INTO Links (Id, InputId, OutputId, PanelId) " + "VALUES(@Id, @InputId, @OutputId, @PanelId)"; db.Execute(sqlQuery, link); } }
public void RemoveLink(Link link, bool writeInDb) { Output output = GetOutput(link.OutputId); Input input = GetInput(link.InputId); if (output == null || input == null) { LogEngineError($"Can`t remove link from [{link.OutputId}] to [{link.InputId}]. Does not exist."); return; } RemoveLink(output, input, writeInDb); }
private static void OnRemoveLink(Link link) { NodeEditorAPIController nodeEditorApi = new NodeEditorAPIController(); LiteGraph.Link liteGraphLink = nodeEditorApi.ConvertLinkToLiteGraphLink(link); hub.Clients.Group(link.PanelId).OnRemoveLink(liteGraphLink); }
public Link AddLink(Output output, Input input, bool writeInDb = true) { Node inputNode = GetInputOwner(input); Node outputNode = GetOutputOwner(output); if (inputNode == null || outputNode == null) { LogEngineError($"Can`t create link from [{output.Id}] to [{input.Id}]. Does not exist."); return null; } if (inputNode == outputNode) { LogEngineError($"Can`t create link from [{output.Id}] to [{input.Id}]. Input and output belong to the same node."); return null; } if (inputNode.PanelId != outputNode.PanelId) { LogEngineError($"Can`t create link from {outputNode.GetType().Name} to {inputNode.GetType().Name}. Nodes are on different panels."); return null; } Link link = new Link(output.Id, input.Id, inputNode.PanelId); //prevent two links to one input Link oldLink = GetLinkForInput(input); if (oldLink != null) RemoveLink(oldLink, true); LogEngineInfo($"New link from [{outputNode.GetType().Name}] to [{inputNode.GetType().Name}]"); lock (linksLock) links.Add(link); if (writeInDb) nodesDb?.AddLink(link); OnNewLink?.Invoke(link); if (started) input.Value = output.Value; return link; }
public void AddLink(Link link) { //if (!db.Links.Any(x => x.Id == link.Id)) db.Links.Add(link); db.SaveChanges(); }