internal void Initialize(NodeSelectionManager selectionManger, NodeConfiguration source, Func<NodeConfiguration> targetGetter, Action<NodeConfiguration> targetSetter)
 {
     this.selectionManger = selectionManger;
     this.source = source;
     this.targetGetter = targetGetter;
     this.targetSetter = targetSetter;
 }
Esempio n. 2
0
        public void SelectNode(NodeConfiguration selectedNode)
        {
            NodeConfiguration originalSelectedNode = SelectedNode;

            NodeSelectingEventArgs nodeSelectingEventArgs = new NodeSelectingEventArgs(originalSelectedNode, selectedNode);
            NodeSelecting(this, nodeSelectingEventArgs);
            if (nodeSelectingEventArgs.IsCancelled) {
                return;
            }

            if (selectedNode is ActionNodeConfiguration) {
                propertiesContainer.Child = new NodePropertiesEditors.ActionNodePropertiesEditor((ActionNodeConfiguration)selectedNode, this);
            } else if (selectedNode is CbrNodeConfiguration) {
                propertiesContainer.Child = new NodePropertiesEditors.CbrNodePropertiesEditor((CbrNodeConfiguration)selectedNode, this);
            } else if (selectedNode is TerminatorNodeConfiguration) {
                propertiesContainer.Child = new NodePropertiesEditors.TerminatorNodePropertiesEditor((TerminatorNodeConfiguration)selectedNode, this);
            } else if (selectedNode is EntryNodeConfiguration) {
                propertiesContainer.Child = new NodePropertiesEditors.EntryNodePropertiesEditor((EntryNodeConfiguration)selectedNode, this);
            } else {
                propertiesContainer.Child = null;
            }

            SelectedNode = selectedNode;
            NodeSelectedEventArgs nodeSelectedEventArgs = new NodeSelectedEventArgs(originalSelectedNode, selectedNode);
            NodeSelected(this, nodeSelectedEventArgs);
        }
Esempio n. 3
0
 internal void RenameNode(NodeConfiguration node, TextBox uiName)
 {
     string[] existingNames = MessageflowGraphPresenter.Messageflow.Nodes.Where(n => n != node).Select(n => n.Name).ToArray();
     if (existingNames.Contains(uiName.Text)) {
         MessageBox.Show("Given name already exists. Please make sure that the node has a unique name.", "Node renaming", MessageBoxButton.OK, MessageBoxImage.Error);
         uiName.Text = node.Name;
         return;
     }
     node.Name = uiName.Text;
 }
Esempio n. 4
0
        /// <summary>
        /// Initializes an action node.
        /// </summary>
        /// <param name="configuration">ActionNodeConfiguration is expected
        /// </param>
        public override void InitializeCore(NodeConfiguration configuration)
        {
            Config = (ActionNodeConfiguration)configuration;

            foreach (ActionConfiguration actionConfig in Config.Actions)
            {
                ActionType actionType = ProcessorService.Configuration.GetActionType(actionConfig.ActionTypeName);
                IActionPlugin action = TypeUtils.CreateTypeInstance<IActionPlugin>(actionType.ClrTypeAndAssembly);

                ObjectConfigurator.Configurator.LoadConfiguration(action, actionConfig.Configuration);

                action.Initialize(ProcessorService);
                actions.Add(action);
            }
        }
Esempio n. 5
0
 public static CbrNodeConfiguration CreateCbr(string name, string testedMessage, NodeConfiguration defaultTarget, params CbrCase[] cases)
 {
     var testedMessageSelection = new TokenSelection(
         string.Format(@"/token/messages/message[@name='{0}']/*[1]", testedMessage));
     var result = new CbrNodeConfiguration() {
         Name = name,
         TestedSelection = testedMessageSelection,
         DefaultTarget = defaultTarget
     };
     foreach (CbrCase cbrCase in cases) {
         result.Branches.Add(
             new XrmUri(string.Format(@"//item[@name='{0}']", cbrCase.Schematron)),
             cbrCase.TargetNode);
     }
     return result;
 }
