diff --git a/TelegramBotBase/Form/AutoCleanForm.cs b/TelegramBotBase/Form/AutoCleanForm.cs index 5617775..4acc8ee 100644 --- a/TelegramBotBase/Form/AutoCleanForm.cs +++ b/TelegramBotBase/Form/AutoCleanForm.cs @@ -49,8 +49,15 @@ namespace TelegramBotBase.Form this.Device.MessageSent += Device_MessageSent; this.Device.MessageReceived += Device_MessageReceived; + + this.Device.MessageDeleted += Device_MessageDeleted; } + private void Device_MessageDeleted(object sender, MessageDeletedEventArgs e) + { + if (OldMessages.Contains(e.MessageId)) + OldMessages.Remove(e.MessageId); + } private void Device_MessageReceived(object sender, MessageReceivedEventArgs e) { @@ -157,7 +164,7 @@ namespace TelegramBotBase.Form retryAfterTask = Task.Delay(retryAfterSeconds * 1000); } - deletedMessages.AsParallel().ForAll(i => Device.OnMessageDeleted(new MessageDeletedEventArgs(i))); + //deletedMessages.AsParallel().ForAll(i => Device.OnMessageDeleted(new MessageDeletedEventArgs(i))); oldMessages = oldMessages.Where(x => !deletedMessages.Contains(x)); if (retryAfterTask != null) @@ -190,7 +197,7 @@ namespace TelegramBotBase.Form retryAfterTask = Task.Delay(retryAfterSeconds * 1000); } - deletedMessages.AsParallel().ForAll(i => Device.OnMessageDeleted(new MessageDeletedEventArgs(i))); + //deletedMessages.AsParallel().ForAll(i => Device.OnMessageDeleted(new MessageDeletedEventArgs(i))); oldMessages = oldMessages.Where(x => !deletedMessages.Contains(x)); if (retryAfterTask != null) diff --git a/TelegramBotBase/Sessions/DeviceSession.cs b/TelegramBotBase/Sessions/DeviceSession.cs index 0e0ce98..cf3a5c4 100644 --- a/TelegramBotBase/Sessions/DeviceSession.cs +++ b/TelegramBotBase/Sessions/DeviceSession.cs @@ -644,18 +644,12 @@ namespace TelegramBotBase.Sessions /// public virtual async Task DeleteMessage(int messageId = -1) { - try - { - await RAW(a => a.DeleteMessageAsync(this.DeviceId, messageId)); - return true; - } - catch (ApiRequestException) - { + await RAW(a => a.DeleteMessageAsync(this.DeviceId, messageId)); - } + OnMessageDeleted(new MessageDeletedEventArgs(messageId)); - return false; + return true; } ///