AutoCleanForm detect only is active form
All checks were successful
build nuget workflow for TelegramBotBase project / Build-TelegramBotBase (x64, linux) (push) Successful in 37s

This commit is contained in:
Максим Човнюк 2024-12-07 22:09:18 +05:00
parent 139ccbb136
commit 07cbb8bfa4
2 changed files with 11 additions and 4 deletions

View File

@ -8,7 +8,7 @@ jobs:
Build-TelegramBotBase:
env:
APP_PROJECT_NAME: TelegramBotBase
PACKAGE_VERSION: "123.1.3"
PACKAGE_VERSION: "123.1.5"
strategy:
matrix:
os:

View File

@ -24,7 +24,7 @@ public class AutoCleanForm : FormBase
DeleteMode = EDeleteMode.OnEveryCall;
DeleteSide = EDeleteSide.BotOnly;
Init += AutoCleanForm_Init;
Opened += AutoCleanForm_Init;
Closed += AutoCleanForm_Closed;
}
@ -35,7 +35,7 @@ public class AutoCleanForm : FormBase
[SaveState] public EDeleteSide DeleteSide { get; set; }
private Task AutoCleanForm_Init(object sender, InitEventArgs e)
private Task AutoCleanForm_Init(object sender, EventArgs e)
{
if (Device == null)
{
@ -70,7 +70,8 @@ public class AutoCleanForm : FormBase
private Task Device_MessageSent(object sender, MessageSentEventArgs e)
{
if (DeleteSide == EDeleteSide.UserOnly)
if (DeleteSide == EDeleteSide.UserOnly
|| Device.ActiveForm != this)
{
return Task.CompletedTask;
}
@ -137,6 +138,12 @@ public class AutoCleanForm : FormBase
return Task.CompletedTask;
}
Device.MessageSent -= Device_MessageSent;
Device.MessageReceived -= Device_MessageReceived;
Device.MessageDeleted -= Device_MessageDeleted;
MessageCleanup().Wait();
return Task.CompletedTask;
}