UploadSticker.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System.Threading.Tasks;
  2. using CardCollector.Controllers;
  3. using CardCollector.DataBase.Entity;
  4. using CardCollector.Resources;
  5. using CardCollector.Session.Modules;
  6. using Telegram.Bot.Types;
  7. using Telegram.Bot.Types.Enums;
  8. namespace CardCollector.Commands.Message
  9. {
  10. public class UploadSticker : MessageCommand
  11. {
  12. protected override string CommandText => "";
  13. public override async Task Execute()
  14. {
  15. var stickerId = Update.Message?.Sticker?.FileId;
  16. var module = User.Session.GetModule<UploadedStickersModule>();
  17. module.StickersList.Add(new StickerEntity {Id = stickerId});
  18. var message = $"{Messages.upload_your_stickers}" +
  19. $"\n{Messages.uploaded_count} {module.Count}";
  20. foreach (var (stickerEntity, i) in module.StickersList.WithIndex())
  21. message += $"\n{Text.sticker} {i + 1}: {stickerEntity.Id}";
  22. await MessageController.EditMessage(User, module.MessageId, message, Keyboard.EndStickerUpload);
  23. }
  24. protected internal override bool IsMatches(UserEntity user, Update update)
  25. {
  26. return user.Session.State == UserState.UploadSticker && update.Message?.Type == MessageType.Sticker;
  27. }
  28. public UploadSticker() { }
  29. public UploadSticker(UserEntity user, Update update) : base(user, update) { }
  30. }
  31. }