WorkflowDesigner.DesignSurfaceController.ProcessNewLink C# (CSharp) Method

ProcessNewLink() private method

private ProcessNewLink ( FunctionReference link ) : void
link WorkflowDesigner.Sdk.FunctionReference
return void
    private void ProcessNewLink(FunctionReference link)
    {
      if (link == null) return;

      var sourceHost = _surface.Children.OfType<ActivityHost>().FirstOrDefault(c => c.Id == link.SourceId);
      var targetHost = _surface.Children.OfType<ActivityHost>().FirstOrDefault(c => c.Id == link.TargetId);

      var sourceConnector = sourceHost.View.FindConnectorByName(link.SourcePin);
      var targetConnector = targetHost.View.FindConnectorByName(link.TargetPin);

      var conn = new LinkHost(_surface, link, sourceConnector, targetConnector, Orientation.Vertical);
      // TODO: outgoing links should be also kept by connector?
      sourceHost.OutgoingLinks.Add(conn);
      targetHost.OutgoingLinks.Add(conn);
      // TODO: temp hack
      sourceConnector.HasOutgoingConnections = true;
      targetConnector.HasIncomingConnections = true;

      _surface.Children.Add(conn);
    }