Cancel.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Threading.Tasks;
  2. using CardCollector.Commands.Message.TextMessage;
  3. using CardCollector.DataBase.Entity;
  4. using CardCollector.Resources;
  5. using CardCollector.Session.Modules;
  6. using Telegram.Bot.Types;
  7. namespace CardCollector.Commands.CallbackQuery
  8. {
  9. public class Cancel : CallbackQueryCommand
  10. {
  11. protected override string CommandText => Command.cancel;
  12. public override async Task Execute()
  13. {
  14. switch (User.Session.State)
  15. {
  16. case UserState.CollectionMenu:
  17. User.Session.DeleteModule<CollectionModule>();
  18. break;
  19. case UserState.ShopMenu:
  20. User.Session.DeleteModule<ShopModule>();
  21. break;
  22. case UserState.AuctionMenu:
  23. User.Session.DeleteModule<AuctionModule>();
  24. break;
  25. case UserState.CombineMenu:
  26. User.Session.DeleteModule<CombineModule>();
  27. break;
  28. case UserState.ProductMenu:
  29. User.Session.DeleteModule<AuctionModule>();
  30. break;
  31. case UserState.Default:
  32. User.Session.GetModule<DefaultModule>().Reset();
  33. break;
  34. }
  35. User.Session.State = UserState.Default;
  36. EnterEmoji.RemoveFromQueue(User.Id);
  37. EnterGemsPrice.RemoveFromQueue(User.Id);
  38. await User.ClearChat();
  39. }
  40. public Cancel() { }
  41. public Cancel(UserEntity user, Update update) : base(user, update) { }
  42. }
  43. }