Exemplo n.º 1
0
        public static void Main()
        {
            var observable = new CovidInfo
            {
                CovidCases = 12
            };

            var observer = new CovidObserver("Nova news");

            observable.Subscribe(observer);

            observable.CovidCases = 1;
            observable.CovidCases = 5;
            observable.CovidCases = 10;

            observable.Unsubscribe(observer);

            /*Console output:
             * Observer added!
             * Nova news observer reports updated covid cases: 13
             * Nova news observer reports updated covid cases: 18
             * Nova news observer reports updated covid cases: 28
             * Observer removed!
             */
        }
Exemplo n.º 2
0
 private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     Task.Run(() =>
     {
         long ChatId = e.CallbackQuery.Message.Chat.Id;
         DeleteLastMessageInChat(e.CallbackQuery.Message.Chat.Id);
         Task <Telegram.Bot.Types.Message> message = null;
         if (e.CallbackQuery.Data == "info")
         {
             message = bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, CovidInfo.GetInfoCovid());
             bot.SendTextMessageAsync(ChatId, string.Empty, replyMarkup: keyboard);
         }
         if (e.CallbackQuery.Data == "symptoms")
         {
             message = bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, CovidInfo.GetSympCovid());
             bot.SendTextMessageAsync(ChatId, "Выберите действие", replyMarkup: keyboard);
         }
         if (e.CallbackQuery.Data == "profil")
         {
             message = bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, CovidInfo.GetProfCovid());
             bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, string.Empty, replyMarkup: keyboard);
         }
         if (e.CallbackQuery.Data == "statAll")
         {
             message = bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, CovidInfo.GetStatCovidTotalToday());
         }
         if (e.CallbackQuery.Data == "statRU")
         {
             bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, CovidInfo.GetStatCovidCountryToday("ru"));
         }
         if (e.CallbackQuery.Data == "statOther")
         {
             bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, e.CallbackQuery.Message.Chat.FirstName + ", для вывода информации введи #+код страны (#UA)");
             //bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, string.Format($"{e.CallbackQuery.Message.Chat.FirstName}, для вывода информации введи #+код страны (#UA) \n\n {CovidInfo.GetCountriesCodes()}"));
         }
         if (e.CallbackQuery.Data == "sites")
         {
             bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, CovidInfo.GetSitesInfo());
         }
     });
 }
Exemplo n.º 3
0
        private static void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            string senderName = e.Message.Chat.FirstName;
            Task <Telegram.Bot.Types.Message> message = null;

            Console.WriteLine($"{DateTime.Now}  - {e.Message.Chat.FirstName}");
            Task.Run(() =>
            {
                if (e.Message.Text[0] == '#')
                {
                    message = bot.SendTextMessageAsync(e.Message.Chat.Id, CovidInfo.GetStatCovidCountryToday(e.Message.Text.Substring(1)));
                }
                else
                {
                    if ((e.Message.Text.ToLower() == "привет") || (e.Message.Text.ToLower() == "hello"))
                    {
                        message = bot.SendTextMessageAsync(e.Message.Chat.Id, $"Привет, {senderName}");
                    }
                    bot.SendTextMessageAsync(e.Message.Chat.Id, "Обновление информации по статистике происходит 1 раз в сутки и может немного отличаться от других иточников", replyMarkup: keyboard);
                }
            });
        }