public async Task Post(Update update, CancellationToken cancellationToken)
        {
            var message = update.Message;

            if (message == null)
            {
                _log.LogError("Message is null");
                return;
            }

            if (!Commands.Commands.IsCommand(message))
            {
                try
                {
                    await _statsManager.AddToStatsAsync(update, cancellationToken);
                }
                catch (Exception ex)
                {
                    _log.LogError(ex, "Add message to stat exception");
                }
                return;
            }

            switch (message.Text)
            {
            case var text when Commands.Commands.IsStart(text):
                await _telegramGateway.SendMessageAsync(message.Chat.Id, Consts.Usage, cancellationToken);

                break;

            case var text when Commands.Commands.IsStats(text):
                await ReplyWithStatsAsync(message.Chat.Id, text, cancellationToken);

                break;

            case var text when Commands.Commands.IsRules(text):
                await _telegramGateway.SendMessageAsync(message.Chat.Id, Consts.Rules, cancellationToken);

                break;

            default:
                _log.LogInformation("Unknown command");
                break;
            }
        }