public void ThenTheRegistrantAssignsTheseSeats(Table table) { using (var orderController = RegistrationHelper.GetOrderController(conferenceInfo.Slug)) { PricedOrder pricedOrder = null; var timeout = DateTime.Now.Add(Constants.UI.WaitTimeout); while ((pricedOrder == null || !pricedOrder.AssignmentsId.HasValue) && DateTime.Now < timeout) { pricedOrder = RegistrationHelper.GetModel <PricedOrder>(orderController.Display(draftOrder.OrderId)); } Assert.NotNull(pricedOrder); Assert.True(pricedOrder.AssignmentsId.HasValue); var orderSeats = RegistrationHelper.GetModel <OrderSeats>(orderController.AssignSeats(pricedOrder.AssignmentsId.Value)); foreach (var row in table.Rows) { var seat = orderSeats.Seats.FirstOrDefault(s => s.SeatName == row["seat type"]); Assert.NotNull(seat); seat.Attendee.FirstName = row["first name"]; seat.Attendee.LastName = row["last name"]; seat.Attendee.Email = row["email address"]; } orderController.AssignSeats(pricedOrder.AssignmentsId.Value, orderSeats.Seats.ToList()); } }