public static void ConfigureScopes(IEnumerable<Scope> scopes, DocumentDbServiceOptions options) { ScopeRepository scopeRepository = new ScopeRepository(options.ToConnectionSettings()); var allScopes = scopeRepository.GetAllScopes().Result; if (!allScopes.Any()) { foreach (var s in scopes) { scopeRepository.AddScope(s.ToDocument()).Wait(); } } }
public static void ConfigureClients(IEnumerable<Client> clients, DocumentDbServiceOptions options) { ClientRepository clientRepository = new ClientRepository(options.ToConnectionSettings()); var allClients = clientRepository.GetAllClients().Result; if (!allClients.Any()) { foreach (var c in clients) { clientRepository.AddClient(c.ToDocument()).Wait(); } } }
private static void RegisterCommonServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { if (factory.Registrations.All(x => x.DependencyType != typeof(IPropertySerializer))) { var connectionSettings = options.ToConnectionSettings(); var nameresolver = options.CollectionNameResolver; factory.Register(new Registration <ICollectionNameResolver>(options.CollectionNameResolver)); factory.Register(new Registration <ConnectionSettings>(resolver => connectionSettings)); factory.Register(new Registration <IPropertySerializer, JsonPropertySerializer>()); //singletons to avoid excessing docdb client creations factory.Register(new Registration <IConsentRepository>(new ConsentRepository(nameresolver, connectionSettings))); factory.Register(new Registration <IAuthorizationCodeRepository>(new AuthorizationCodeRepository(nameresolver, connectionSettings))); factory.Register(new Registration <IRefreshTokenRepository>(new RefreshTokenRepository(nameresolver, connectionSettings))); factory.Register(new Registration <ITokenHandleRepository>(new TokenHandleRepository(nameresolver, connectionSettings))); factory.Register(new Registration <IClientRepository>(new ClientRepository(nameresolver, connectionSettings))); factory.Register(new Registration <IScopeRepository>(new ScopeRepository(nameresolver, connectionSettings))); } }
public TokenCleanup(DocumentDbServiceOptions options, int interval = 60) { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (interval < 1) { throw new ArgumentException("interval must be more than 1 second"); } var connectionSettings = options.ToConnectionSettings(); this._interval = TimeSpan.FromSeconds(interval); _refreshTokenRepository = new RefreshTokenRepository(options.CollectionNameResolver, connectionSettings); _authorizationCodeRepository = new AuthorizationCodeRepository(options.CollectionNameResolver, connectionSettings); _tokenHandleRepository = new TokenHandleRepository(options.CollectionNameResolver, connectionSettings); }
private static void RegisterCommonServices(this IdentityServerServiceFactory factory, DocumentDbServiceOptions options) { if (factory.Registrations.All(x => x.DependencyType != typeof (IPropertySerializer))) { var connectionSettings = options.ToConnectionSettings(); factory.Register(new Registration<ConnectionSettings>(connectionSettings)); factory.Register(new Registration<IPropertySerializer, JsonPropertySerializer>() { Mode = RegistrationMode.Singleton, }); // repository singletons factory.Register(new Registration<IConsentRepository>(new ConsentRepository(connectionSettings))); factory.Register(new Registration<IAuthorizationCodeRepository>(new AuthorizationCodeRepository(connectionSettings))); factory.Register(new Registration<IRefreshTokenRepository>(new RefreshTokenRepository(connectionSettings))); factory.Register(new Registration<ITokenHandleRepository>(new TokenHandleRepository(connectionSettings))); factory.Register(new Registration<IClientRepository>(new ClientRepository(connectionSettings))); factory.Register(new Registration<IScopeRepository>(new ScopeRepository(connectionSettings))); } }