Exemple #1
0
        /// <summary>
        /// Нажатие кнопки отправки погды
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void SndweatherButton_Click(object sender, RoutedEventArgs e)
        {
            //Если город выбран
            if (citiesCB.SelectedItem != null)
            {
                //Запрос погоды по выбранному городу
                weatherString = await WeatherClient.GetWeather(citiesCB.SelectedItem.ToString());

                //Создание объекта погоды
                clientWeather.ow = JsonConvert.DeserializeObject <WeatherClient.OpenWeather>(weatherString);
                var weather = clientWeather.ow;
                //Строка для отправки пользователю
                string weatherMessage =
                    $"City: {citiesCB.SelectedItem.ToString()}\n" +
                    $"Temp: {weather.main.Temp.ToString("0.##")} ℃\n" +
                    $"{weather.weather[0].description}\n" +
                    $"Humidity: {weather.main.humidity.ToString()}\n" +
                    $"Pressure: {((int)weather.main.Pressure).ToString()}\n" +
                    $"WindSpeed: {weather.wind.speed.ToString()}\n" +
                    $"WindDeg: {weather.wind.deg.ToString()}";

                Dispatcher.Invoke(() => client.SendMessage(weatherMessage, forIdTB.Text));
            }
            else
            {
                MessageBox.Show("Сперва выберите город.");
            }
        }
Exemple #2
0
        /// <summary>
        /// Обработчик телеграм кнопок
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var m = e.CallbackQuery;    //аргументы события

            //Если в списке городов есть совпадение с сообщением польозвателя
            if (wc.citiesCollection.Contains(m.Data))
            {
                w.Dispatcher.Invoke(new Action(async() =>
                {
                    //Получение погоду
                    weatherString = await WeatherClient.GetWeather(m.Data);
                    //Создание объекта
                    wc.ow       = JsonConvert.DeserializeObject <WeatherClient.OpenWeather>(weatherString);
                    var weather = wc.ow;
                    //Составление строки из данных объекта погоды для отправки
                    string weatherMessage =
                        $"City: {m.Data}\n" +
                        $"Temp: {weather.main.Temp.ToString("0.##")} ℃\n" +
                        $"{weather.weather[0].description}\n" +
                        $"Humidity: {weather.main.humidity.ToString()}\n" +
                        $"Pressure: {((int)weather.main.Pressure).ToString()}\n" +
                        $"WindSpeed: {weather.wind.speed.ToString()}\n" +
                        $"WindDeg: {weather.wind.deg.ToString()}";

                    await bot.SendTextMessageAsync(m.From.Id, weatherMessage);
                }));
            }
        }
Exemple #3
0
        /// <summary>
        /// Выбор города в ComboBox
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CitiesCB_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            //Создание потока для обновления данных погоды на форме
            var thread = new System.Threading.Thread(() =>
            {
                //Пока окно не закрыто
                while (!IsClosed)
                {
                    //Запрос данных о погоде каждые 5 секунд и обновление элементов окна новыми данными
                    Dispatcher.Invoke(new Action(async() =>
                    {
                        weatherString    = await WeatherClient.GetWeather(citiesCB.SelectedItem.ToString());
                        pathToFile.Text  = weatherString;
                        clientWeather.ow = JsonConvert.DeserializeObject <WeatherClient.OpenWeather>(weatherString);
                        var weather      = clientWeather.ow;

                        tempLBL.Content          = $"Temp: {weather.main.Temp.ToString("0.##")} ℃";
                        tempDescriptLBL.Content  = $"{weather.weather[0].description}";
                        temphumidityLBL.Content  = $"Humidity: {weather.main.humidity.ToString()}";
                        temppressureLBL.Content  = $"Pressure: {((int)weather.main.Pressure).ToString()}";
                        tempwindspeedLBL.Content = $"WindSpeed: {weather.wind.speed.ToString()}";
                        tempwinddegLBL.Content   = $"WindDeg: {weather.wind.deg.ToString()}";
                    }));
                    System.Threading.Thread.Sleep(5000);
                }
            });

            thread.Start();
        }