Пример #1
0
        private void ReplaceOperator(MetaOperator operatorToAdd, Guid idToAdd, Guid idToRemove)
        {
            var position = ParentOperator.Operators[idToRemove].Item2.Position;

            ParentOperator.RemoveOperator(idToRemove);
            ParentOperator.AddOperator(operatorToAdd, idToAdd);
            ParentOperator.Operators[idToAdd].Item2.Position = position;
        }
Пример #2
0
 private void InsertNewConnections(Guid internalOpID, IList <Guid> inputs, IList <Guid> outputs)
 {
     foreach (var connection in _outgoingConnections)
     {
         var outputIndex    = OldOperator.Outputs.IndexOf(OldOperator.Outputs.Find(output => output.ID == connection.SourceOpPartID));
         var sourceOpPartID = outputIndex >= 0 ? outputs[outputIndex] : Guid.Empty;
         if (sourceOpPartID != Guid.Empty)
         {
             ParentOperator.InsertConnectionAt(new MetaConnection(internalOpID, sourceOpPartID, connection.TargetOpID, connection.TargetOpPartID));
         }
     }
     foreach (var connection in _ingoingConnections)
     {
         var inputIndex     = OldOperator.Inputs.IndexOf(OldOperator.Inputs.Find(input => input.ID == connection.TargetOpPartID));
         var targetOpPartID = inputIndex >= 0 ? inputs[inputIndex] : Guid.Empty;
         if (targetOpPartID != Guid.Empty)
         {
             ParentOperator.InsertConnectionAt(new MetaConnection(connection.SourceOpID, connection.SourceOpPartID, internalOpID, targetOpPartID));
         }
     }
 }