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: Build-TelegramBotBase:
env: env:
APP_PROJECT_NAME: TelegramBotBase APP_PROJECT_NAME: TelegramBotBase
PACKAGE_VERSION: "123.1.3" PACKAGE_VERSION: "123.1.5"
strategy: strategy:
matrix: matrix:
os: os:

View File

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