private static IGrandIdBuilder UseSimulatedEnvironment(this IGrandIdBuilder builder, Func <IServiceProvider, IGrandIdApiClient> grandIdDevelopmentApiClient)
        {
            builder.AuthenticationBuilder.Services.TryAddSingleton(grandIdDevelopmentApiClient);

            return(builder);
        }
 /// <summary>
 /// Configures options that will apply to all GrandID BankID schemes.
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="configureOptions"></param>
 /// <returns></returns>
 public static IGrandIdBuilder ConfigureBankId(this IGrandIdBuilder builder, Action <GrandIdBankIdOptions> configureOptions)
 {
     builder.AuthenticationBuilder.Services.ConfigureAll(configureOptions);
     return(builder);
 }
 public static IGrandIdBuilder UseSimulatedEnvironment(this IGrandIdBuilder builder, string givenName, string surname, string personalIdentityNumber)
 => UseSimulatedEnvironment(builder, x => new GrandIdSimulatedApiClient(givenName, surname, personalIdentityNumber));
 public static IGrandIdBuilder UseSimulatedEnvironment(this IGrandIdBuilder builder, string givenName, string surname)
 => UseSimulatedEnvironment(builder, x => new GrandIdSimulatedApiClient(givenName, surname));
 /// <summary>
 /// Configures the GrandID client to a simulated, in memory implementation for development and/or test purposes.
 /// </summary>
 /// <param name="builder"></param>
 /// <returns></returns>
 public static IGrandIdBuilder UseSimulatedEnvironment(this IGrandIdBuilder builder)
 => UseSimulatedEnvironment(builder, x => new GrandIdSimulatedApiClient());
 /// <summary>
 /// Configures the GrandID client to use the production endpoint of GrandID REST API.
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="configuration">Configure GrandID.</param>
 /// <returns></returns>
 public static IGrandIdBuilder UseProductionEnvironment(this IGrandIdBuilder builder, Action <IGrandIdEnvironmentConfiguration> configuration)
 {
     return(builder.UseEnvironment(GrandIdUrls.ProductionApiBaseUrl, configuration));
 }
 protected internal override void Add(ExtendedAuthenticationBuilder authenticationBuilder, IGrandIdBuilder grandIdBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions)
 {
     // ReSharper disable AssignNullToNotNullAttribute
     grandIdBuilder.AddBankIdChooseDevice(name, schemeRegistrationOptions?.DisplayName, options => { this.Bind(authenticationBuilder, options, schemeRegistrationOptions); });
     // ReSharper restore AssignNullToNotNullAttribute
 }