public TelegramSink(string chatId, string token,
                            RenderMessageMethod renderMessageImplementation,
                            IFormatProvider formatProvider,
                            ITelegramClientFactory telegramClientFactory, IWebProxy proxy)
        {
            if (string.IsNullOrWhiteSpace(value: chatId))
            {
                throw new ArgumentNullException(paramName: nameof(chatId));
            }

            if (string.IsNullOrWhiteSpace(value: token))
            {
                throw new ArgumentNullException(paramName: nameof(token));
            }

            FormatProvider = formatProvider;
            this.proxy     = proxy;
            if (renderMessageImplementation != null)
            {
                RenderMessageImplementation = renderMessageImplementation;
            }
            _chatId = chatId;
            _token  = token;

            TelegramClientFactory = telegramClientFactory ?? new TelegramClientFactory();
        }
        public TelegramSink(string chatId, string token, RenderMessageMethod renderMessageImplementation,
                            IFormatProvider formatProvider)
        {
            if (string.IsNullOrWhiteSpace(value: chatId))
            {
                throw new ArgumentNullException(paramName: nameof(chatId));
            }

            if (string.IsNullOrWhiteSpace(value: token))
            {
                throw new ArgumentNullException(paramName: nameof(token));
            }

            FormatProvider = formatProvider;
            RenderMessageImplementation = renderMessageImplementation;
            _chatId = chatId;
            _token  = token;
        }
        public TelegramSink(string chatId, string token, string applicationName, ParseMode parseMode, RenderMessageMethod renderMessageImplementation, IFormatProvider formatProvider)
        {
            if (string.IsNullOrWhiteSpace(value: chatId))
            {
                throw new ArgumentNullException(paramName: nameof(chatId));
            }

            if (string.IsNullOrWhiteSpace(value: token))
            {
                throw new ArgumentNullException(paramName: nameof(token));
            }

            FormatProvider = formatProvider;
            if (renderMessageImplementation != null)
            {
                RenderMessageImplementation = renderMessageImplementation;
            }

            _applicationName = applicationName;
            _chatId          = chatId;
            _token           = token;
            _parseMode       = parseMode;
        }