private IEnumerable <GherkinEvent> FilterByTag() { var eventsByTag = GroupEventsByTag.GroupByTag(this.events); var eventsToRaise = new List <GherkinEvent>(); while (eventsByTag.Any()) { var eventsToHandle = new Queue <GherkinEvent>(GroupEventsByFeature.GetEventsForNextFeature(eventsByTag).ToList()); var tagsFilter = TagFilterBuilder.Build(configuration.TagsFilter); var filteredEvents = tagsFilter.Filter(eventsToHandle).ToList(); eventsToRaise.AddRange(filteredEvents); } return(eventsToRaise); }
public static Queue <GherkinEvent> GroupByTag(Queue <GherkinEvent> events) { var m = new GroupEventsByTag(events); return(m.GroupByTag()); }