private static T SetParameter <T>(T baseRequest, Action <TokenAcquisitionAuthenticationProviderOption> action) where T : IBaseRequest
        {
            string authHandlerOptionKey = typeof(AuthenticationHandlerOption).FullName !;
            AuthenticationHandlerOption authHandlerOptions;

            try
            {
                authHandlerOptions = baseRequest.MiddlewareOptions[authHandlerOptionKey] as AuthenticationHandlerOption ?? new AuthenticationHandlerOption();
            }
            catch (Exception)
            {
                authHandlerOptionKey = typeof(AuthenticationHandlerOption).Name !;
                authHandlerOptions   = baseRequest.MiddlewareOptions[authHandlerOptionKey] as AuthenticationHandlerOption ?? new AuthenticationHandlerOption();
            }

            TokenAcquisitionAuthenticationProviderOption msalAuthProviderOption = authHandlerOptions?.AuthenticationProviderOption as TokenAcquisitionAuthenticationProviderOption ?? new TokenAcquisitionAuthenticationProviderOption();

            action(msalAuthProviderOption);

#pragma warning disable CS8602 // Dereference of a possibly null reference. The Graph SDK ensures it exists
            authHandlerOptions.AuthenticationProviderOption = msalAuthProviderOption;
#pragma warning restore CS8602 // Dereference of a possibly null reference.
            baseRequest.MiddlewareOptions[authHandlerOptionKey] = authHandlerOptions;

            return(baseRequest);
        }
 public TokenAcquisitionAuthenticationProvider(ITokenAcquisition tokenAcquisition, TokenAcquisitionAuthenticationProviderOption options)
 {
     _tokenAcquisition = tokenAcquisition;
     _initialOptions   = options;
 }