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() }; }
public ReminderManager(INotifier notifier, IReminderStore store) { Store = store; Notifier = notifier; Monitor = new ReminderMonitor(Store); }
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"); }
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); }
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}"); }
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"); } }
public ReminderMonitor(IReminderStore store) => this.Store = store;
public static void MarkDone(this IReminderStore store, params IReminder[] reminders) => store.MarkDone((IEnumerable <IReminder>)reminders);
public static void Delete(this IReminderStore store, params IReminder[] reminders) => store.Delete((IEnumerable <IReminder>)reminders);
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, "Окей, не буду"); } } }
public abstract Task Execute(Message message, ITelegramBotClient client, IReminderStore reminderStore, CallbackQuery callbackQuery = null);
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); }