SpecialOffers.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. using System.Linq;
  2. using System.Threading.Tasks;
  3. using CardCollector.Controllers;
  4. using CardCollector.DataBase.Entity;
  5. using CardCollector.DataBase.EntityDao;
  6. using CardCollector.Resources;
  7. using Telegram.Bot.Types;
  8. namespace CardCollector.Commands.CallbackQuery
  9. {
  10. public class SpecialOffers : CallbackQueryCommand
  11. {
  12. protected override string CommandText => Command.special_offers;
  13. protected override bool ClearMenu => false;
  14. protected override bool AddToStack => true;
  15. public override async Task Execute()
  16. {
  17. var specialOffers = await (await ShopDao.GetSpecialPositions())
  18. .WhereAsync(async offer => offer.IsInfinite || !await SpecialOfferUsersDao.NowUsed(User.Id, offer.Id));
  19. var shopEntities = specialOffers.ToList();
  20. if (shopEntities.Count < 1)
  21. await MessageController.AnswerCallbackQuery(User, CallbackQueryId, Messages.offers_not_found, true);
  22. else
  23. await MessageController.EditMessage(User, CallbackMessageId, Messages.available_offers,
  24. Keyboard.SpecialOffersKeyboard(shopEntities));
  25. }
  26. public SpecialOffers() { }
  27. public SpecialOffers(UserEntity user, Update update) : base(user, update) { }
  28. }
  29. }