public override async Task RegisterClientAsync()
 {
     try
     {
         var operationalClientSettings = new FakeOperationalClient.Settings
         {
             Token = _token,
             EmulateRecurrentExceptions        = _emulateRecurrentExceptions,
             RecurrentExceptionDifficultyClass = _recurrentExceptionDifficultyClass
         };
         OperationalClient = new FakeOperationalClient(_operationalClientEmulatedState, operationalClientSettings);
         if (!await OperationalClient.ValidateClientAsync())
         {
             HandleClientInitializationFailed($"Fake Bot API Client registration failed, the token ({OperationalClient.Token.Bar()}) is invalid.");
             return;
         }
         ComponentState = BotApiComponentState.CreateRegistered();
         _logger.LogInformation("Fake Bot API Client registered.");
     }
     catch (Exception e)
     {
         const string errorMessage = "Fake Bot API Client registration failed, an exception has occurred";
         HandleClientInitializationFailed($"{errorMessage}: {e.Message}", $"{errorMessage}.{Environment.NewLine}{e}");
     }
 }
 public override void RegisterPoller()
 {
     if (_botApiClient.CanConsumeOperationalClient)
     {
         _updatesPollingTimer.Change(TimeSpan.Zero, _timerInterval);
         ComponentState = BotApiComponentState.CreateRegistered();
         _logger.LogInformation("Fake Bot API Poller registered.");
     }
     else
     {
         var errorMessage = $"Fake Bot API Poller registration failed, the Fake Bot API Client ({_botApiClient.ComponentState.FooBar()}) cannot be consumed.";
         ComponentState = BotApiComponentState.CreateError(errorMessage);
         _logger.LogError(errorMessage);
     }
 }
 public virtual void RegisterEndpoint()
 {
     ComponentState = BotApiComponentState.CreateRegistered();
 }