ShowCollectionStickers.cs 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. using System.Threading.Tasks;
  2. using CardCollector.Controllers;
  3. using CardCollector.DataBase.Entity;
  4. using CardCollector.Resources;
  5. using CardCollector.Session.Modules;
  6. using Telegram.Bot.Types;
  7. using Telegram.Bot.Types.Enums;
  8. namespace CardCollector.Commands.InlineQuery
  9. {
  10. public class ShowCollectionStickers : InlineQueryCommand
  11. {
  12. public override async Task Execute()
  13. {
  14. // Получаем список стикеров
  15. var stickersList = await User.GetStickersList(Query);
  16. var results = (await User.Session.GetModule<FiltersModule>()
  17. .ApplyTo(stickersList)).ToTelegramResults(Command.select_sticker);
  18. // Посылаем пользователю ответ на его запрос
  19. await MessageController.AnswerInlineQuery(InlineQueryId, results);
  20. }
  21. protected internal override bool IsMatches(UserEntity user, Update update)
  22. {
  23. return update.InlineQuery?.ChatType is ChatType.Sender && user.Session.State == UserState.CollectionMenu;
  24. }
  25. public ShowCollectionStickers() { }
  26. public ShowCollectionStickers(UserEntity user, Update update) : base(user, update) { }
  27. }
  28. }