Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        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");
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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();
        }
Beispiel #7
0
        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));
        }
Beispiel #9
0
 public abstract Task Execute(Message message, TelegramBotClient client, ApplicationContext context, TelegramMarkupsService markups);