SelectTrader.cs 1.2 KB

123456789101112131415161718192021222324252627282930
  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.ChosenInlineResult
  9. {
  10. public class SelectTrader : ChosenInlineResultCommand
  11. {
  12. protected override string CommandText => Command.buy_sticker;
  13. public override async Task Execute()
  14. {
  15. var productId = int.Parse(InlineResult.Split('=')[1]);
  16. var product = await AuctionDao.GetProduct(productId);
  17. var module = User.Session.GetModule<AuctionModule>();
  18. if (module.SelectedSticker is not {} sticker) return;
  19. module.SelectedPosition = product;
  20. var discount = 1.0 - await User.AuctionDiscount() / 100.0;
  21. await MessageController.EditMessage(User, sticker.ToString(module.MaxCount),
  22. Keyboard.GetAuctionProductKeyboard(module, discount, User.Id == product.Trader));
  23. }
  24. public SelectTrader() { }
  25. public SelectTrader(UserEntity user, Update update) : base(user, update) { }
  26. }
  27. }