public AesEncryptedMongoDBFixture()
        {
            var rng = new Random();

            DatabaseName = $"AesEncryptedMongoDBFixture_{rng.Next(int.MaxValue):X}";

            // docker run -it --rm --name mongodb -p 27027:27017 mongo:3.6.0-jessie
            ConnectionStringSettings = new ConnectionStringSettings
            {
                Name             = DatabaseName,
                ConnectionString = $"mongodb://localhost:27027/{DatabaseName}?maxpoolsize=1000"
            };
#if NET452
            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            config.ConnectionStrings.ConnectionStrings.Remove(ConnectionStringSettings.Name);
            config.ConnectionStrings.ConnectionStrings.Add(ConnectionStringSettings);
            config.Save();
            ConfigurationManager.RefreshSection("connectionStrings");
#endif
#if NETCOREAPP2_0
            ConfigurationManager.ConnectionStrings[ConnectionStringSettings.Name] = ConnectionStringSettings;
#endif

            Database = MongoDBHelper.Connect(ConnectionStringSettings, DatabaseName);

            var encryptionServiceOptions = new AesMessageEncryptionOptions(KeyGenerator.GenerateAesKey());
            var messageQueueingOptions   = new MongoDBMessageQueueingOptions(Database)
            {
                DiagnosticService        = DiagnosticService,
                MessageEncryptionService = new AesMessageEncryptionService(encryptionServiceOptions)
            };
            MessageQueueingService = new MongoDBMessageQueueingService(messageQueueingOptions);
        }
Exemplo n.º 2
0
        public MongoDBFixture()
        {
            var rng = new Random();

            DatabaseName = $"MongoDBFixture_{rng.Next(int.MaxValue):X}";

            // docker run -it --rm --name mongodb -p 27027:27017 mongo:3.6.0-jessie
            ConnectionStringSettings = new ConnectionStringSettings
            {
                Name             = DatabaseName,
                ConnectionString = $"mongodb://localhost:27027/{DatabaseName}?maxpoolsize=1000"
            };
#if NET452
            var config    = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var configMap = new ExeConfigurationFileMap()
            {
                ExeConfigFilename = config.FilePath
            };
            config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
            config.ConnectionStrings.ConnectionStrings.Remove(ConnectionStringSettings.Name);
            config.ConnectionStrings.ConnectionStrings.Add(ConnectionStringSettings);
            config.Save(ConfigurationSaveMode.Full, true);
            ConfigurationManager.RefreshSection(config.ConnectionStrings.SectionInformation.SectionName);
#endif
#if NETCOREAPP2_0
            ConfigurationManager.ConnectionStrings[ConnectionStringSettings.Name] = ConnectionStringSettings;
#endif

            Database = WaitForMongoDB(ConnectionStringSettings, DatabaseName);

            var subscriptionTrackingOptions = new MongoDBSubscriptionTrackingOptions(Database)
            {
                DiagnosticService = DiagnosticService
            };
            SubscriptionTrackingService = new MongoDBSubscriptionTrackingService(subscriptionTrackingOptions);

            var messageQueueingOptions = new MongoDBMessageQueueingOptions(Database)
            {
                DiagnosticService = DiagnosticService
            };
            MessageQueueingService = new MongoDBMessageQueueingService(messageQueueingOptions);

            var journalOptions = new MongoDBMessageJournalOptions(Database)
            {
                DiagnosticService = DiagnosticService
            };
            MessageJournal = new MongoDBMessageJournal(journalOptions);
        }