Esempio n. 6
0
        public static ActionNodeConfiguration CreateSender(string name, string inputMessage, string outputEndpoint, NodeConfiguration nextNode)
        {
            var configuration = XDocument.Parse(
            string.Format(
            @"<objectConfig>
              <item name='targetEndpointName'>{0}</item>
              <item name='messageSelection'>token/messages/message[@name='{1}']/*[1]</item>
              <item name='targetGatewayName'>gateway1</item>
            </objectConfig>", outputEndpoint, inputMessage));

            return new ActionNodeConfiguration() {
                Name = name, NextNode = nextNode, Actions = {
                    new ActionConfiguration("Message sender") {
                        Configuration = new SerializableXDocument(configuration)
                    }
                }
            };
        }
Esempio n. 7
0
        public static ActionNodeConfiguration CreateTransformation(string name, string xslt, string inputMessage, string outputMessage, NodeConfiguration nextNode)
        {
            var configuration = XDocument.Parse(
                string.Format(
            @"<objectConfig>
              <item name='xlstUri'>//item[@name='{0}']</item>
              <item name='inputMessageSelection'>token/messages/message[@name='{1}']/*[1]</item>
              <item name='outputMessageName'>{2}</item>
              <item name='isXsltTrusted'>false</item>
            </objectConfig>", xslt, inputMessage, outputMessage));

            return new ActionNodeConfiguration() {
                Name = name, NextNode = nextNode, Actions = {
                    new ActionConfiguration("Xslt transformer") {
                        Configuration = new SerializableXDocument(configuration)
                    }
                }
            };
        }
        public void RemoveNode(NodeConfiguration nodeToRemove)
        {
            Nodes.Remove(nodeToRemove);

            foreach (NodeConfiguration node in Nodes) {
                if (node is ActionNodeConfiguration) {
                    var actionNode = (ActionNodeConfiguration)node;
                    if (actionNode.NextNode == nodeToRemove) {
                        actionNode.NextNode = null;
                    }
                } else if (node is CbrNodeConfiguration) {
                    var cbrNode = (CbrNodeConfiguration)node;
                    if (cbrNode.DefaultTarget == nodeToRemove) {
                        cbrNode.DefaultTarget = null;
                    }
                    foreach (var key in cbrNode.Branches.Keys.ToArray()) {
                        if (cbrNode.Branches[key] == nodeToRemove) {
                            cbrNode.Branches.Remove(key);
                        }
                    }
                }
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Initializes a CBR node.
        /// </summary>
        /// <param name="configuration">CbrNodeConfiguration is expected
        /// </param>
        public override void InitializeCore(NodeConfiguration configuration)
        {
            Config = (CbrNodeConfiguration)configuration;

            evaluator = new CbrEvaluator(Config, ProcessorService.GetXmlResource);
        }
Esempio n. 10
0
 public CbrCase(string schematron, NodeConfiguration targetNode)
 {
     Schematron = schematron;
     TargetNode = targetNode;
 }
Esempio n. 11
0
 public NodeSelectedEventArgs(NodeConfiguration originalSelectedNode, NodeConfiguration newSelectedNode)
 {
     OriginalSelectedNode = originalSelectedNode;
     NewSelectedNode = newSelectedNode;
 }
Esempio n. 12
0
 /// <summary>
 /// Initializes an action node.
 /// </summary>
 /// <param name="configuration">EntryNodeConfiguration is expected
 /// </param>
 public override void InitializeCore(NodeConfiguration configuration)
 {
     Config = (EntryNodeConfiguration)configuration;
 }
Esempio n. 13
0
 /// <summary>
 /// Initializes a concrete implementation of the node.
 /// </summary>
 /// <remarks>Indened to be overridden in the derived class.</remarks>
 /// <param name="configuration"></param>
 public abstract void InitializeCore(NodeConfiguration configuration);
Esempio n. 14
0
 /// <summary>
 /// Initializes the node.
 /// </summary>
 /// <remarks>
 /// This method has to be called before the node can be used!
 /// </remarks>
 /// <param name="configuration"></param>
 /// <param name="processor"></param>
 public void Initialize(NodeConfiguration configuration, ProcessorService processor)
 {
     Name = configuration.Name;
     ProcessorService = new ProcessorServiceForNode(processor, this);
     InitializeCore(configuration);
 }
Esempio n. 15
0
 public static EntryNodeConfiguration CreateEntry(string name, NodeConfiguration nextNode)
 {
     return new EntryNodeConfiguration() { Name = name, NextNode = nextNode };
 }
Esempio n. 16
0
 /// <summary>
 /// Initializes a terminator node.
 /// </summary>
 /// <param name="configuration">TerminatorNodeConfiguration is expected
 /// </param>
 public override void InitializeCore(NodeConfiguration configuration)
 {
     Config = (TerminatorNodeConfiguration)configuration;
 }