in src/Services/User/User.Infrastructure/DependencyInjection.cs [34:74]
public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration)
{
services.AddOptions<ClientIdentityOptions>()
.Configure<IConfiguration>((settings, config) =>
{
config.GetSection("ClientIdentity").Bind(settings);
});
services.AddOptions<CassandraOptions>()
.Configure<IConfiguration>((settings, config) =>
{
config.GetSection("Cassandra").Bind(settings);
});
services.AddSingleton<ICassandraCluster, CassandraCluster>();
services.AddSingleton<ICassandraSession, CassandraSession>();
services.AddTransient<IUserRepository, UserRepository>();
services.AddTransient<IMedicalRegistrationRepository, MedicalRegistrationRepository>();
services.AddScoped<AspNetUserManager<ApplicationUser>>();
services.AddTransient<IIdentityService, IdentityService>();
services.AddIdentityWithStore(configuration, typeof(ApplicationDbContextSeed).Assembly);
services.Configure<IdentityOptions>(options =>
{
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 8;
options.Password.RequiredUniqueChars = 1;
options.Lockout.AllowedForNewUsers = true;
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(10);
options.Lockout.MaxFailedAccessAttempts = 4;
});
return services;
}