ShowSample.cs 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.Threading.Tasks;
  2. using CardCollector.Controllers;
  3. using CardCollector.DataBase.Entity;
  4. using CardCollector.Resources;
  5. using Telegram.Bot.Types;
  6. using Telegram.Bot.Types.ReplyMarkups;
  7. namespace CardCollector.Commands.Message
  8. {
  9. /* Этот класс можно использовать для тестирования или наброски эскизов
  10. Команда "Показать пример" доступна только пользователям суровнем доступа "Разработчик" и выше
  11. PrivilegeLevel = 5 */
  12. public class ShowSample : Message
  13. {
  14. protected override string Command => MessageCommands.show_sample;
  15. public override async Task Execute()
  16. {
  17. await MessageController.SendMessage(User, "Текущие примененные фильтры:" +
  18. "\nАвтор (все)\nТир (все)\nЭмоция (все)\nСортировка(нет)" +
  19. "\n\nУстановите фильтры кнопками ниже:",
  20. new InlineKeyboardMarkup(new []
  21. {
  22. new [] {InlineKeyboardButton.WithCallbackData("Автор")},
  23. new [] {InlineKeyboardButton.WithCallbackData("Тир")},
  24. new [] {InlineKeyboardButton.WithCallbackData("Эмоция")},
  25. new [] {InlineKeyboardButton.WithCallbackData("Сортировка")},
  26. new [] {InlineKeyboardButton.WithCallbackData("Отмена")},
  27. new [] {InlineKeyboardButton.WithSwitchInlineQueryCurrentChat("Показать стикеры")},
  28. }));
  29. await MessageController.SendMessage(User, "Выберите автора из списка ниже:",
  30. new InlineKeyboardMarkup(new []
  31. {
  32. new [] {InlineKeyboardButton.WithCallbackData("Все")},
  33. new [] {InlineKeyboardButton.WithCallbackData("А"),InlineKeyboardButton.WithCallbackData("Б")},
  34. new [] {InlineKeyboardButton.WithCallbackData("В"),InlineKeyboardButton.WithCallbackData("Г"),},
  35. new [] {InlineKeyboardButton.WithCallbackData("Д"),InlineKeyboardButton.WithCallbackData("Е"),},
  36. new [] {InlineKeyboardButton.WithCallbackData("Ё"),InlineKeyboardButton.WithCallbackData("Ж"),},
  37. new [] {InlineKeyboardButton.WithCallbackData("З"),InlineKeyboardButton.WithCallbackData("З"),},
  38. new [] {InlineKeyboardButton.WithCallbackData("←"),InlineKeyboardButton.WithCallbackData("→")},
  39. new [] {InlineKeyboardButton.WithCallbackData("Отмена")},
  40. }));
  41. await MessageController.SendMessage(User, "Текущие примененные фильтры:" +
  42. "\nАвтор (Г)\nТир (все)\nЭмоция (все)\nСортировка(нет)" +
  43. "\n\nУстановите фильтры кнопками ниже:",
  44. new InlineKeyboardMarkup(new []
  45. {
  46. new [] {InlineKeyboardButton.WithCallbackData("Автор")},
  47. new [] {InlineKeyboardButton.WithCallbackData("Тир")},
  48. new [] {InlineKeyboardButton.WithCallbackData("Эмоция")},
  49. new [] {InlineKeyboardButton.WithCallbackData("Сортировка")},
  50. new [] {InlineKeyboardButton.WithCallbackData("Отмена")},
  51. new [] {InlineKeyboardButton.WithSwitchInlineQueryCurrentChat("Показать стикеры")},
  52. }));
  53. }
  54. /* Нужно помимо совпадения текста проверить пользователя на уровень привилегий */
  55. protected override bool IsMatches(string command)
  56. {
  57. return base.IsMatches(command) && User is not {PrivilegeLevel: < Constants.PROGRAMMER_PRIVILEGE_LEVEL};
  58. }
  59. public ShowSample(UserEntity user, Update update) : base(user, update) { }
  60. public ShowSample() { }
  61. }
  62. }