public static IScenarioThenStateBuilder Then(this IScenarioWhenStateBuilder builder, params IEvent[] events) { if (events == null) { throw new ArgumentNullException("events"); } if (events.Length == 0) { return(builder.Then(Guid.Empty.ToString(), new object[0])); } using (var enumerator = events.AsEnumerable().GetEnumerator()) { enumerator.MoveNext(); var continuation = builder.Then(enumerator.Current.Id.ToString(), enumerator.Current); while (enumerator.MoveNext()) { continuation = continuation.Then(enumerator.Current.Id.ToString(), enumerator.Current); } return(continuation); } }