private List <(List <Seat>, bool, DateTime)> GetResult(ISeatMonitoringApiClient seatMonitoringApiClient, int count, int interval)
        {
            var results = new List <(List <Seat>, bool, DateTime)>();

            PeriodicNotifier.Destination destination = (List <Seat> seats, bool isSucceeded) => {
                results.Add((seats, isSucceeded, DateTime.Now));
            };

            var periodicNotifier = new PeriodicNotifier(destination, seatMonitoringApiClient, interval);

            periodicNotifier.Start();
            while (results.Count < count)
            {
                Thread.Sleep(1000);
            }
            periodicNotifier.Stop();

            return(results);
        }
 public PeriodicNotifier(Destination destination, ISeatMonitoringApiClient seatMonitoringApiClient, int interval = 60 * 1000)
 {
     this.destination        = destination;
     SeatMonitoringApiClient = seatMonitoringApiClient;
     this.interval           = interval;
 }