public AddEncryptionSupportToClientsMigrationStep(IMongoDatabaseClientProvider clientProvider, MongoDbClientStoreSettings mongoDbClientStoreSettings) { if (clientProvider == null) { throw new ArgumentNullException(nameof(clientProvider)); } _mongoDbClientStoreSettings = mongoDbClientStoreSettings ?? throw new ArgumentNullException(nameof(mongoDbClientStoreSettings)); _lazyCollection = new Lazy <IMongoCollection <ClientDataRecordV2> >(() => { var database = clientProvider.Provide(); return(database.GetCollection <ClientDataRecordV2>(mongoDbClientStoreSettings.CollectionName)); }); }
public MongoDbClientStore(IMongoDatabaseClientProvider clientProvider, string collectionName) { if (clientProvider == null) { throw new ArgumentNullException(nameof(clientProvider)); } if (string.IsNullOrEmpty(collectionName)) { throw new ArgumentException("Value cannot be null or empty.", nameof(collectionName)); } _lazyCollection = new Lazy <IMongoCollection <ClientDataRecord> >(() => { var database = clientProvider.Provide(); return(database.GetCollection <ClientDataRecord>(collectionName)); }); }
public ClientStoreBaseliner(ISystemClock systemClock, IMongoDatabaseClientProvider clientProvider, MongoDbClientStoreSettings mongoDbClientStoreSettings) { if (clientProvider == null) { throw new ArgumentNullException(nameof(clientProvider)); } if (mongoDbClientStoreSettings == null) { throw new ArgumentNullException(nameof(mongoDbClientStoreSettings)); } _systemClock = systemClock ?? throw new ArgumentNullException(nameof(systemClock)); _lazyCollection = new Lazy <IMongoCollection <ClientStoreVersionDocument> >(() => { var database = clientProvider.Provide(); return(database.GetCollection <ClientStoreVersionDocument>(mongoDbClientStoreSettings.CollectionName)); }); }
public MongoDbNonceStore(IMongoDatabaseClientProvider clientProvider, string collectionName) { if (clientProvider == null) { throw new ArgumentNullException(nameof(clientProvider)); } if (string.IsNullOrEmpty(collectionName)) { throw new ArgumentException("Value cannot be null or empty.", nameof(collectionName)); } _lazyCollection = new Lazy <IMongoCollection <NonceDataRecord> >(() => { var database = clientProvider.Provide(); var collection = database.GetCollection <NonceDataRecord>(collectionName); var createIndexModel = new CreateIndexModel <NonceDataRecord>( Builders <NonceDataRecord> .IndexKeys.Ascending(_ => _.Expiration), new CreateIndexOptions { Name = "idx_ttl", ExpireAfter = TimeSpan.FromSeconds(3) }); try { collection.Indexes.CreateOne(createIndexModel); } catch (MongoCommandException ex) { switch (ex.Code) { case 86: // The index probably exists with different options, recreate it instead collection.Indexes.DropOne("idx_ttl"); collection.Indexes.CreateOne(createIndexModel); break; default: throw; } } return(collection); }); }
public MongoDbClientStore( IMongoDatabaseClientProvider clientProvider, string collectionName, SharedSecretEncryptionKey encryptionKey, IClientStoreMigrator migrator) { if (clientProvider == null) { throw new ArgumentNullException(nameof(clientProvider)); } if (string.IsNullOrEmpty(collectionName)) { throw new ArgumentException("Value cannot be null or empty.", nameof(collectionName)); } _encryptionKey = encryptionKey; _migrator = migrator ?? throw new ArgumentNullException(nameof(migrator)); _lazyCollection = new Lazy <IMongoCollection <ClientDataRecordV2> >(() => { var database = clientProvider.Provide(); return(database.GetCollection <ClientDataRecordV2>(collectionName)); }); }