Explorar el Código

Refactore code and bug fix

Tigran hace 3 años
padre
commit
b057f1671a
Se han modificado 29 ficheros con 55 adiciones y 107 borrados
  1. 1 1
      CardCollector/Commands/CallbackQuery/AuthorsMenu.cs
  2. 2 1
      CardCollector/Commands/CallbackQuery/BuyAuthorPackMenu.cs
  3. 1 1
      CardCollector/Commands/CallbackQuery/BuyCoins.cs
  4. 1 1
      CardCollector/Commands/CallbackQuery/BuyPack.cs
  5. 1 2
      CardCollector/Commands/CallbackQuery/Combine.cs
  6. 5 1
      CardCollector/Commands/CallbackQuery/CombineMenu.cs
  7. 1 1
      CardCollector/Commands/CallbackQuery/ConfirmBuying.cs
  8. 1 1
      CardCollector/Commands/CallbackQuery/ConfirmExchange.cs
  9. 1 1
      CardCollector/Commands/CallbackQuery/ConfirmationSelling.cs
  10. 1 1
      CardCollector/Commands/CallbackQuery/DeleteCombine.cs
  11. 1 1
      CardCollector/Commands/CallbackQuery/EndUploadStickers.cs
  12. 1 1
      CardCollector/Commands/CallbackQuery/OpenAuthorPackMenu.cs
  13. 1 1
      CardCollector/Commands/CallbackQuery/PackInfo.cs
  14. 1 1
      CardCollector/Commands/CallbackQuery/SelectEmoji.cs
  15. 1 1
      CardCollector/Commands/CallbackQuery/SelectPrice.cs
  16. 1 0
      CardCollector/Commands/CallbackQuery/SelectShopPack.cs
  17. 1 1
      CardCollector/Commands/CallbackQuery/SelectSort.cs
  18. 1 1
      CardCollector/Commands/CallbackQuery/SelectTier.cs
  19. 1 1
      CardCollector/Commands/CallbackQuery/SpecialOffers.cs
  20. 2 1
      CardCollector/Commands/ChosenInlineResult/StickerInfo.cs
  21. 2 2
      CardCollector/Commands/Message/CreateToken.cs
  22. 3 3
      CardCollector/Commands/Message/EnterEmoji.cs
  23. 2 2
      CardCollector/Commands/Message/EnterGemsExchange.cs
  24. 2 2
      CardCollector/Commands/Message/EnterGemsPrice.cs
  25. 6 6
      CardCollector/Commands/Message/UploadFile.cs
  26. 1 1
      CardCollector/Commands/Message/UploadSticker.cs
  27. 10 65
      CardCollector/Controllers/MessageController.cs
  28. 1 1
      CardCollector/Resources/Keyboard.cs
  29. 2 5
      CardCollector/Session/Modules/CombineModule.cs

+ 1 - 1
CardCollector/Commands/CallbackQuery/AuthorsMenu.cs

@@ -24,7 +24,7 @@ namespace CardCollector.Commands.CallbackQuery
                 await MessageController.AnswerCallbackQuery(User, CallbackQueryId, Messages.page_not_found);
             /* Заменяем сообщение меню на сообщение со списком */
             else
-                await MessageController.EditMessage(User, Messages.choose_author,
+                await MessageController.SendMessage(User, Messages.choose_author,
                     Keyboard.GetAuthorsKeyboard(list, Keyboard.GetPagePanel(page, totalCount, CommandText)));
         }
 

+ 2 - 1
CardCollector/Commands/CallbackQuery/BuyAuthorPackMenu.cs

