public async Task OnStart(ApplicationContext context, Message message, TelegramBotClient client) { long chatId = message.Chat.Id; if (!await UserDB.IsUserExists(context, chatId)) { UserDB.AddUser(context, chatId, message.From.Username.Correct()); } else if (!await UserDB.IsUserExistsAndAuthed(context, chatId)) { await UserDB.UserLogin(context, chatId); await client.SendTextMessageAsync(chatId, "Мы рады вас снова видеть", ParseMode.Html); } else { await client.SendTextMessageAsync(chatId, "Мы вас уже знаем", ParseMode.Html); } await UserDB.ChangeUserActionAsync(context, chatId, Actions.None); TelegramKeyboard keyboard = new TelegramKeyboard(); keyboard.AddRow("Войти по ивент-коду"); keyboard.AddRow("Личный кабинет"); await client.SendTextMessageAsync(chatId, "Чудненько " + "😇" + " Можем приступить", ParseMode.Markdown); await client.SendTextMessageAsync(chatId, "У вас есть личный кабинет? Если нет, то войдите по *ивент-коду* \n P.S.*Ивент-код* отправлен в письме регистрации", ParseMode.Markdown, replyMarkup : keyboard.Markup); }
public async Task OnWaitingParenTag(ApplicationContext context, Message message, TelegramBotClient client) { var text = message.Text; var chatId = message.Chat.Id; Tag tag = new Tag() { ParentTagID = 0, Name = text, Level = 1 }; context.Tags.Add(tag); context.SaveChanges(); await client.SendTextMessageAsync( chatId, $"Родительский тег *{tag.Name}* добавлен", ParseMode.Markdown); TelegramKeyboard keyboard = new TelegramKeyboard(); keyboard.AddRow("Добавить родительский тег"); keyboard.AddRow("Добавить дочерний тег"); keyboard.AddRow("Вывести все родительские теги"); await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForTagAction); await client.SendTextMessageAsync(chatId, "Выберите опцию", ParseMode.Markdown, replyMarkup : keyboard.Markup); }
public async Task OnWaitingForTagAction(ApplicationContext context, Message message, TelegramBotClient client) { var text = message.Text; var chatId = message.Chat.Id; StringBuilder builder = new StringBuilder(); switch (text) { case "Добавить родительский тег": await client.SendTextMessageAsync( chatId, "Введите название нового тега", ParseMode.Markdown); await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForParentTag); break; case "Добавить дочерний тег": var parentTags = Utils.SplitList(2, context.Tags.Where(t => t.Level == 1).ToList()); TelegramKeyboard keyboard = new TelegramKeyboard(); foreach (var parentTag in parentTags) { keyboard.AddRow(parentTag.Select(e => e.Name)); } await client.SendTextMessageAsync( chatId, "Введите родительский тег к которому надо добавить дочерний", ParseMode.Markdown, replyMarkup : keyboard.Markup); await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForChoosingParentTag); break; case "Вывести все родительские теги": builder.Clear(); builder.AppendLine("теги:"); List <Tag> tags = context.Tags.Where(e => e.Level == 1).ToList(); foreach (var tag in tags) { builder.AppendLine(tag.Name); } await client.SendTextMessageAsync( chatId, builder.ToString(), ParseMode.Markdown); break; } }
public async Task OnStop(ApplicationContext context, Message message, TelegramBotClient client) { long chatId = message.Chat.Id; User user = await UserDB.GetUserByChatId(context, chatId); if (await UserDB.IsUserExistsAndAuthed(context, chatId)) { if (user.CurrentAction != Actions.DeleteOrNot) { TelegramKeyboard keyboard = new TelegramKeyboard(); keyboard.AddRow("Да"); keyboard.AddRow("Нет"); await client.SendTextMessageAsync(chatId, "*Сохранить* ваши данные или *полностью удалить*", ParseMode.Markdown, replyMarkup : keyboard.Markup); await UserDB.ChangeUserAction(context, chatId, Actions.DeleteOrNot); } } }
public async Task OnWaitingForPassword(ApplicationContext context, Message message, TelegramBotClient client) { var text = message.Text; var chatId = message.Chat.Id; if (text == AppSettings.Password) { StringBuilder builder = new StringBuilder(); builder.AppendLine("Пароль *правильный*"); builder.AppendLine(); builder.AppendLine("Вам доступен мой функционал"); TelegramKeyboard keyboard = new TelegramKeyboard(); keyboard.AddRow("Создать новое мероприятие"); #if WORK keyboard.AddRow("Изменение тегов (в разработке)"); #else keyboard.AddRow("Изменение тегов"); #endif keyboard.AddRow("Вывести все мероприятия"); await DatabaseUtils.SetUserAdmin(context, chatId); await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForAction); await client.SendTextMessageAsync( chatId, builder.ToString(), ParseMode.Markdown, replyMarkup : keyboard.Markup); } else { await client.SendTextMessageAsync( chatId, "Пароль неправильный", ParseMode.Markdown); } }
public async Task OnProfile(ApplicationContext context, Message message, TelegramBotClient client) { long chatId = message.Chat.Id; User user = await UserDB.GetUserByChatId(context, chatId); StringBuilder builder = new StringBuilder(); if (string.IsNullOrEmpty(user.Email)) { builder.AppendLine(@"Я смотрю мы вас не знаем, войдите по ивент коду "); builder.AppendLine(); builder.AppendLine(@"Введите ивент код"); await client.SendTextMessageAsync( chatId, builder.ToString(), ParseMode.Markdown); await UserDB.ChangeUserAction(context, chatId, Actions.WaitingForEventCode); } else { TelegramKeyboard keyboard = new TelegramKeyboard(); keyboard.AddRow("О мероприятии", "Присоединиться к мероприятию"); keyboard.AddRow("Режим нетворкинга"); keyboard.AddRow("Записная книжка"); keyboard.AddRow("Все мероприятия"); await client.SendTextMessageAsync( chatId, "Что нужно?", ParseMode.Html, replyMarkup : keyboard.Markup); await UserDB.ChangeUserAction(context, chatId, Actions.Profile); } }
public async Task OnWaitingForAction(ApplicationContext context, Message message, TelegramBotClient client) { var text = message.Text; var chatId = message.Chat.Id; StringBuilder builder = new StringBuilder(); switch (text) { case "Создать новое мероприятие": builder.Clear(); await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForEventName); builder.AppendLine("*Режим добавления мероприятия*"); builder.AppendLine(); builder.AppendLine("_Введите название мероприятия_"); await client.SendTextMessageAsync(chatId, builder.ToString(), ParseMode.Markdown); break; case "Изменение тегов": builder.Clear(); builder.AppendLine("Выберите опцию"); TelegramKeyboard keyboard = new TelegramKeyboard(); keyboard.AddRow("Добавить родительский тег"); keyboard.AddRow("Добавить дочерний тег"); keyboard.AddRow("Вывести все родительские теги"); await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForTagAction); await client.SendTextMessageAsync(chatId, builder.ToString(), ParseMode.Markdown, replyMarkup : keyboard.Markup); break; case "Вывести все мероприятия": List <Event> events = context.Events.ToList(); if (events.Count > 0) { for (var i = 0; i < events.Count; i++) { builder.AppendLine($"{i+1}: {events[i].Name}"); } } else { builder.AppendLine("Нету ивентов"); } await client.SendTextMessageAsync(chatId, builder.ToString()); break; default: await client.SendTextMessageAsync(chatId, "Я вас не понимаю"); break; } }