public void GetDateStrTest_1()
        {
            LittleLogger logger =
                new LittleLogger("../../Test_Data/GetDateStrTest_1/log.txt");
            DateString dateStr = new DateString(logger);
            // Даты
            string date1 = "26.05.2015";
            string dateAfterConversion1 = dateStr.GetYahooDate(date1);
            string date2 = "30.02.1998";
            string dateAfterConversion2 = dateStr.GetYahooDate(date2);

            // Сравниваем ожидаемые и фактические значения
            Assert.AreEqual("26 May 2015", dateAfterConversion1);
            Assert.AreEqual("30 Feb 1998", dateAfterConversion2);
        }
示例#2
0
        public void ReadFromDBTest_2()
        {
            // Формируем объекты класса WeatherService            
            EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder();
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/ReadFromDBTest_2/YahooWeatherDB.sqlite";
            ConnectionString.Provider = @"System.Data.SQLite";
            ConnectionString.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
            WeatherService wService1 = new WeatherService("Yahoo", ConnectionString.ToString());
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/ReadFromDBTest_2/YandexWeatherDB.sqlite";
            WeatherService wService2 = new WeatherService("Yandex", ConnectionString.ToString());

            // Параметр даты для запроса к БД
            LittleLogger logger =
                new LittleLogger("../../Test_Data/ReadFromDBTest_2/log.txt");
            DateString dateStr = new DateString(logger);
            string date1 = dateStr.GetYahooDate("05.06.2014");
            string date2 = dateStr.GetYandexDate("05.06.2014");

            // Запрос погодных данных за 05.06.2014
            Forecaster forecaster = new Forecaster(logger);
            List<City1Entity> weather1_1 = forecaster.GetCity1Weather(wService1, date1);
            List<City2Entity> weather1_2 = forecaster.GetCity2Weather(wService1, date1);
            List<City3Entity> weather1_3 = forecaster.GetCity3Weather(wService1, date1);
            List<City1Entity> weather2_1 = forecaster.GetCity1Weather(wService2, date2);
            List<City2Entity> weather2_2 = forecaster.GetCity2Weather(wService2, date2);
            List<City3Entity> weather2_3 = forecaster.GetCity3Weather(wService2, date2);

            // Сравниваем ожидаемые и фактические значения
            Assert.AreEqual(5, weather1_1.Count);
            Assert.AreEqual(3, weather1_2.Count);
            Assert.AreEqual(4, weather1_3.Count);

            Assert.AreEqual(10, weather2_1.Count);
            Assert.AreEqual(9, weather2_2.Count);
            Assert.AreEqual(8, weather2_3.Count);
        }
示例#3
0
        public void ReadFromDBTest_1()
        {
            // Формируем объект класса WeatherService            
            EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder();
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/ReadFromDBTest_1/YandexWeatherDB.sqlite";
            ConnectionString.Provider = @"System.Data.SQLite";
            ConnectionString.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
            WeatherService wService = new WeatherService("Yandex", ConnectionString.ToString());

            // Параметр даты для запроса к СУБД
            LittleLogger logger =
                new LittleLogger("../../Test_Data/ReadFromDBTest_1/log.txt");
            DateString dateStr = new DateString(logger);
            string date = dateStr.GetYandexDate("05.06.2014");

            // Запрос погодных данных за 05.06.2014
            Forecaster forecaster = new Forecaster(logger);
            List<City1Entity> weather = forecaster.GetCity1Weather(wService, date);

            // Сравниваем ожидаемые и фактические значения            
            Assert.AreEqual("2014-06-05 T22:58:10", weather[0].Date);
        }
示例#4
0
        // Обработчик нажатия на кнопку Посмотреть погоду
        protected void GetWeather_Click(object sender, EventArgs e)
        {
            // Объект для записи логов для записи логов
            LittleLogger logger =
                new LittleLogger("WeatherWebInterface_log.txt");
            DateString datestring = new DateString(logger);
            Forecaster forecaster = new Forecaster(logger);

            try
            {
                // Определяем город для запроса
                City queryCity =
                    (from city in CityList
                     where city.Name == CityDropDownList.Items[CityDropDownList.SelectedIndex].ToString()
                     select city).ElementAt<City>(0);

                // Определяем сервис погодных данных для запроса
                WeatherService queryWeatherService =
                    (from weatherservice in WeatherServiceList
                     where weatherservice.Name == ServiceDropDownList.Items[ServiceDropDownList.SelectedIndex].ToString()
                     select weatherservice).ElementAt<WeatherService>(0);

                // Определяем дату для запроса
                // Если дата в календаре не выбрана
                string SelectedDate;
                if (Calendar.SelectedDate.ToShortDateString() == "01.01.0001")
                    SelectedDate = Calendar.TodaysDate.ToShortDateString();
                else
                    SelectedDate = Calendar.SelectedDate.ToShortDateString();
                string queryDate = "";
                switch (ServiceDropDownList.SelectedIndex)
                {
                    case 0:
                        queryDate = datestring.GetYahooDate(SelectedDate);
                        break;
                    case 1:
                        queryDate = datestring.GetYandexDate(SelectedDate);
                        break;
                    default:
                        break;
                }

                // Запрос погодных данных + привязка к WeatherGridView            
                switch (queryCity.SerialNumber)
                {
                    case 0:
                        WeatherGridView.DataSource =
                            forecaster.GetCity1Weather(queryWeatherService,
                                                        queryDate);
                        break;
                    case 1:
                        WeatherGridView.DataSource =
                            forecaster.GetCity2Weather(queryWeatherService,
                                                        queryDate);
                        break;
                    case 2:
                        WeatherGridView.DataSource =
                            forecaster.GetCity3Weather(queryWeatherService,
                                                        queryDate);
                        break;
                    default:
                        break;
                }
                WeatherGridView.DataBind();
            }
            catch (Exception exception)
            {
                // Запись в лог
                logger.WriteLog(System.DateTime.Now.ToString()
                                + " "
                                + exception.Message);

                ErrorText.Text = "Что-то пошло не так...";
            }

            // Если таблицы не пуста
            if (WeatherGridView.Rows.Count != 0)
            {
                ErrorText.Text = "";

                // Меняем текст заголовка таблицы
                WeatherGridView.HeaderRow.Cells[0].Text = "Дата";
                WeatherGridView.HeaderRow.Cells[1].Text = "Температура";
                WeatherGridView.HeaderRow.Cells[2].Text = "Давление";
                WeatherGridView.HeaderRow.Cells[3].Text = "Влажность";
                WeatherGridView.HeaderRow.Cells[4].Text = "Ветер";
                WeatherGridView.HeaderRow.Cells[5].Text = "Облачность";
            }
            else
                ErrorText.Text = "Ошибка! По заданной дате не найдено погодных данных... " +
                                "Выберите другой день.";                         
        }