示例#1
0
        /// <summary>
        /// main loop
        /// </summary>
        public void run()
        {
            Configuration config = new Configuration();

            config.Load("config.json");

            Availability[] last_availability = null;

            while (true)
            {
                var new_availability = fetchAsync(config.zipCode, config.carriers, config.products).Result;

                if (last_availability == null || !Availability.isSame(last_availability, new_availability))
                {
                    int available_count = 0;

                    foreach (var ava in new_availability)
                    {
                        if (!ava.isAvailable)
                        {
                            continue;
                        }
                        showStatus("Availabile: " + ava.product.name + " " + ava.carrier.name + " " + ava.store.name);
                        available_count++;
                    }

                    if (available_count == 0)
                    {
                        showStatus("Nothing available");
                    }

                    showStatus("");

                    if (last_availability != null)
                    {
                        // notify
                        notify(new_availability, last_availability, config);
                    }

                    last_availability = new_availability;
                }

                Thread.Sleep(config.refreshInterval);
            }
        }