diff --git a/.gitea/workflows/TelegramBotFramework.nuget.yaml b/.gitea/workflows/TelegramBotFramework.nuget.yaml index 2ee5620..ce7988b 100644 --- a/.gitea/workflows/TelegramBotFramework.nuget.yaml +++ b/.gitea/workflows/TelegramBotFramework.nuget.yaml @@ -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: diff --git a/TelegramBotBase/Form/AutoCleanForm.cs b/TelegramBotBase/Form/AutoCleanForm.cs index e994ef3..db145a0 100644 --- a/TelegramBotBase/Form/AutoCleanForm.cs +++ b/TelegramBotBase/Form/AutoCleanForm.cs @@ -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; }