/// <summary>
 /// Initializes a new instance of the <see cref="AutomaticTokenManagementCookieEvents"/> class.
 /// </summary>
 /// <param name="service">The service.</param>
 /// <param name="options">The options.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="clock">The clock.</param>
 public AutomaticTokenManagementCookieEvents(
     TokenEndpointService service,
     IOptions <AutomaticTokenManagementOptions> options,
     ILogger <AutomaticTokenManagementCookieEvents> logger,
     ISystemClock clock)
 {
     this.TokenEndpointService            = service;
     this.AutomaticTokenManagementOptions = options.Value;
     this.Logger      = logger;
     this.SystemClock = clock;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TokenEndpointService"/> class.
 /// </summary>
 /// <param name="managementOptions">The management options.</param>
 /// <param name="oidcOptions">The oidc options.</param>
 /// <param name="schemeProvider">The scheme provider.</param>
 /// <param name="httpClientFactory">The HTTP client factory.</param>
 /// <param name="logger">The logger.</param>
 public TokenEndpointService(IOptions <AutomaticTokenManagementOptions> managementOptions,
                             IOptionsSnapshot <OpenIdConnectOptions> oidcOptions,
                             IAuthenticationSchemeProvider schemeProvider,
                             IHttpClientFactory httpClientFactory,
                             ILogger <TokenEndpointService> logger)
 {
     this.AutomaticTokenManagementOptions = managementOptions.Value;
     this.OidcOptionsSnapshot             = oidcOptions;
     this.AuthenticationSchemeProvider    = schemeProvider;
     this.HttpClientFactory = httpClientFactory;
     this.Logger            = logger;
 }