コード例 #1
0
        public CommandsService(
            ITelegramBotClient telegramBotClient,
            ILogger <CommandsService> logger,
            IReminderStore reminderStore
            )
        {
            _telegramBotClient = telegramBotClient;
            _logger            = logger;
            _reminderStore     = reminderStore;

            _commands = new List <TelegramCommand>
            {
                new DateCommand(),
                new SetReminderCommand(),
                new HelloCommand(),
                new HelpCommand(),
                new GetAllRemindersCommand(),
                new ClearAllCommand()
            };
        }
コード例 #2
0
 public ReminderManager(INotifier notifier, IReminderStore store)
 {
     Store    = store;
     Notifier = notifier;
     Monitor  = new ReminderMonitor(Store);
 }
コード例 #3
0
 public override async Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null)
 {
     var chatId = message.Chat.Id;
     await client.SendTextMessageAsync(chatId, "Ну здорова, бродяга. Я бот, и в благородство играть не буду. " +
                                       "Нажмёшь на пару моих кнопок - и мы в расчёте. " +
                                       "\nЧто бы увидеть список всех команд, введи: /help");
 }
コード例 #4
0
        public override async Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null)
        {
            var chatId = message.Chat.Id;

            var keyBoard = new ReplyKeyboardMarkup
            {
                Keyboard = new[]
                {
                    new[] {
                        new KeyboardButton("/help"),
                        new KeyboardButton("напомнить"),
                        new KeyboardButton("дата"),
                        new KeyboardButton("все записи"),
                        new KeyboardButton("удалить все")
                    }
                },
                ResizeKeyboard = true
            };

            await client.SendTextMessageAsync(chatId, "Это бот-напоминатель. Скажи ему о чём тебе нужно напомнить, и он сделает это.");

            await client.SendTextMessageAsync(chatId, $"Список доступных команд", replyMarkup : keyBoard);
        }
コード例 #5
0
        public override async Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null)
        {
            var chatId = message.Chat.Id;

            await client.SendTextMessageAsync(chatId, $"{DateTime.Now:F}");
        }
コード例 #6
0
        public override async Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null)
        {
            var chatId = message.Chat.Id;
            var text   = message.Text.Remove(0, Name.Length).Trim();

            if (!string.IsNullOrEmpty(text))
            {
                var date = BotHelper.AnalizeStringToDate(text);

                reminderStore.Set(new Reminder(text, date));

                await client.SendTextMessageAsync(chatId, $"Я запомню, дата установлена: {date}");
            }
            else
            {
                await client.SendTextMessageAsync(chatId, "введи напомнить + свой текст с временем в формате 00:00" +
                                                  "\nНапример: напомнить сходить в барбершоп в 18:00");
            }
        }
コード例 #7
0
 public ReminderMonitor(IReminderStore store)
 => this.Store = store;
コード例 #8
0
 public static void MarkDone(this IReminderStore store, params IReminder[] reminders)
 => store.MarkDone((IEnumerable <IReminder>)reminders);
コード例 #9
0
 public static void Delete(this IReminderStore store, params IReminder[] reminders)
 => store.Delete((IEnumerable <IReminder>)reminders);
コード例 #10
0
        public override async Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null)
        {
            if (message != null)
            {
                var keyBoard = new InlineKeyboardMarkup(new[]
                {
                    new InlineKeyboardButton {
                        Text = "Да", CallbackData = "yes"
                    },
                    new InlineKeyboardButton {
                        Text = "Нет, не надо", CallbackData = "no"
                    }
                });

                await client.SendTextMessageAsync(message.Chat.Id, "Точно удалить все напоминания?", replyMarkup : keyBoard);
            }

            if (callbackQuery != null)
            {
                if (callbackQuery.Data.Equals("yes"))
                {
                    reminderStore.ClearAll();
                    await client.SendTextMessageAsync(callbackQuery.Message.Chat.Id, "пиу пиу пиу");
                }
                else
                {
                    await client.SendTextMessageAsync(callbackQuery.Message.Chat.Id, "Окей, не буду");
                }
            }
        }
コード例 #11
0
 public abstract Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null);
コード例 #12
0
        public override async Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null)
        {
            string reminders = "";

            foreach (var item in reminderStore.GetAll())
            {
                reminders += item.GetText() + "\n";
            }

            if (string.IsNullOrEmpty(reminders))
            {
                await client.SendTextMessageAsync(message.Chat.Id, "Записей нет...");
            }

            await client.SendTextMessageAsync(message.Chat.Id, reminders);
        }