Esempio n. 1
0
        static async void Bot_OnCallbackQuery(object sender, CallbackQueryEventArgs e)
        {
            if (e.CallbackQuery.Id != null)
            {
                if (e.CallbackQuery.Message.Caption != "****All RESERVED****" && (Convert.ToInt16(Convert.ToString(Regex.Match(input: e.CallbackQuery.Message.Caption, pattern: @"[0-9]+"))) > 1 && !buyer.Contains(e.CallbackQuery.From.Username)))
                {
                    buyer.Enqueue(e.CallbackQuery.From.Username);
                    product.Enqueue(e.CallbackQuery.Message.Photo[0].FileId);
                    botClient.EditMessageCaptionAsync(chatId: e.CallbackQuery.Message.Chat.Id,
                                                      messageId: e.CallbackQuery.Message.MessageId,
                                                      caption: "Available in store - " + Convert.ToString(Convert.ToInt16(Convert.ToString(Regex.Match(input: e.CallbackQuery.Message.Caption, pattern: @"[0-9]+"))) - 1),
                                                      replyMarkup: new InlineKeyboardMarkup(inlineKeyboardButton: InlineKeyboardButton.WithCallbackData(text: "order", callbackData: "yan")
                                                                                            )
                                                      );
                    botClient.AnswerCallbackQueryAsync(callbackQueryId: e.CallbackQuery.Id, showAlert: false, text: "Your Order has been requested 👍");
                }
                else if (e.CallbackQuery.Message.Caption != "****All RESERVED****" && (Convert.ToInt16(Convert.ToString(Regex.Match(input: e.CallbackQuery.Message.Caption, pattern: @"[0-9]+"))) == 1 && !buyer.Contains(e.CallbackQuery.From.Username)))
                {
                    buyer.Enqueue(e.CallbackQuery.From.Username);
                    product.Enqueue(e.CallbackQuery.Message.Photo[0].FileId);

                    botClient.EditMessageCaptionAsync(chatId: e.CallbackQuery.Message.Chat.Id,
                                                      messageId: e.CallbackQuery.Message.MessageId,
                                                      caption: "****All RESERVED****",
                                                      replyMarkup: new InlineKeyboardMarkup(inlineKeyboardButton: InlineKeyboardButton.WithCallbackData(text: "order", callbackData: "h")
                                                                                            )

                                                      );

                    botClient.AnswerCallbackQueryAsync(callbackQueryId: e.CallbackQuery.Id, showAlert: false, text: "Your Order has been requested 👍");
                }
                else if (e.CallbackQuery.Message.Caption == "****All RESERVED****")
                {
                    botClient.AnswerCallbackQueryAsync(callbackQueryId: e.CallbackQuery.Id, showAlert: false, text: "Sorry all units are currently reserved 😔");
                }
                else
                {
                    botClient.AnswerCallbackQueryAsync(callbackQueryId: e.CallbackQuery.Id, showAlert: false, text: "Your previose order is Still inprogress 🥶");
                }
            }
        }
Esempio n. 2
0
        private static async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var data    = e.CallbackQuery.Data;
            var message = e.CallbackQuery.Message;

            log.Query(e);

            try
            {
                switch (data)
                {
                default:
                    return;

                case "🛒 Связаться с продавцом 🛒":
                    string seller = db.GetUserPhone(e.CallbackQuery.From.Id);
                    if (seller[0] == '+')
                    {
                        await bot.SendContactAsync(e.CallbackQuery.From.Id, seller, "Продавец");
                    }
                    else
                    {
                        await bot.SendTextMessageAsync(e.CallbackQuery.From.Id, '@' + seller);
                    }
                    return;

                case "⭐️ В избранное ⭐️":
                    db.AddSelectedOfferToFavorites(e.CallbackQuery.From.Id);
                    return;

                case "PS4 ⚪️":
                    db.SetPlatform(0, e.CallbackQuery.From.Id, true);
                    break;

                case "Xbox ⚪️":
                    db.SetPlatform(1, e.CallbackQuery.From.Id, true);
                    break;

                case "Switch ⚪️":
                    db.SetPlatform(2, e.CallbackQuery.From.Id, true);
                    break;

                case "Изменить название":
                    await bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id,
                                                       "Отправьте название игры в следующем сообщении.", true);

                    db.SetAwaitInfoType(e.CallbackQuery.From.Id, (int)awaitInfoType.name);
                    return;

                case "Указать цену":
                    await bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id,
                                                       "Отправьте цену игры в следующем сообщении.", true);

                    db.SetAwaitInfoType(e.CallbackQuery.From.Id, (int)awaitInfoType.price);
                    return;

                case "Обмен":
                    if (db.GetExchange(e.CallbackQuery.From.Id, true) != "")
                    {
                        db.SetExchange("", e.CallbackQuery.From.Id, true);
                        break;
                    }
                    else
                    {
                        await bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id,
                                                           "Отправьте названия желаемых игр в следующем сообщении.", true);

                        db.SetAwaitInfoType(e.CallbackQuery.From.Id, (int)awaitInfoType.exchange);
                        return;
                    }

                case "Загрузить фото":
                    await bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id,
                                                       "Отправьте фотогрфию в следующем сообщении.", true);

                    db.SetAwaitInfoType(e.CallbackQuery.From.Id, (int)awaitInfoType.photo);
                    return;

                case "✅ Сохранить ✅":
                    await bot.DeleteMessageAsync(e.CallbackQuery.Message.Chat.Id, db.GetEditMessageId(e.CallbackQuery.From.Id));

                    await bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "✅ Товар добавлен!\n\nℹ️ Чтобы просмотреть список ваших товаров, выберите пункт \"Мои товары\".");

                    return;

                case "❌ Удалить ❌":
                    db.DeleteOffer(e.CallbackQuery.From.Id);
                    await bot.DeleteMessageAsync(e.CallbackQuery.Message.Chat.Id, db.GetEditMessageId(e.CallbackQuery.From.Id));

                    await bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "✅ Товар удален!\n\nℹ️ Чтобы просмотреть список ваших товаров, выберите пункт \"Мои товары\".");

                    return;

                case "❌ Удалить из избранного ❌":
                    db.DeleteOfferFromFav(db.GetEditOfferId(e.CallbackQuery.From.Id));
                    await bot.DeleteMessageAsync(e.CallbackQuery.Message.Chat.Id, db.GetEditMessageId(e.CallbackQuery.From.Id));

                    await bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "✅ Товар удален из избранного!\n\nℹ️ Чтобы просмотреть список избранного, выберите пункт \"Избранное\".");

                    return;
                }
                await bot.EditMessageCaptionAsync(message.Chat.Id,
                                                  message.MessageId,
                                                  caption : db.GetCaption(e.CallbackQuery.From.Id, true),
                                                  replyMarkup : IReplies.editKeyboard(db.GetOfferPlatform(e.CallbackQuery.From.Id)));
            }
            catch (Exception e3)
            {
                log.Error(e3.Message);
                return;
            }
        }