示例#1
0
        public static async Task StarterAsync(URLSettings hotel, dateSettings dates)
        {
            var urlAddresses = hotel.getUrlsList(dates);
            var pricesList   = new List <List <List <string> > >();

            for (int i = 0; i < urlAddresses.Length; i++)
            {
                Console.WriteLine($"\nПроисходит магия... Страница: {i + 1}/{urlAddresses.Length}");
                var list_ = await PriceParser.GetPricesAsync(urlAddresses[i]);

                pricesList.Add(list_);
            }
            Console.WriteLine();
            Console.WriteLine($"Минимальные цены в выбранном отеле:");
            Console.WriteLine();
            Console.WriteLine($"ПыСы: если между отображаемыми датами больше 1 дня, \n" +
                              $"в этом диапазоне цены соответствуют ближайшему предыдущему значению.");
            Console.WriteLine();
            DateTime dateCount = dates.Start;

            for (int i = 0; i < pricesList.Count; i++)
            {
                try
                {
                    // Этот кусок определяет совпадения между датами идущими подряд
                    // Если данные совпадают с предыдущими, то скипает вывод и переходит к следующей дате
                    if (i != 0 && pricesList[i][0][0] == pricesList[i - 1][0][0] &&
                        pricesList[i][0][1] == pricesList[i - 1][0][1])
                    {
                        dateCount = dateCount.AddDays(dates.Step);
                        continue;
                    }
                    Console.Write("Цена на дату: " + dateCount.ToString("yyyy-MM-dd"));
                    Console.Write(pricesList[i][0][0] + pricesList[i][0][1]);
                    dateCount = dateCount.AddDays(dates.Step);
                }
                catch
                {
                    Console.WriteLine("\nВозникла ошибка, проверьте наличие цен на выбранные даты");
                    break;
                }
            }
        }