Tigran 3 år sedan
förälder
incheckning
2127c89898

+ 0 - 2
CardCollector/Commands/CallbackQuery/Back.cs

@@ -16,9 +16,7 @@ namespace CardCollector.Commands.CallbackQuery
             EnterGemsExchange.RemoveFromQueue(User.Id);
             EnterGemsPrice.RemoveFromQueue(User.Id);
             if (User.Session.TryGetPreviousMenu(out var menu))
-            {
                 await menu.BackToThis(User.Session);
-            }
             else await User.Session.EndSession();
         }
         

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

@@ -15,6 +15,7 @@ namespace CardCollector.Commands.CallbackQuery
 
         public override async Task Execute()
         {
+            User.Session.UndoCurrentCommand();
             EnterEmoji.RemoveFromQueue(User.Id);
             var result = CallbackData.Split('=');
             var filters = User.Session.GetModule<FiltersModule>().Filters;
@@ -26,7 +27,7 @@ namespace CardCollector.Commands.CallbackQuery
             if (filters[Command.price_gems_to] is int g && g <= (int) filters[Command.price_gems_from])
                 filters[Command.price_gems_to] = 0;
             /* Возвращаемся в меню фильтров */
-            await new Back(User, Update).PrepareAndExecute();
+            await new Back(User, Update).Execute();
         }
         
         public SetFilter() { }

+ 0 - 1
CardCollector/Commands/Message/Collection.cs

@@ -16,7 +16,6 @@ namespace CardCollector.Commands.Message
 
         public override async Task Execute()
         {
-            User.Session.InitNewModule<CollectionModule>();
             /* Отображаем сообщение с фильтрами */
             await new ShowFiltersMenu(User, Update).Execute();
         }

+ 6 - 1
CardCollector/Session/Session.cs

@@ -7,6 +7,7 @@ using CardCollector.Commands.CallbackQuery;
 using CardCollector.Controllers;
 using CardCollector.DataBase.Entity;
 using CardCollector.Resources;
+using CardCollector.Session.Modules;
 
 namespace CardCollector.Session
 {
@@ -129,7 +130,11 @@ namespace CardCollector.Session
         public void ClearMenuStack()
         {
             MenuStack.Clear();
-            foreach (var module in Modules.Values) module.Reset();
+            foreach (var module in Modules.Values)
+            {
+                if (module.GetType() == typeof(FiltersModule)) continue;
+                module.Reset();
+            }
         }
     }