using Abp.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.DependencyInjection.Extensions; using VberZero.Authorization; using VberZero.Authorization.Roles; using VberZero.Authorization.Users; using VberZero.BaseSystem.MultiTenancy; using VberZero.BaseSystem.Roles; using VberZero.BaseSystem.Users; // ReSharper disable once CheckNamespace - This is done to add extension methods to Microsoft.Extensions.DependencyInjection namespace namespace Microsoft.Extensions.DependencyInjection; public static class VzServiceCollectionExtensions { public static VzIdentityBuilder AddAbpIdentity(this IServiceCollection services) { return services.AddAbpIdentity(setupAction: null); } public static VzIdentityBuilder AddAbpIdentity(this IServiceCollection services, Action? setupAction) { //services.AddSingleton(new AbpZeroEntityTypes //{ // Tenant = typeof(Tenant), // Role = typeof(Role), // User = typeof(User) //}); //AbpTenantManager services.TryAddScoped(); //AbpEditionManager //services.TryAddScoped(); //AbpRoleManager services.TryAddScoped(); services.TryAddScoped(typeof(RoleManager), provider => provider.GetService(typeof(VzRoleManager)) ?? throw new InvalidOperationException()); //AbpUserManager services.TryAddScoped(); services.TryAddScoped(typeof(UserManager), provider => provider.GetService(typeof(VzUserManager)) ?? throw new InvalidOperationException()); //SignInManager services.TryAddScoped(); services.TryAddScoped(typeof(SignInManager), provider => provider.GetService(typeof(VzSignInManager)) ?? throw new InvalidOperationException()); //AbpLogInManager services.TryAddScoped(); //AbpUserClaimsPrincipalFactory services.TryAddScoped(); services.TryAddScoped(typeof(UserClaimsPrincipalFactory), provider => provider.GetService(typeof(VzUserClaimsPrincipalFactory)) ?? throw new InvalidOperationException()); services.TryAddScoped(typeof(IUserClaimsPrincipalFactory), provider => provider.GetService(typeof(VzUserClaimsPrincipalFactory)) ?? throw new InvalidOperationException()); //AbpSecurityStampValidator services.TryAddScoped(); services.TryAddScoped(typeof(SecurityStampValidator), provider => provider.GetService(typeof(VzSecurityStampValidator)) ?? throw new InvalidOperationException()); services.TryAddScoped(typeof(ISecurityStampValidator), provider => provider.GetService(typeof(VzSecurityStampValidator)) ?? throw new InvalidOperationException()); //PermissionChecker services.TryAddScoped(); services.TryAddScoped(typeof(IPermissionChecker), provider => provider.GetService(typeof(VzPermissionChecker)) ?? throw new InvalidOperationException()); //AbpUserStore services.TryAddScoped(); services.TryAddScoped(typeof(IUserStore), provider => provider.GetService(typeof(VzUserStore)) ?? throw new InvalidOperationException()); //AbpRoleStore services.TryAddScoped(); services.TryAddScoped(typeof(IRoleStore), provider => provider.GetService(typeof(VzRoleStore)) ?? throw new InvalidOperationException()); //AbpFeatureValueStore //services.TryAddScoped(); //services.TryAddScoped(typeof(IFeatureValueStore), provider => provider.GetService(typeof(AbpFeatureValueStore))); return new VzIdentityBuilder(services.AddIdentity(setupAction), typeof(Tenant)); } }