public static KaspIdentityBuilder AddIdentity <TUser, TRole, TDb>(this KaspDbServiceBuilder builder, Action <IdentityOptions> setupAction = null) where TUser : KaspUser where TRole : KaspRole where TDb : KIdentityDbContext <TUser, TRole> { return(AddIdentity <TUser, TRole, int, TDb>(builder, setupAction)); }
public static KaspIdentityBuilder AddIdentity <TUser, TRole, TKey, TDb>(this KaspDbServiceBuilder builder, Action <IdentityOptions> setupAction = null) where TUser : KaspUser <TKey> where TRole : KaspRole <TKey> where TDb : KIdentityDbContext <TUser, TRole, TKey> where TKey : IEquatable <TKey> { var identityBuilder = new KaspIdentityBuilder(builder) { IdentityBuilder = builder.Services.AddIdentity <TUser, TRole>(setupAction).AddEntityFrameworkStores <TDb>().AddDefaultTokenProviders() }; builder.Services.AddScoped <IUserStore <TUser>, UserStore <TUser, TRole, TDb, TKey> >(); builder.Services.AddScoped <IRoleStore <TRole>, RoleStore <TRole, TDb, TKey> >(); return(identityBuilder); }
private static void AddServices <TDbContext>(KaspDbServiceBuilder builder) where TDbContext : DbContext, IFcmDbContext { var fcmConfig = builder.Configuration.GetSection("Fcm"); if (fcmConfig == null) { throw new NullReferenceException("you must define fcm config"); } builder.Services.Configure <FcmConfig>(fcmConfig); builder.Services.AddScoped <IFcmUserTokenRepository, FcmUserTokenRepository <TDbContext> >(); builder.Services.AddSingleton <IFcmHttpClient, FcmHttpClient>(); builder.Services.AddSingleton <IFcmClient, FcmClient>(); builder.Services.AddSingleton <FcmDeviceGroupService>(); builder.Services.AddSingleton <IFcmService, FcmService>(); builder.Services.AddHttpClient <FcmApiHttpClient>(); }
public KaspIdentityBuilder(KaspDbServiceBuilder builder) : base(builder, builder.Configuration, builder.MvcBuilder) { }
public static void AddFcm <TDbContext>(this KaspDbServiceBuilder builder, string projectName, string filePath) where TDbContext : DbContext, IFcmDbContext { builder.Services.AddSingleton <IFcmClientSettings>(FileBasedFcmClientSettings.CreateFromFile(projectName, filePath)); AddServices <TDbContext>(builder); }