Skip to content

Commit 782d4b5

Browse files
author
Igor Evdokimov
committed
- bugfix: multiple event handler appointment in case of Reloading a telegram bot client
1 parent e8eabbf commit 782d4b5

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

Botticelli.Framework.Telegram/TelegramBot.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public class TelegramBot : BaseBot<TelegramBot>
3232
private readonly IBotDataAccess _data;
3333
private readonly IBotUpdateHandler _handler;
3434
private readonly ITextTransformer _textTransformer;
35+
private bool _handlerLoaded = false;
3536
protected readonly ITelegramBotClient Client;
3637

3738
// ReSharper disable once MemberCanBeProtected.Global
@@ -512,13 +513,16 @@ protected override Task<StartBotResponse> InnerStartBotAsync(StartBotRequest req
512513
BotStatusKeeper.IsStarted = true;
513514

514515
// Rethrowing events from BotUpdateHandler
515-
_handler.MessageReceived += (sender, e)
516+
if (!_handlerLoaded)
517+
{
518+
_handler.MessageReceived += (sender, e)
516519
=> MessageReceived?.Invoke(sender, e);
517-
_handler.ContactShared += (sender, e)
518-
=> ContactShared?.Invoke(sender, e);
519-
_handler.NewChatMembers += (sender, e)
520-
=> NewChatMembers?.Invoke(sender, e);
521-
520+
_handler.ContactShared += (sender, e)
521+
=> ContactShared?.Invoke(sender, e);
522+
_handler.NewChatMembers += (sender, e)
523+
=> NewChatMembers?.Invoke(sender, e);
524+
_handlerLoaded = true;
525+
}
522526
Client.StartReceiving(_handler, cancellationToken: token);
523527

524528
Logger.LogInformation($"{nameof(StartBotAsync)}: started");

0 commit comments

Comments
 (0)