public void ThenAllTheConferencesAreCreated()
        {
            var failureCollector = new ConcurrentBag <string>();

            Parallel.ForEach(slugs, s =>
            {
                var mConf = ConferenceHelper.FindConference(s);
                if (mConf == null)
                {
                    failureCollector.Add(string.Format("Conference with slug '{0}' not found in management repository.", s));
                    return;
                }
                var success = MessageLogHelper.CollectEvents <AvailableSeatsChanged>(mConf.Id, seatsInfo.Rows.Count);
                if (!success)
                {
                    failureCollector.Add(string.Format("Some seats were not found in Conference '{0}'", mConf.Name));
                }
            });

            if (failureCollector.Count > 0)
            {
                var sb = new StringBuilder();
                failureCollector.ToList().ForEach(s => sb.AppendLine(s));
                Assert.True(failureCollector.Count == 0, sb.ToString()); // raise error with all the failures
            }
        }
        public void ThenTheNewSeatTypesWithThisInformationAreCreated(Table table)
        {
            var conferenceInfo = ConferenceHelper.FindConference(ScenarioContext.Current.Get <string>("slug"));
            var seats          = conferenceInfo.Seats.ToList();

            foreach (var row in table.Rows)
            {
                Assert.True(seats.Any(s => s.Name == row["Name"]));
                Assert.True(seats.Any(s => s.Description == row["Description"]));
                Assert.True(seats.Any(s => s.Quantity == int.Parse(row["Quantity"])));
                Assert.True(seats.Any(s => s.Price == decimal.Parse(row["Price"])));
            }
        }