예제 #1
0
        /// <summary>
        /// Adds Spotify Authorization Code Flow message handler for UWP apps, implementation of <see cref="IAuthenticationManager"/> and other required services to the specified <see cref="IHttpClientBuilder"/>.
        /// </summary>
        /// <param name="httpClientBuilder">The <see cref="IHttpClientBuilder"/>.</param>
        /// <param name="configureOptions">Used to configure the <see cref="SpotifyAuthorizationCodeFlowOptions"/>.</param>
        /// <returns></returns>
        public static ISpotifyAuthorizationCodeFlowBuilder AddSpotifyAuthorizationCodeFlow(this IHttpClientBuilder httpClientBuilder, Action <SpotifyAuthorizationCodeFlowOptions> configureOptions)
        {
            httpClientBuilder.Services.TryAddSingleton <IAuthorizationRedirectUriProvider, AuthorizationRedirectUriProvider>();
            httpClientBuilder.Services.TryAddSingleton <IAuthorizationInteractionClient, AuthorizationInteractionClient>();
            httpClientBuilder.Services.TryAddSingleton <IAuthenticationTicketStorage, AuthenticationTicketStorage>();

            var coreBuilder = httpClientBuilder.AddSpotifyAuthorizationCodeFlowCore(configureOptions);

            return(new SpotifyAuthorizationCodeFlowBuilder(coreBuilder));
        }