public DatabaseContext(string dataSourceHost, string databaseName, string databaseUser, string databasePassword, string authenticationDatabaseName)
        {
            ArgumentValidation.ValidateString(dataSourceHost, nameof(dataSourceHost));
            ArgumentValidation.ValidateString(databaseName, nameof(databaseName));
            ArgumentValidation.ValidateString(databaseUser, nameof(databaseUser));
            ArgumentValidation.ValidateString(databasePassword, nameof(databasePassword));

            var sharedSettings = new MongoConnectionOptions
            {
                MongoDbHost          = dataSourceHost,
                MongoDbUsername      = databaseUser,
                MongoDbPassword      = databasePassword,
                DatabaseName         = databaseName,
                AuthenticationSource = authenticationDatabaseName
            };

            _repositoryClient = new MongoRepositoryClient(sharedSettings);
            _repository       = (IRepositoryInternal)_repositoryClient.GetRepository(databaseName);

            CkEntities           = _repository.GetCollection <CkEntity>();
            CkAttributes         = _repository.GetCollection <CkAttribute>();
            CkEntityAssociations = _repository.GetCollection <CkEntityAssociation>();
            CkEntityInheritances = _repository.GetCollection <CkEntityInheritance>();
            RtAssociations       = _repository.GetCollection <RtAssociation>();
        }
Ejemplo n.º 2
0
        public SystemContext(IOptions <OspSystemConfiguration> systemConfiguration,
                             IDistributedWithPubSubCache distributedWithPubSubCache)
        {
            ArgumentValidation.Validate(nameof(systemConfiguration), systemConfiguration);
            ArgumentValidation.Validate(nameof(distributedWithPubSubCache), distributedWithPubSubCache);

            _systemConfiguration        = systemConfiguration.Value;
            _distributedWithPubSubCache = distributedWithPubSubCache;

            var sharedSettings = new MongoConnectionOptions
            {
                MongoDbHost          = _systemConfiguration.DatabaseHost,
                MongoDbUsername      = _systemConfiguration.AdminUser,
                MongoDbPassword      = _systemConfiguration.AdminUserPassword,
                AuthenticationSource = _systemConfiguration.AuthenticationDatabaseName
            };

            _ckCaches = new ConcurrentDictionary <string, ICkCache>();

            _repositoryClient = new MongoRepositoryClient(sharedSettings);
            OspSystemDatabase = _repositoryClient.GetRepository(_systemConfiguration.SystemDatabaseName);

            _tenantCollection        = OspSystemDatabase.GetCollection <SystemEntities.OspTenant>();
            _configurationCollection = OspSystemDatabase.GetCollection <OspConfiguration>();

            var sub = _distributedWithPubSubCache.Subscribe <string>(CacheCommon.KeyTenantUpdate);

            sub.OnMessage(message =>
            {
                RemoveCkCache(message.Message);
                return(Task.CompletedTask);
            });
        }
Ejemplo n.º 3
0
        public static void UseMongo(this IServiceCollection services, IConfiguration configuration)
        {
            IMongoConnectionOptions mongoConnectionOptions = new MongoConnectionOptions();
            
            new ConfigureFromConfigurationOptions<IMongoConnectionOptions>(
                configuration.GetSection(nameof(MongoConnectionOptions)))
                .Configure(mongoConnectionOptions);

            services.AddSingleton(mongoConnectionOptions);
            services.AddSingleton<IMongoDbContext, MongoDbContext>();

            services.AddScoped<IUserRepository, UserRepository>();
            services.AddScoped<IRefreshTokenRepository, RefreshTokenRepository>();
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="option"></param>
        public MongoContext(MongoConnectionOptions option)
        {
            var client = new MongoClient(option.ConnectionString);

            _db = client.GetDatabase(option.DatabaseName);
        }