Example #1
0
        public void Do()
        {
            var metaInput    = InputParent.GetMetaInput(InputToPublish);
            var newMetaInput = metaInput.Clone();

            newMetaInput.Name = _newName;

            var addInputCommand = new AddInputCommand(CompositionOperator, newMetaInput);

            addInputCommand.Do();

            var opPartToUpdate    = CompositionOperator.Inputs[CompositionOperator.Inputs.Count - 1];
            var func              = InputToPublish.Func.Clone() as Utilities.ValueFunction;
            var updateFuncCommand = new UpdateOperatorPartValueFunctionCommand(opPartToUpdate, func.Value);

            updateFuncCommand.Do();

            var connection = new MetaConnection(Guid.Empty, newMetaInput.ID, InputToPublish.Parent.ID, metaInput.ID);
            var insertConnectionCommand = new InsertConnectionCommand(CompositionOperator.Definition, connection, 0);

            insertConnectionCommand.Do();

            _commands.Clear();
            _commands.AddRange(new ICommand[] { addInputCommand, updateFuncCommand, insertConnectionCommand });
        }