示例#1
0
        //кнопка поиска города
        private void metroButton3_Click(object sender, EventArgs e)
        {
            CheckToFile.CheckFile(); //проверка существования файла с городами
            //проверка на заполение поля
            if ((countryTextBox.Text != String.Empty) && (countryTextBox.Text.Length > 2))
            {
                //очистка всех полей
                mainLabel.Text        = "main";
                descriptionLabel.Text = "description";
                pressureLabel.Text    = "pressure";
                humidityLabel.Text    = "humidity";
                speedLabel.Text       = "speed";
                degLabel.Text         = "deg";
                countryLabel.Text     = "country";
                tempLabel.Text        = "temp";
                feels_likeLabel.Text  = "feels_like";
                datetimeLabel.Text    = "datetime";

                //поиск по бд всех городов с таким ключевым словом
                string keyWord = countryTextBox.Text;
                var    lines   = File.ReadLines(Application.StartupPath + "/city.txt");
                string result  = string.Join("\n", lines.Where(s => s.IndexOf(keyWord, StringComparison.InvariantCultureIgnoreCase) >= 0));
                if (result.Length == 0)
                {
                    MessageBox.Show($"Ничего не найдено по данному ключевому слову: {keyWord}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show(result, $"Найденные ID по ключевому слову {keyWord}", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    IDInfo.Text    = result;
                    IDInfo.Visible = true;
                }
            }
            else
            {
                MessageBox.Show("Вы не ввели ключевое слово или оно слишком короткое", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            countryTextBox.Text = "Название города";
        }
示例#2
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;
        }
示例#3
0
 private void Form1_Load(object sender, EventArgs e)
 {
     CheckToConnectWithInternet.IsConnected(); //проверка подключения к интернету
     CheckToFile.CheckFile();                  //проверка существования файла с городами
 }