@@ -11,6 +11,7 @@ namespace CardCollector.Commands.CallbackQuery
     {
         protected override string CommandText => Command.buy_author_pack_menu;
         protected override bool AddToStack => true;
+        protected override bool ClearStickers => true;
         
         public override async Task Execute()
         {
@@ -21,7 +22,7 @@ namespace CardCollector.Commands.CallbackQuery
             if (packs.Count == 0)
                 await MessageController.AnswerCallbackQuery(User, CallbackQueryId, Messages.page_not_found);
             else
-                await MessageController.EditMessage(User, Messages.choose_author,
+                await MessageController.SendMessage(User, Messages.choose_author,
                     Keyboard.GetShopPacksKeyboard(packs, Keyboard.GetPagePanel(page, totalCount, CommandText)));
         }
 

+ 1 - 1
CardCollector/Commands/CallbackQuery/BuyCoins.cs

@@ -16,7 +16,7 @@ namespace CardCollector.Commands.CallbackQuery
         {
             EnterGemsExchange.AddToQueue(User.Id);
             var module = User.Session.GetModule<ShopModule>();
-            await MessageController.EditMessage(User,
+            await MessageController.SendMessage(User,
                 $"{Messages.exchange_mesage}" +
                 $"\n{Messages.gems_exchange_count} {module.EnteredExchangeSum}{Text.gem}" +
                 $"\n{Messages.coins_exchange_count} {module.EnteredExchangeSum * 150}{Text.coin}" +

+ 1 - 1
CardCollector/Commands/CallbackQuery/BuyPack.cs

@@ -13,7 +13,7 @@ namespace CardCollector.Commands.CallbackQuery
         
         public override async Task Execute()
         {
-            await MessageController.EditMessage(User, Messages.choose_option, Keyboard.ShopPacksKeyboard);
+            await MessageController.SendMessage(User, Messages.choose_option, Keyboard.ShopPacksKeyboard);
         }
 
         public BuyPack() { }

+ 1 - 2
CardCollector/Commands/CallbackQuery/Combine.cs

@@ -10,7 +10,6 @@ namespace CardCollector.Commands.CallbackQuery
     public class Combine : CallbackQueryCommand
     {
         protected override string CommandText => Command.combine;
-        protected override bool ClearStickers => true;
 
         public override async Task Execute()
         {
@@ -22,7 +21,7 @@ namespace CardCollector.Commands.CallbackQuery
                 combineModule.Count = collectionModule.Count;
             }
             var selectedSticker = combineModule.SelectedSticker;
-            var combineCount = combineModule.GetCombineCount();
+            var combineCount = combineModule.CombineCount;
             if (combineCount == Constants.COMBINE_COUNT)
                 await MessageController.AnswerCallbackQuery(User, CallbackQueryId, Messages.cant_combine, true);
             else

+ 5 - 1
CardCollector/Commands/CallbackQuery/CombineMenu.cs

@@ -11,11 +11,15 @@ namespace CardCollector.Commands.CallbackQuery
     {
         protected override string CommandText => "";
         protected override bool AddToStack => true;
+        protected override bool ClearStickers => true;
 
         public override async Task Execute()
         {
             var combineModule = User.Session.GetModule<CombineModule>();
-            await MessageController.EditMessage(User, combineModule.ToString(), Keyboard.GetCombineKeyboard(combineModule));
+            if (combineModule.CombineCount == 0)
+                await new Back(User, Update).Execute();
+            else 
+                await MessageController.SendMessage(User, combineModule.ToString(), Keyboard.GetCombineKeyboard(combineModule));
         }
 
         protected internal override bool IsMatches(UserEntity user, Update update) => false;

+ 1 - 1
CardCollector/Commands/CallbackQuery/ConfirmBuying.cs

@@ -22,7 +22,7 @@ namespace CardCollector.Commands.CallbackQuery
                 var text = $"{Messages.confirm_buying}" +
                            $"\n{auctionModule.Count}{Text.items} {Text.per} {price}{Text.gem}" +
                            $"\n{Messages.are_you_sure}";
-                await MessageController.EditMessage(User, text, Keyboard.GetConfirmationKeyboard(Command.buy_sticker));
+                await MessageController.SendMessage(User, text, Keyboard.GetConfirmationKeyboard(Command.buy_sticker));
             }
         }
 

+ 1 - 1
CardCollector/Commands/CallbackQuery/ConfirmExchange.cs

@@ -20,7 +20,7 @@ namespace CardCollector.Commands.CallbackQuery
             {
                 User.Cash.Gems -= module.EnteredExchangeSum;
                 User.Cash.Coins += module.EnteredExchangeSum * 150;
-                await MessageController.EditMessage(User,
+                await MessageController.SendMessage(User,
                     $"{Messages.you_got} {module.EnteredExchangeSum * 150}{Text.coin} {Text.per} {module.EnteredExchangeSum}{Text.gem}");
             }
         }

+ 1 - 1
CardCollector/Commands/CallbackQuery/ConfirmationSelling.cs

@@ -24,7 +24,7 @@ namespace CardCollector.Commands.CallbackQuery
                 User.Stickers[collectionModule.SelectedSticker.Md5Hash].Count -= collectionModule.Count;
                 AuctionController.SellCard(User.Id, collectionModule.SelectedSticker.Id, collectionModule.SellPrice,
                     collectionModule.Count);
-                await MessageController.EditMessage(User, Messages.successfully_selling);
+                await MessageController.SendMessage(User, Messages.successfully_selling);
             }
         }
         

+ 1 - 1
CardCollector/Commands/CallbackQuery/DeleteCombine.cs

@@ -20,7 +20,7 @@ namespace CardCollector.Commands.CallbackQuery
             module.CombineList.Remove(sticker);
             if (module.CombineList.Count == 0)
                 await new Back(User, Update).PrepareAndExecute();
-            else await MessageController.EditMessage(User, module.ToString(), Keyboard.GetCombineKeyboard(module));
+            else await MessageController.SendMessage(User, module.ToString(), Keyboard.GetCombineKeyboard(module));
         }
 
         public DeleteCombine() { }

+ 1 - 1
CardCollector/Commands/CallbackQuery/EndUploadStickers.cs

@@ -12,7 +12,7 @@ namespace CardCollector.Commands.CallbackQuery
 
         public override async Task Execute()
         {
-            await MessageController.EditMessage(User, Messages.upload_your_file, Keyboard.BackKeyboard);
+            await MessageController.SendMessage(User, Messages.upload_your_file, Keyboard.BackKeyboard);
         }
 
         public EndUploadStickers() { }

+ 1 - 1
CardCollector/Commands/CallbackQuery/OpenAuthorPackMenu.cs

@@ -35,7 +35,7 @@ namespace CardCollector.Commands.CallbackQuery
                 if (packs.Count == 0)
                     await MessageController.AnswerCallbackQuery(User, CallbackQueryId, Messages.page_not_found);
                 else
-                    await MessageController.EditMessage(User, Messages.choose_author,
+                    await MessageController.SendMessage(User, Messages.choose_author,
                         await Keyboard.GetUserPacksKeyboard(packs, Keyboard.GetPagePanel(page, totalCount, CommandText)));
             }
         }

+ 1 - 1
CardCollector/Commands/CallbackQuery/PackInfo.cs

@@ -12,7 +12,7 @@ namespace CardCollector.Commands.CallbackQuery
 
         public override async Task Execute()
         {
-            await MessageController.EditMessage(User, Messages.pack_info, Keyboard.BackKeyboard);
+            await MessageController.SendMessage(User, Messages.pack_info, Keyboard.BackKeyboard);
         }
 
         public PackInfo() { }

+ 1 - 1
CardCollector/Commands/CallbackQuery/SelectEmoji.cs

@@ -14,7 +14,7 @@ namespace CardCollector.Commands.CallbackQuery
         public override async Task Execute()
         {
             EnterEmoji.AddToQueue(User.Id);
-            await MessageController.EditMessage(User, Messages.enter_emoji, Keyboard.EmojiOptions);
+            await MessageController.SendMessage(User, Messages.enter_emoji, Keyboard.EmojiOptions);
         }
 
         public SelectEmoji() { }

+ 1 - 1
CardCollector/Commands/CallbackQuery/SelectPrice.cs

@@ -12,7 +12,7 @@ namespace CardCollector.Commands.CallbackQuery
 
         public override async Task Execute()
         {
-            await MessageController.EditMessage(User, Messages.choose_price, 
+            await MessageController.SendMessage(User, Messages.choose_price, 
                 User.Session.State == UserState.AuctionMenu ? Keyboard.GemsPriceOptions : Keyboard.CoinsPriceOptions);
         }
 

+ 1 - 0
CardCollector/Commands/CallbackQuery/SelectShopPack.cs

@@ -12,6 +12,7 @@ namespace CardCollector.Commands.CallbackQuery
     {
         protected override string CommandText => Command.select_shop_pack;
         protected override bool AddToStack => true;
+        protected override bool ClearStickers => true;
 
         public override async  Task Execute()
         {

+ 1 - 1
CardCollector/Commands/CallbackQuery/SelectSort.cs

@@ -12,7 +12,7 @@ namespace CardCollector.Commands.CallbackQuery
 
         public override async Task Execute()
         {
-            await MessageController.EditMessage(User, Messages.choose_sort, Keyboard.SortOptions);
+            await MessageController.SendMessage(User, Messages.choose_sort, Keyboard.SortOptions);
         }
 
         public SelectSort() { }

+ 1 - 1
CardCollector/Commands/CallbackQuery/SelectTier.cs

@@ -12,7 +12,7 @@ namespace CardCollector.Commands.CallbackQuery
 
         public override async Task Execute()
         {
-            await MessageController.EditMessage(User, Messages.choose_tier, Keyboard.TierOptions);
+            await MessageController.SendMessage(User, Messages.choose_tier, Keyboard.TierOptions);
         }
         
         public SelectTier() { }

+ 1 - 1
CardCollector/Commands/CallbackQuery/SpecialOffers.cs

@@ -21,7 +21,7 @@ namespace CardCollector.Commands.CallbackQuery
             if (shopEntities.Count < 1)
                 await MessageController.AnswerCallbackQuery(User, CallbackQueryId, Messages.offers_not_found, true);
             else
-                await MessageController.EditMessage(User, Messages.available_offers, Keyboard.SpecialOffersKeyboard(shopEntities));
+                await MessageController.SendMessage(User, Messages.available_offers, Keyboard.SpecialOffersKeyboard(shopEntities));
         }
 
         public SpecialOffers() { }

+ 2 - 1
CardCollector/Commands/ChosenInlineResult/StickerInfo.cs

@@ -15,7 +15,8 @@ namespace CardCollector.Commands.ChosenInlineResult
         {
             var hash = InlineResult.Split('=')[1];
             var sticker = await StickerDao.GetByHash(hash);
-            await MessageController.EditMessage(User, sticker.ToString(), Keyboard.StickerInfoKeyboard);
+            await MessageController.SendSticker(User, sticker.Id);
+            await MessageController.SendMessage(User, sticker.ToString(), Keyboard.StickerInfoKeyboard);
         }
 
         public StickerInfo() { }

+ 2 - 2
CardCollector/Commands/Message/CreateToken.cs

@@ -21,8 +21,8 @@ namespace CardCollector.Commands.Message
             var token = GenerateNewToken();
             await SessionTokenDao.AddNew(User.Id, token);
             var loginLink = $"{site}login?token={token}";
-            await MessageController.SendTextWithHtml(User,
-                $"<a href=\"{loginLink}\">{Messages.your_login_link}</a>", Keyboard.LoginKeyboard(loginLink));
+            await MessageController.SendMessage(User, $"<a href=\"{loginLink}\">{Messages.your_login_link}</a>",
+                Keyboard.LoginKeyboard(loginLink), ParseMode.Html);
         }
 
         private string GenerateNewToken()

+ 3 - 3
CardCollector/Commands/Message/EnterEmoji.cs

@@ -25,10 +25,10 @@ namespace CardCollector.Commands.Message
             var input = Update.Message!.Text;
             /* если пользователь ввел что-то кроме эмодзи */
             if (!Regex.IsMatch(input!, onlyEmojiPattern))
-                await MessageController.EditMessage(User, Messages.please_enter_emoji, Keyboard.EmojiOptions);
+                await MessageController.SendMessage(User, Messages.please_enter_emoji, Keyboard.EmojiOptions);
             /* если пользователь ввел несколько эмодзи или эмодзи и текст */
             else if (!Regex.IsMatch(input, oneEmojiPattern))
-                await MessageController.EditMessage(User, Messages.enter_only_one_emoji,
+                await MessageController.SendMessage(User, Messages.enter_only_one_emoji,
                     Keyboard.EmojiOptions);
             else
             {
@@ -37,7 +37,7 @@ namespace CardCollector.Commands.Message
                 /* Формируем сообщение с имеющимися фильтрами у пользователя */
                 var text = filtersModule.ToString(User.Session.State);
                 /* Редактируем сообщение */
-                await MessageController.EditMessage(User, text, Keyboard.GetSortingMenu(User.Session.State));
+                await MessageController.SendMessage(User, text, Keyboard.GetSortingMenu(User.Session.State));
                 Queue.Remove(User.Id);
             }
         }

+ 2 - 2
CardCollector/Commands/Message/EnterGemsExchange.cs

@@ -18,7 +18,7 @@ namespace CardCollector.Commands.Message
         {
             var module = User.Session.GetModule<ShopModule>();
             if (!int.TryParse(Update.Message!.Text, out var sum) || sum < 0)
-                await MessageController.EditMessage(User,
+                await MessageController.SendMessage(User,
                     $"{Messages.exchange_mesage}" +
                     $"\n{Messages.gems_exchange_count} {module.EnteredExchangeSum}{Text.gem}" +
                     $"\n{Messages.coins_exchange_count} {module.EnteredExchangeSum * 150}{Text.coin}" +
@@ -27,7 +27,7 @@ namespace CardCollector.Commands.Message
             else
             {
                 module.EnteredExchangeSum = sum; 
-                await MessageController.EditMessage(User,
+                await MessageController.SendMessage(User,
                     $"{Messages.exchange_mesage}" +
                     $"\n{Messages.gems_exchange_count} {module.EnteredExchangeSum}{Text.gem}" +
                     $"\n{Messages.coins_exchange_count} {module.EnteredExchangeSum * 150}{Text.coin}" +

+ 2 - 2
CardCollector/Commands/Message/EnterGemsPrice.cs

@@ -20,14 +20,14 @@ namespace CardCollector.Commands.Message
             var module = User.Session.GetModule<CollectionModule>();
             if (!int.TryParse(Update.Message!.Text, out var price) || price < 0)
             {
-                await MessageController.EditMessage(User,
+                await MessageController.SendMessage(User,
                     $"{Messages.current_price} {module.SellPrice}{Text.gem}\n{Messages.please_enter_integer}",
                     Keyboard.AuctionPutCancelKeyboard);
             }
             else
             {
                 module.SellPrice = price;
-                await MessageController.EditMessage(User, $"{Messages.confirm_selling} {module.SellPrice}{Text.gem}:" +
+                await MessageController.SendMessage(User, $"{Messages.confirm_selling} {module.SellPrice}{Text.gem}:" +
                                                           $"\n{Messages.or_enter_another_sum}", Keyboard.AuctionPutCancelKeyboard);
             }
         }

+ 6 - 6
CardCollector/Commands/Message/UploadFile.cs

@@ -25,27 +25,27 @@ namespace CardCollector.Commands.Message
             try
             {
                 /* Соообщаем, что начали загрузку файла */
-                await MessageController.EditMessage(User, Messages.downloading_file);
+                await MessageController.SendMessage(User, Messages.downloading_file);
                 /* Загружаем файл */
                 var fileName = await Utilities.DownloadFile(Update.Message?.Document);
                 /* Сообщаем пользователю, что читаем документ */
-                await MessageController.EditMessage(User, Messages.reading_document);
+                await MessageController.SendMessage(User, Messages.reading_document);
                 /* Парсим файл */
                 var stickersList = await ParseExcelFile(fileName, module.StickersList);
                 /* Сообщаем пользователю, что удаляем файлы */
-                await MessageController.EditMessage(User, Messages.deleting_files);
+                await MessageController.SendMessage(User, Messages.deleting_files);
                 File.Delete(fileName);
                 /* Сообщаем пользователю, что загружаем стикеры */
-                await MessageController.EditMessage(User, Messages.uploading_stickers);
+                await MessageController.SendMessage(User, Messages.uploading_stickers);
                 var packInfo = await PacksDao.AddNew(stickersList.First().Author);
                 await StickerDao.AddRange(stickersList, packInfo.Id);
                 /* Сообщаем пользователю, что стикеры загружены */
-                await MessageController.EditMessage(User, Messages.stickers_succesfully_uploaded);
+                await MessageController.SendMessage(User, Messages.stickers_succesfully_uploaded);
             }
             catch (Exception e)
             {
                 /* Сообщаем пользователю, что произошла ошибка */
-                await MessageController.EditMessage(User, $"{Messages.unexpected_exception}: {e.Message}");
+                await MessageController.SendMessage(User, $"{Messages.unexpected_exception}: {e.Message}");
             }
         }
         

+ 1 - 1
CardCollector/Commands/Message/UploadSticker.cs

@@ -21,7 +21,7 @@ namespace CardCollector.Commands.Message
                           $"\n{Messages.uploaded_count} {module.Count}";
             foreach (var (stickerEntity, i) in module.StickersList.WithIndex())
                 message += $"\n{Text.sticker} {i + 1}: {stickerEntity.Id}";
-            await MessageController.EditMessage(User, message, Keyboard.EndStickerUpload);
+            await MessageController.SendMessage(User, message, Keyboard.EndStickerUpload);
         }
 
         protected internal override bool IsMatches(UserEntity user, Update update)

+ 10 - 65
CardCollector/Controllers/MessageController.cs

@@ -85,17 +85,19 @@ namespace CardCollector.Controllers
          user - пользователь, которому необходимо отправить сообщение
          message - текст сообщения
          keyboard - клавиатура, которую надо добавить к сообщению */
-        public static async Task<Message> SendMessage(UserEntity user, string message, IReplyMarkup keyboard = null)
+        public static async Task<Message> SendMessage(UserEntity user, string message, IReplyMarkup keyboard = null,
+            ParseMode? parseMode = null)
         {
             try
             {
                 if (!user.IsBlocked)
                 {
-                    if (user.Session.Messages.Count > 0 && (keyboard is null || keyboard is InlineKeyboardMarkup))
-                        return await EditMessage(user, message, (InlineKeyboardMarkup)keyboard, 
-                            user.Session.Messages.Last());
-                    var result = await Bot.Client.SendTextMessageAsync(user.ChatId, message, replyMarkup: keyboard,
-                        disableNotification: true);
+                    if (user.Session.Messages.Count > 0)
+                        return await Bot.Client.EditMessageTextAsync(user.ChatId, user.Session.Messages.Last(),
+                            message, parseMode, 
+                            replyMarkup: (InlineKeyboardMarkup)keyboard ?? InlineKeyboardMarkup.Empty());
+                    var result = await Bot.Client.SendTextMessageAsync(user.ChatId, message, parseMode,
+                        replyMarkup: keyboard, disableNotification: true);
                     user.Session?.Messages.Add(result.MessageId);
                     return result;
                 }
@@ -103,33 +105,15 @@ namespace CardCollector.Controllers
             catch (Exception e)
             {
                 LogOutWarning("Can't send text message " + e.Message);
-            }
-            return new Message();
-        }
-        
-        /* Метод для отправки сообщения с разметкой html
-         user - пользователь, которому необходимо отправить сообщение
-         message - текст сообщения
-         keyboard - клавиатура, которую надо добавить к сообщению */
-        public static async Task<Message> SendTextWithHtml(UserEntity user, string message, IReplyMarkup keyboard = null)
-        {
-            try
-            {
                 if (!user.IsBlocked)
                 {
-                    if (user.Session.Messages.Count > 0 && (keyboard is null || keyboard is InlineKeyboardMarkup))
-                        return await EditMessage(user, message, (InlineKeyboardMarkup)keyboard, 
-                            user.Session.Messages.Last(), ParseMode.Html);
-                    var result = await Bot.Client.SendTextMessageAsync(user.ChatId, message, ParseMode.Html,
+                    await user.ClearChat();
+                    var result = await Bot.Client.SendTextMessageAsync(user.ChatId, message, parseMode,
                         replyMarkup: keyboard, disableNotification: true);
                     user.Session?.Messages.Add(result.MessageId);
                     return result;
                 }
             }
-            catch (Exception e)
-            {
-                LogOutWarning("Can't send text message with html " + e.Message);
-            }
             return new Message();
         }
         
@@ -154,45 +138,6 @@ namespace CardCollector.Controllers
             }
             return new Message();
         }
-        
-        /* Метод для редактирования сообщения
-         user - пользователь, которому необходимо отредактировать сообщение
-         messageId - id сообщения
-         message - текст сообщения
-         keyboard - клавиатура, которую надо добавить к сообщению */
-        public static async Task<Message> EditMessage(UserEntity user, string message,
-            InlineKeyboardMarkup keyboard = null, int messageId = -1, ParseMode? parseMode = null)
-        {
-            try
-            {
-                if (!user.IsBlocked)
-                {
-                    var msgId = messageId != -1 ? messageId : user.Session.Messages.Last();
-                    return await Bot.Client.EditMessageTextAsync(user.ChatId, msgId, message, replyMarkup: keyboard,
-                        parseMode: parseMode);
-                }
-            }
-            catch (Exception)
-            {
-                //if (e is ApiRequestException && e.Message.Contains("message is not modified")) return new Message();
-                await user.ClearChat();
-                try
-                {
-                    if (!user.IsBlocked)
-                    {
-                        var msg = await Bot.Client.SendTextMessageAsync(user.ChatId, message, parseMode, 
-                            replyMarkup: keyboard, disableNotification: true);
-                        user.Session.Messages.Add(msg.MessageId);
-                        return msg;
-                    }
-                }
-                catch (Exception e1)
-                {
-                    LogOut("Cant edit message: " + e1.Message);
-                }
-            }
-            return new Message();
-        }
 
         /* Метод для редактирования клавиатуры под сообщением
          user - пользователь, которому необходимо отредактировать сообщение

+ 1 - 1
CardCollector/Resources/Keyboard.cs

@@ -324,7 +324,7 @@ namespace CardCollector.Resources
                 keyboard.Add(new []{InlineKeyboardButton.WithCallbackData($"{Text.delete} {Text.sticker} {keyboard.Count + 1}",
                     $"{Command.delete_combine}={sticker.Md5Hash}")});
             }
-            if (module.GetCombineCount() == Constants.COMBINE_COUNT)
+            if (module.CombineCount == Constants.COMBINE_COUNT)
                 keyboard.Add(new[] {InlineKeyboardButton.WithCallbackData(
                     $"{Text.combine} {module.CalculateCombinePrice()}{Text.coin}", Command.combine_stickers)});
             else keyboard.Add(new[] {InlineKeyboardButton.WithSwitchInlineQueryCurrentChat(Text.add_sticker)});

+ 2 - 5
CardCollector/Session/Modules/CombineModule.cs

@@ -19,10 +19,7 @@ namespace CardCollector.Session.Modules
             return (int)(coinsSum * multiplier);
         }
         
-        public int GetCombineCount()
-        {
-            return CombineList.Values.Sum();
-        }
+        public int CombineCount => CombineList.Values.Sum();
         
         public void Reset()
         {
@@ -33,7 +30,7 @@ namespace CardCollector.Session.Modules
         
         public override string ToString()
         {
-            var message = $"{Text.added_stickers} {GetCombineCount()}/{Constants.COMBINE_COUNT}:";
+            var message = $"{Text.added_stickers} {CombineCount}/{Constants.COMBINE_COUNT}:";
             foreach (var ((sticker, count), index) in CombineList.WithIndex())
                 message += $"\n{Text.sticker} {index + 1}: {sticker.Title} {count}{Text.items}";
             return message;