/// <summary>
        /// Checks if this event should be a start event and returns the configuration created by the base class
        /// </summary>
        /// <returns>NodeConfiguration</returns>
        public override NodeConfiguration CreateConfiguration()
        {
            var parentViewModel = this.Parent as WorkflowEditorViewModel;

            var configuration = base.CreateConfiguration();

            configuration.IsStartEvent = false;

            if (parentViewModel == null)
            {
                return(configuration);
            }

            // try to find out if this in pin is empty
            var flowInPins = FlowPins.Where(x => x.PinDirection == PinDirectionDefinition.In);

            foreach (var pin in flowInPins)
            {
                if (!parentViewModel.Connections.Any(x => x.TargetConnectorViewModel == pin))
                {
                    // no connections to this pin, so it must be a start event
                    configuration.IsStartEvent = true;
                }
            }

            return(configuration);
        }
示例#2
0
        protected void CreateFlowInPin()
        {
            if (!nodeDefinition.InFlowPins.Any())
            {
                var pin = new FlowPinDefinition
                {
                    AllowMultiple = false,
                    DisplayName   = "In",
                    Id            = Guid.NewGuid(),
                    Name          = "FlowIn",
                    PinDirection  = PinDirectionDefinition.In
                };
                nodeDefinition.InFlowPins.Add(pin);

                FlowPins.Add(new FlowConnectorViewModel(pin)
                {
                    Parent       = this,
                    PinDirection = PinDirectionDefinition.In
                });
            }
        }
示例#3
0
        private void FillPins()
        {
            foreach (var pin in nodeDefinition.InFlowPins)
            {
                FlowPins.Add(new FlowConnectorViewModel(pin)
                {
                    Parent       = this,
                    PinDirection = PinDirectionDefinition.In
                });
            }

            foreach (var pin in nodeDefinition.InDataPins)
            {
                DataPins.Add(new DataConnectorViewModel(pin)
                {
                    Parent       = this,
                    PinDirection = PinDirectionDefinition.In
                });
            }

            foreach (var pin in nodeDefinition.OutFlowPins)
            {
                FlowPins.Add(new FlowConnectorViewModel(pin)
                {
                    Parent       = this,
                    PinDirection = PinDirectionDefinition.Out
                });
            }

            foreach (var pin in nodeDefinition.OutDataPins)
            {
                DataPins.Add(new DataConnectorViewModel(pin)
                {
                    Parent       = this,
                    PinDirection = PinDirectionDefinition.Out
                });
            }
        }