Shop.cs 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. using System.Threading.Tasks;
  2. using CardCollector.Controllers;
  3. using CardCollector.DataBase.Entity;
  4. using CardCollector.DataBase.EntityDao;
  5. using CardCollector.Resources;
  6. using CardCollector.Session.Modules;
  7. using Telegram.Bot.Types;
  8. namespace CardCollector.Commands.Message.TextMessage
  9. {
  10. /* Реализует команду "Магазин" */
  11. public class Shop : MessageCommand
  12. {
  13. protected override string CommandText => Text.shop;
  14. public override async Task Execute()
  15. {
  16. /* Очищаем чат с пользователем */
  17. await User.ClearChat();
  18. /* Переводим состояние пользователя в меню магазина */
  19. User.Session.State = UserState.ShopMenu;
  20. User.Session.InitNewModule<ShopModule>();
  21. var haveSpecialOffers = await (await ShopDao.GetSpecialPositions())
  22. .AnyAsync(async offer => offer.IsInfinite || !await SpecialOfferUsersDao.NowUsed(User.Id, offer.Id));
  23. var message = await MessageController.SendMessage(User, Messages.shop_message, Keyboard.ShopKeyboard(haveSpecialOffers));
  24. User.Session.Messages.Add(message.MessageId);
  25. }
  26. public Shop() { }
  27. public Shop(UserEntity user, Update update) : base(user, update) { }
  28. }
  29. }