/// <summary> /// Executing command /// </summary> /// <param name="message">Message from user</param> /// <param name="botClient">Bot Client</param> /// <param name="context">DB Context</param> /// <param name="markups">Keyboards</param> /// <returns></returns> public override async Task Execute(Message message, TelegramBotClient botClient, ApplicationContext context, TelegramMarkupsService markups) { var chat = message.Chat; var lang = message.From.LanguageCode; // Add new user var user = context.Users.FirstOrDefault(p => p.TelegramId == chat.Id); if (user == null) { Enum.TryParse(lang, out UserLang userLang); user = new User() { TelegramId = chat.Id, Name = chat.FirstName, Lang = userLang }; await context.Users.AddAsync(user); await context.SaveChangesAsync(); } var line = await context.Lines.FindAsync("hello"); var helloText = line.GetTranslate(user.Lang); await botClient.SendTextMessageAsync(chat.Id, string.Format(helloText, user.Name), replyMarkup : markups.GetMainMarkup(user.Lang)); }
public MessageController(ApplicationContext context, EventLoggerService eventLogger, TelegramBotService telegramBot, TelegramMarkupsService markups) { _eventLogger = eventLogger; _context = context; _telegramBot = telegramBot; _markups = markups; _eventLogger.AddClass <MessageController>(); _eventLogger.LogDebug("Initialization MessageController"); }
public override async Task Execute(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups) { var chat = message.Chat; var user = context.Users.FirstOrDefault(usr => usr.TelegramId == chat.Id); // Finding user in database // If user not registered if (user == null) { return; } var instructionLine = await context.Lines.FindAsync("instruction"); var instruction = instructionLine.GetTranslate(user.Lang); await client.SendTextMessageAsync(user.TelegramId, instruction, replyMarkup : markups.GetMainMarkup(user.Lang)); }
public override async Task Execute(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups) { var chat = message.Chat; var user = context.Users.FirstOrDefault(usr => usr.TelegramId == chat.Id); // Finding user in database // If user not registered if (user == null) { return; } var deletedAccount = (await context.Lines.FindAsync("deletedAccount")).GetTranslate(user.Lang); context.Users.Remove(user); await client.SendTextMessageAsync(user.TelegramId, deletedAccount, replyMarkup : markups.GetStartMarkup()); await context.SaveChangesAsync(); }
public override async Task Execute(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups) { var chat = message.Chat; var user = context.Users.FirstOrDefault(usr => usr.TelegramId == chat.Id); // Finding user in database // If user not registered if (user == null) { return; } var subscribedTo = (await context.Lines.FindAsync("subscribedTo")) .GetTranslate(user.Lang); user.SubPikabu = UserSub.Yes; context.Users.Update(user); await client.SendTextMessageAsync(user.TelegramId, string.Format(subscribedTo, "Pikabu"), replyMarkup : markups.GetSettingsMarkup(user)); await context.SaveChangesAsync(); }
private async Task SetLanguage(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups) { var chat = message.Chat; var user = context.Users.FirstOrDefault(usr => usr.TelegramId == chat.Id); // Finding user in database // If user not registered if (user == null) { return; } Enum.TryParse(message.Text, out UserLang lang); user.Lang = lang; context.Users.Update(user); if (LangChanged == null) { LangChanged = await context.Lines.FindAsync("langChanged"); } var langChanged = LangChanged.GetTranslate(user.Lang); await client.SendTextMessageAsync(user.TelegramId, langChanged, replyMarkup : markups.GetSettingsMarkup(user)); await context.SaveChangesAsync(); }
public override async Task Execute(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups) { if (Langs.Contains(message.Text)) { await SetLanguage(message, client, context, markups); return; } var chat = message.Chat; var user = context.Users.FirstOrDefault(usr => usr.TelegramId == chat.Id); // Finding user in database // If user not registered if (user == null) { return; } if (ChooseLang == null) { ChooseLang = await context.Lines.FindAsync("chooseLang"); } var chooseLang = ChooseLang.GetTranslate(user.Lang); await client.SendTextMessageAsync(user.TelegramId, chooseLang, replyMarkup : markups.GetLanguageMarkup()); }
public override async Task Execute(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups) { var chat = message.Chat; var user = context.Users.FirstOrDefault(usr => usr.TelegramId == chat.Id); // Finding user in database // If user not registered if (user == null) { return; } if (NewFreebie == null) { NewFreebie = await context.Lines.FindAsync("newFreebie"); } var newFreebie = NewFreebie.GetTranslate(user.Lang); var post = await context.Posts .Where(pst => pst.Type == PostType.Pikabu). OrderByDescending(x => x.Id) .FirstOrDefaultAsync(); newFreebie = string.Format(newFreebie, post.Type, post.Name, post.Url); await client.SendTextMessageAsync(user.TelegramId, newFreebie, replyMarkup : markups.GetSettingsMarkup(user)); }
public abstract Task Execute(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups);