Exemplo n.º 1
0
        /// <summary>
        /// Connects this activity with the <see cref="Fork"/> received as parameter.
        /// </summary>
        /// <param name="node">The <see cref="Fork"/> to connect as successor of this activity.</param>
        public virtual void ConnectTo(Fork node)
        {
            Guard.NotNull(() => node, node);

            this.ConnectTo(new Node[] { node });
        }
        public Initial Generate()
        {
            Join previousJoin = null;
            var initial = new Initial
            {
                Name = "ServiceMatrix Guidance",
            };

            foreach (var topic in this.Items.GroupBy(x => x.Item1))
            {
                var fork = new Fork
                {
                    Name = topic.Key.Trim(),
                };
                if (previousJoin == null)
                    initial.ConnectTo(fork);
                else
                    previousJoin.ConnectTo(fork);

                var lastItem = this.GenerateItems(topic, fork);

                var join = new Join
                {
                    Name = topic.Key + "Join",
                };
                lastItem.ConnectTo(join);
                previousJoin = join;
            }

            var final = new Final
            {
                Name = "Final",
            };
            previousJoin.ConnectTo(final);

            return initial;
        }
        private GuidanceAction GenerateItems(IGrouping<string, Tuple<string, string, string>> topic, Fork fork)
        {
            var previousGuidanceAction = default(GuidanceAction);

            foreach (var item in topic)
            {
                var guidanceaction = new GuidanceAction
                {
                    Name = item.Item2.Trim(),
                    Link = item.Item3,
                };
                if (previousGuidanceAction == null)
                    fork.ConnectTo(guidanceaction);
                else
                    previousGuidanceAction.ConnectTo(guidanceaction);
                previousGuidanceAction = guidanceaction;
            }

            return previousGuidanceAction;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Connects this activity with the <see cref="Fork"/> received as parameter.
        /// </summary>
        /// <param name="node">The <see cref="Fork"/> to connect as successor of this activity.</param>
        public virtual void ConnectTo(Fork node)
        {
            Guard.NotNull(() => node, node);

            this.ConnectTo(new Node[] { node });
        }