Ejemplo n.º 1
0
        public override async Task Execute(Message message, TelegramBotClient botClient, Microsoft.Extensions.Configuration.IConfiguration configuration)
        {
            var chatId = message.Chat.Id;

            using (var db = new DbNorthwind())
            {
                var query = await db.LastQuery
                            .FirstOrDefaultAsync(w => w.ChatId == chatId.ToString());

                if (query != null)
                {
                    if (query.IsWatching == 1)
                    {
                        ReplyKeyboardMarkup ReplyKeyboard = new[]
                        {
                            new [] { "Помощь", "Поиск по категориям" }
                        };
                        ReplyKeyboard.ResizeKeyboard = true;

                        query.IsWatching = 0;
                        await db.UpdateAsync(query);

                        await botClient.SendTextMessageAsync(chatId, $"Автоматические уведомления по запрсу \"{query.Query}\" были отключены.\nМожете делать новые запросы", replyMarkup : ReplyKeyboard);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public override async Task Execute(Message message, TelegramBotClient botClient, Microsoft.Extensions.Configuration.IConfiguration configuration)
        {
            await AddInQueryAsync(message.Chat.Id.ToString(), message.Text);

            using (var db = new DbNorthwind())
            {
                var chatId = message.Chat.Id;
                var query  = await db.LastQuery
                             .FirstOrDefaultAsync(w => w.ChatId == chatId.ToString());

                if (query != null)
                {
                    if (query.IsWatching == 1)
                    {
                        query.IsWatching = 0;
                        await db.UpdateAsync(query);

                        await botClient.SendTextMessageAsync(chatId, $"Уведомления по старому запросу \"{query.Query}\" были отключены");
                    }
                }

                var queryListAnd = message.Text.ToLower().Split(" и ").ToList();
                var queryListOr  = message.Text.ToLower().Split(" или ").ToList();
                Console.WriteLine(chatId);
                var categoryName = "";

                categoryName = (await db.Chats.FirstOrDefaultAsync(f => f.ChatId == chatId.ToString())).CategorySearch;


                var reslist = new List <WeaponList>();

                if (queryListAnd.Count == queryListOr.Count)
                {
                    reslist = await GetQuery(false, false, new List <string>(), message.Text, categoryName);
                }
                else if (queryListAnd.Count > queryListOr.Count)
                {
                    reslist = await GetQuery(true, false, queryListAnd, message.Text, categoryName);
                }
                else
                {
                    reslist = await GetQuery(false, true, queryListOr, message.Text, categoryName);
                }



                var ggg = reslist.Select(s => s.Text).Distinct()
                          .Count();



                ReplyKeyboardMarkup keyboard4 = new[]
                {
                    new [] { "Показать результат", "Поиск по категориям" },
                    new[] { "Помощь", "Вкл.авто уведомление", }
                };
                keyboard4.ResizeKeyboard = true;


                var category = (await db.Chats.FirstOrDefaultAsync(f => f.ChatId == chatId.ToString())).CategorySearch;


                if (ggg == 0)
                {
                    ReplyKeyboardMarkup ReplyKeyboard = new[]
                    {
                        new[] { "Поиск по категориям", "Помощь" },
                    };
                    ReplyKeyboard.ResizeKeyboard = true;
                    if (category.IsNullOrEmpty())
                    {
                        await botClient.SendTextMessageAsync(chatId,
                                                             $@"Количество найденных лотов: {ggg} Нажми «Показать результат» (в меню) либо сделай новый запрос.",
                                                             replyMarkup : ReplyKeyboard);
                    }
                    else
                    {
                        await botClient.SendTextMessageAsync(chatId,
                                                             $@"Количество найденных лотов: {ggg} Нажми «Показать результат» (в меню) либо сделай новый запрос."
                                                             + Environment.NewLine + $"Поиск сделан по категории : '{category}'",
                                                             replyMarkup : ReplyKeyboard);
                    }
                }
                else
                {
                    ReplyKeyboardMarkup ReplyKeyboard = new[]
                    {
                        new[] { "Показать результат" },
                        new[] { "Поиск по категориям", "Помощь" },
                    };
                    ReplyKeyboard.ResizeKeyboard = true;
                    if (category.IsNullOrEmpty())
                    {
                        await botClient.SendTextMessageAsync(chatId,
                                                             $@"Количество найденных лотов: {ggg} Нажми «Показать результат» (в меню) либо сделай новый запрос.", replyMarkup : ReplyKeyboard);
                    }
                    else
                    {
                        await botClient.SendTextMessageAsync(chatId,
                                                             $@"Количество найденных лотов: {ggg} Нажми «Показать результат» (в меню) либо сделай новый запрос."
                                                             + Environment.NewLine + $"Поиск сделан по категории : '{category}'", replyMarkup : ReplyKeyboard);
                    }
                }



                await AddQuery(chatId.ToString(), message.Text, reslist);
            }
        }