Exemplo n.º 1
0
        //кнопка обновить
        private async void metroButton2_Click(object sender, EventArgs e)
        {
            CheckToConnectWithInternet.IsConnected(); //проверка подключения к интернету
            CheckToFile.CheckFile();                  //проверка существования файла с городами
            try
            {
                WebRequest request = WebRequest.Create("https://api.openweathermap.org/data/2.5/weather?id=" + idTextBox.Text + "&APPID=002ad5987fae2bde5067fd5195691cbc");
                //получение данных с сайта методом Post
                request.Method      = "POST";
                request.ContentType = "application/x-www-urlencoded";
                WebResponse response = await request.GetResponseAsync();

                string answer = string.Empty;
                using (Stream s = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(s))
                    {
                        answer = await reader.ReadToEndAsync();
                    }
                }
                response.Close();
                OpenWeather.OpenWeather oW = JsonConvert.DeserializeObject <OpenWeather.OpenWeather>(answer);

                //отправка переменных для перевода
                Variable.description = oW.weather[0].description;
                Variable.mainWeather = oW.weather[0].main;
                Variable.WindDeg     = oW.wind.deg;

                if (Variable.isYandexTranslate == true)
                {
                    //перевод yandex
                    mainLabel.Text        = YandexTranslator.Translate(Variable.mainWeather);
                    descriptionLabel.Text = YandexTranslator.Translate(Variable.description);
                }
                else
                {
                    //без перевода
                    mainLabel.Text        = CustomTranslate.CustomMainWeather(Variable.mainWeather);
                    descriptionLabel.Text = CustomTranslate.CustomDescription(Variable.description);
                }

                //заполнение информацией
                panel1.BackgroundImage = oW.weather[0].Icon;
                tempLabel.Text         = "Средняя температура в данный момент (°С): " + oW.main.temp.ToString("0.##");
                datetimeLabel.Text     = "Время получения данных с сервера: " + DateTime.Now.ToString();
                countryLabel.Text      = oW.name.ToString();
                speedLabel.Text        = "Скорость ветра (м/с): " + oW.wind.speed.ToString();
                pressureLabel.Text     = "Атмосферное давление (мм.рт.ст): " + ((int)oW.main.pressure).ToString();
                humidityLabel.Text     = "Влажность (%): " + oW.main.humidity.ToString();
                feels_likeLabel.Text   = "Температура по ощущениям (°С): " + oW.main.feels_like.ToString("0.##");
                degLabel.Text          = CustomTranslate.CustomWindDeg(Variable.WindDeg);

                ExceptionHandling(); //обработка исключений
            }
            catch
            {
                MessageBox.Show("Что-то пошло не так", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                mainLabel.Text        = "Ошибка";
                descriptionLabel.Text = "Ошибка";
                pressureLabel.Text    = "Ошибка";
                humidityLabel.Text    = "Ошибка";
                speedLabel.Text       = "Ошибка";
                degLabel.Text         = "Ошибка";
                countryLabel.Text     = "Ошибка";
                tempLabel.Text        = "Ошибка";
                feels_likeLabel.Text  = "Ошибка";
            }
            idTextBox.Text = "ID города";
            IDInfo.Visible = false;
        }
Exemplo n.º 2
0
 private void Form1_Load(object sender, EventArgs e)
 {
     CheckToConnectWithInternet.IsConnected(); //проверка подключения к интернету
     CheckToFile.CheckFile();                  //проверка существования файла с городами
 }