/// <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; }