コード例 #1
0
ファイル: MongoDbContext.cs プロジェクト: gittsi/000
        //public MongoDBConnectionHelper(MongoDBSettings settings)
        //{

        //}

        //public IMongoDatabase GetMongoDbDatabase()
        //{

        //    var client = new MongoClient(_settings.ConnectionString);
        //    return client.GetDatabase(_settings.DB);
        //}


        public MongoDBContext(MongoDBSettings settings)
        {
            _settings = settings;
            try
            {
                MongoClientSettings mongoSettings = MongoClientSettings.FromUrl(new MongoUrl(_settings.ConnectionString));
                if (IsSSL)
                {
                    mongoSettings.SslSettings = new SslSettings {
                        EnabledSslProtocols = System.Security.Authentication.SslProtocols.Tls12
                    };
                }
                //var mongoClient = new MongoClient(settings);

                var mongoClient = new MongoClient(ConnectionString);

                _database = mongoClient.GetDatabase(DatabaseName);

                _database.RunCommandAsync((Command <BsonDocument>) "{ping:1}").Wait();

                var dsgfd    = mongoClient.ListDatabases();
                var asfgasgf = _database.ListCollections();

                var a = _database.GetCollection <GuildConfigDto>("Config.Guild");


                var asgvaf = a.Find("Config.Guild");
            }
            catch (Exception ex)
            {
                throw new Exception("Can not access to db server.", ex);
            }
        }
コード例 #2
0
 public MongoDBService(IOptions <MongoDBSettings> config,
                       ILogger <MongoDBService> log)
 {
     _config = config.Value;
     _log    = log;
     _client = new MongoClient(_config.ConnectionString);
 }
コード例 #3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            this.mongoDBSettings = new MongoDBSettings();
            Configuration.GetSection(nameof(MongoDBSettings)).Bind(mongoDBSettings);

            services.AddMvc();
        }
コード例 #4
0
        public MongoRepository(IOptions <MongoDBSettings> mongoDBSettings)
        {
            _mongoDBSettings = mongoDBSettings.Value;

            var database = new MongoClient(_mongoDBSettings.ConnectionString).GetDatabase(_mongoDBSettings.DBName);



            _collection = database.GetCollection <TDocument>(GetCollectionName(typeof(TDocument)));
        }
コード例 #5
0
        public static void AddDataContext(this IServiceCollection services, IConfiguration configuration)
        {
            //Binding MongoDBSettings from appsettings.json and add as a singleton
            var mongoDBSettings = new MongoDBSettings();

            configuration.GetSection(nameof(MongoDBSettings)).Bind(mongoDBSettings);
            services.AddSingleton(mongoDBSettings);
            // injecting MongoDBContext
            services.AddSingleton <MongoDBContext>();
        }
コード例 #6
0
        public void Setup()
        {
            IMongoDBSettings settings = new MongoDBSettings
            {
                ConnectionString = "mongodb://localhost:27017",
                Database         = "NBADatabase",
                Collection       = "teams"
            };

            service = new TeamService(settings);
        }
コード例 #7
0
        private void Initialize(MongoDBSettings options)
        {
            var settings = MongoClientSettings.FromUrl(new MongoUrl(options.ConnectionString));

            settings.SslSettings = new SslSettings()
            {
                EnabledSslProtocols = SslProtocols.Tls12
            };

            _client   = new MongoClient(settings);
            _database = _client.GetDatabase(options.Database);
        }
コード例 #8
0
        public static void AddMongoDBSetup(this IServiceCollection services, IConfiguration configuration)
        {
            var dbSettings = new MongoDBSettings();

            new ConfigureFromConfigurationOptions <MongoDBSettings>
                (configuration.GetSection("MongoDBSettings"))
            .Configure(dbSettings);

            services.AddSingleton(dbSettings);

            services.AddSingleton <MongoDBContext>();
        }
コード例 #9
0
        static void Main(string[] args)
        {
            #region Setup Configuration
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                          .AddEnvironmentVariables();
            IConfigurationRoot configuration = builder.Build();

            var azureServiceBusSettings = new AzureServiceBusSettings();
            configuration.GetSection(nameof(AzureServiceBusSettings)).Bind(azureServiceBusSettings);

            var mongoDBSettings = new MongoDBSettings();
            configuration.GetSection(nameof(MongoDBSettings)).Bind(mongoDBSettings);

            FcmAppSettings fcmAppSettings = new FcmAppSettings();
            configuration.GetSection(nameof(FcmAppSettings)).Bind(fcmAppSettings);

            // Required by WebJobs SDK
            Environment.SetEnvironmentVariable("AzureWebJobsStorage", configuration.GetValue <string>("AzureWebJobsStorage"));
            Environment.SetEnvironmentVariable("AzureWebJobsDashboard", configuration.GetValue <string>("AzureWebJobsDashboard"));
            #endregion

            #region Setup DI
            var serviceCollection = new ServiceCollection();

            // EventBus
            serviceCollection.AddSingleton(azureServiceBusSettings);

            serviceCollection.AddSingleton <IEventBusMessageListener, EventBusServiceBusMessageListener>();
            serviceCollection.AddTransient <IEventBusMessageProcessor, OrchestratorEventBusServiceBusMessageProcessor>();
            serviceCollection.AddSingleton <IEventBusMessagePublisher, EventBusServiceBusMessagePublisher>();

            // DB
            serviceCollection.AddSingleton(mongoDBSettings);
            serviceCollection.AddSingleton <IResponseRepository, ResponseRepository>();

            // Notification
            serviceCollection.AddSingleton(fcmAppSettings);
            serviceCollection.AddSingleton <INotificationService, FcmNotificationService>();

            // Event Handlers
            // None for Notification

            var serviceProvider = serviceCollection.BuildServiceProvider();
            #endregion

            // Start listening for Events
            serviceProvider.GetService <IEventBusMessageListener>().RegisterEventListener();

            var host = new JobHost();
            host.RunAndBlock();
        }
コード例 #10
0
        public static void AddMongoDBSetup(this IServiceCollection services, IConfiguration configuration)
        {
            //Ler os parametros mapeados no arquivo 'appsettings.json'
            //e carregar os seus valores na classe MongoDBSettings
            var dbSettings = new MongoDBSettings();

            new ConfigureFromConfigurationOptions <MongoDBSettings>(configuration.GetSection("MongoDBSettings")).Configure(dbSettings);
            services.AddSingleton(dbSettings);

            //criando uma injeção de dependência Singleton
            //para a classe MongoDBContext
            services.AddSingleton <MongoDBContext>();
        }
コード例 #11
0
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

            this.azureServiceBusSettings = new AzureServiceBusSettings();
            Configuration.GetSection(nameof(AzureServiceBusSettings)).Bind(azureServiceBusSettings);
            this.mongoDBSettings = new MongoDBSettings();
            Configuration.GetSection(nameof(MongoDBSettings)).Bind(mongoDBSettings);
            this.fcmAppSettings = new FcmAppSettings();
            Configuration.GetSection(nameof(FcmAppSettings)).Bind(fcmAppSettings);
            this.authenticationSettings = new AuthenticationSettings();
            Configuration.GetSection(nameof(AuthenticationSettings)).Bind(authenticationSettings);
        }
コード例 #12
0
        public RepositoryTests()
        {
            _mockOptions = new Mock <IOptions <MongoDBSettings> >();
            _mockDB      = new Mock <IMongoDatabase>();
            _mockClient  = new Mock <IMongoClient>();
            var settings = new MongoDBSettings()
            {
                ConnectionString = "mongodb://tes123 ",
                DatabaseName     = "TestDB"
            };

            _mockOptions.Setup(s => s.Value).Returns(settings);
        }
コード例 #13
0
        public MongoRepository(IConfiguration configuration, ILogger <MongoRepository <T> > logger)
        {
            this.logger = logger;

            var MongoDBSettings = configuration.GetSection("MongoDBSettings").Get <MongoDBSettings>();

            this.MongoDBSettings = MongoDBSettings;

            MongoClientSettings clientSettings = Initialize(MongoDBSettings);

            MongoDatabase = new MongoClient(clientSettings).GetDatabase(MongoDBSettings.MongoDBName);

            collection = MongoDatabase.GetCollection <T>(GetCollectionName(typeof(T)));
        }
コード例 #14
0
        public MongoDBContext(IOptions <MongoDBSettings> settings, ILogger <MongoDBContext> logger)
        {
            this.m_settings = settings.Value;

            try {
                var mongosettings = MongoClientSettings.FromUrl(new MongoUrl(settings.Value.ConnectionString));

                mongosettings.MaxConnectionPoolSize = settings.Value.MaxConnections;
                this.m_client = new MongoClient(mongosettings);
            } catch (Exception ex) {
                logger.LogWarning(
                    "Unable to connect to MongoDB: {message}. Trace: {trace}. Exception: {exception}.",
                    ex.Message,
                    ex.StackTrace,
                    ex);
            }
        }
コード例 #15
0
        private MongoClientSettings Initialize(MongoDBSettings mongoDbSettings)
        {
            MongoInternalIdentity internalIdentity = new MongoInternalIdentity("admin", mongoDbSettings.MongoDBUserName);
            PasswordEvidence      passwordEvidence = new PasswordEvidence(mongoDbSettings.MongoDBPassword);
            MongoCredential       mongoCredential  = new MongoCredential(mongoDbSettings.MongoDBAuthMechanism, internalIdentity, passwordEvidence);

            MongoClientSettings clientSettings = new MongoClientSettings
            {
                Credential = mongoCredential
            };

            MongoServerAddress mongoServerAddress = new MongoServerAddress(mongoDbSettings.MongoDBHost, mongoDbSettings.MongoDBPort);

            clientSettings.Server = mongoServerAddress;

            return(clientSettings);
        }
コード例 #16
0
        public MongoDbContext(MongoDBSettings mongoDBSettings)
        {
            this.mongoDBSettings = mongoDBSettings;

            #region Configurar o MongoDB

            var settings = MongoClientSettings.FromUrl(new MongoUrl(mongoDBSettings.Host));

            if (mongoDBSettings.IsSSL)
            {
                settings.SslSettings = new SslSettings
                {
                    EnabledSslProtocols = System.Security.Authentication.SslProtocols.Tls12
                };
            }

            var client = new MongoClient(settings);
            mongoDatabase = client.GetDatabase(mongoDBSettings.DatabaseName);

            #endregion
        }
コード例 #17
0
        public void MongoDBGetCollection_ShouldReturn_ValidCollection()
        {
            //Arrange
            var settings = new MongoDBSettings()
            {
                ConnectionString         = "mongodb://tes123 ",
                DatabaseName             = "TestDB",
                PhoneBooksCollectionName = "123"
            };

            _mockOptions.Setup(s => s.Value).Returns(settings);

            _mockClient.Setup(c => c.GetDatabase(_mockOptions.Object.Value.DatabaseName, null)).Returns(_mockDB.Object);

            //Act
            var context      = new MongoPhoneBookDBContext(_mockOptions.Object);
            var myCollection = context.GetCollection <PhoneBook>();

            //Assert
            Assert.NotNull(myCollection);
        }
コード例 #18
0
 public MongoDBContext(MongoDBSettings mongoDBSettings)
 {
     this.mongoDBSettings = mongoDBSettings;
     Initialize();
 }
コード例 #19
0
 public DbService(MongoDBSettings dbSettings)
 {
     this.dbSettings = dbSettings;
     mongoClient     = new MongoClient(this.dbSettings.DBConnectionString);
     database        = mongoClient.GetDatabase(this.dbSettings.DatabaseName);
 }
コード例 #20
0
        public MongoDatabaseService(MongoDBSettings mongoDBSettings)
        {
            Database = new MongoClient(mongoDBSettings.ConnectionString).GetDatabase(mongoDBSettings.DatabaseName);

            BsonSerializer.RegisterDiscriminatorConvention(typeof(Item), new DiscriminatorConvention());
        }
コード例 #21
0
 //.net core 与 .net framework API 有点区别
 public BookRepository(IOptions <MongoDBSettings> mongoDBSetting)
 {
     MongoDBSetting = mongoDBSetting.Value;
     _client        = new MongoClient(MongoDBSetting.ConnectionString);
     _db            = _client.GetDatabase(MongoDBSetting.Database);
 }
コード例 #22
0
 protected private BaseRepository(IOptions <MongoDBSettings> mongoDbSettings)
 {
     _mongoDbSettings = mongoDbSettings.Value;
     _mongoClient     = new MongoClient(_mongoDbSettings.ConnectionString);
     _database        = _mongoClient.GetDatabase(_mongoDbSettings.DatabaseName);
 }
コード例 #23
0
 public OfertaRepository(IOptions <MongoDBSettings> mongoDBSettings)
 {
     _mongoDBSettings = mongoDBSettings.Value;
 }
コード例 #24
0
 public MongoClientFactory(MongoDBSettings mongoDbSettings)
 {
     this.mongoDbSettings = mongoDbSettings;
 }
コード例 #25
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                          .AddEnvironmentVariables();

            IConfigurationRoot configuration = builder.Build();

            var mdbSettings = new MongoDBSettings();

            configuration.GetSection("MongoDB").Bind(mdbSettings);

            Console.WriteLine($"Cluster Connection Uri is '{mdbSettings.ConnectionUri}'");
            Console.WriteLine($"DB Database Name is '{mdbSettings.DatabaseName}'");
            Console.WriteLine($"DB Collection Name is '{mdbSettings.CollectionName}'");

            DbManager dbMgr      = new DbManager(mdbSettings.ConnectionUri, mdbSettings.DatabaseName);
            var       collection = dbMgr.GetCollection(mdbSettings.CollectionName);
            var       colStates  = dbMgr.GetStatesCollection(mdbSettings.CollectionName);

            int    index   = (args != null && args.Length > 0) ? Int32.Parse(args[0]) : 1;
            string strMode = (args != null && args.Length > 1) ? args[1] : "bson";

            Console.WriteLine($"Command line parameter is '{index}'");

            List <BsonDocument> resData = new List <BsonDocument>();
            string   results            = string.Empty;
            DateTime dtStart            = DateTime.Now;

            if (strMode.ToLower() == "linq")
            {
                switch (index)
                {
                case 1:
                    Console.WriteLine("Total US Area with average region area is:\r\n");
                    results = dbMgr.GetTotalUSArea(colStates);
                    break;

                case 2:
                    Console.WriteLine("Area by US Census region (with states) are:\r\n");
                    List <CensusArea> censusAreas = dbMgr.GetAreaByRegion(colStates);
                    results = censusAreas.ToJson(new JsonWriterSettings {
                        Indent = true
                    });
                    break;

                case 3:
                    Console.WriteLine("Total US population by census year:\r\n");
                    results = dbMgr.GetPopulationByYear(colStates);
                    break;

                case 4:
                    Console.WriteLine("Southern States population by census year:\r\n");
                    results = dbMgr.GetSouthernStatesPopulationByYear(colStates);
                    break;

                case 5:
                    Console.WriteLine("Population delta between 1990 and 2010 by state:\r\n");
                    results = dbMgr.GetPopulationDeltaByState(colStates);
                    break;

                case 6:
                    Console.WriteLine("Population in states within 500 km of Memphis:\r\n");
                    resData = dbMgr.GetPopulationByState500KmsAroundMemphis(collection);
                    break;

                case 7:
                    Console.WriteLine("Population in states within 500 km of Memphis (stored in database collection):\r\n");
                    resData = dbMgr.GetPopulationByState500KmsAroundMemphis(collection, "peopleNearMemphis");
                    break;

                case 8:
                    Console.WriteLine("State population density comparison in 1990 and 2010 :\r\n");
                    results = dbMgr.GetPopulationDensityByRegion(colStates);
                    break;

                default:
                    results = dbMgr.GetTotalUSArea(colStates);
                    break;
                }
            }
            else
            {
                switch (index)
                {
                case 1:
                    Console.WriteLine("Total US Area with average region area is:\r\n");
                    resData = dbMgr.GetTotalUSArea(collection);
                    break;

                case 2:
                    Console.WriteLine("Area by US Census region (with states) are:\r\n");
                    resData = dbMgr.GetAreaByRegion(collection);
                    break;

                case 3:
                    Console.WriteLine("Total US population by census year:\r\n");
                    resData = dbMgr.GetPopulationByYear(collection);
                    break;

                case 4:
                    Console.WriteLine("Southern States population by census year:\r\n");
                    resData = dbMgr.GetSouthernStatesPopulationByYear(collection);
                    break;

                case 5:
                    Console.WriteLine("Population delta between 1990 and 2010 by state:\r\n");
                    resData = dbMgr.GetPopulationDeltaByState(collection);
                    break;

                case 6:
                    Console.WriteLine("Population in states within 500 km of Memphis:\r\n");
                    resData = dbMgr.GetPopulationByState500KmsAroundMemphis(collection);
                    break;

                case 7:
                    Console.WriteLine("Population in states within 500 km of Memphis (stored in database collection):\r\n");
                    resData = dbMgr.GetPopulationByState500KmsAroundMemphis(collection, "peopleNearMemphis");
                    break;

                case 8:
                    Console.WriteLine("State population density comparison in 1990 and 2010 :\r\n");
                    resData = dbMgr.GetPopulationDensityByState(collection);
                    break;

                default:
                    resData = dbMgr.GetTotalUSArea(collection);
                    break;
                }
            }

            DateTime dtEnd = DateTime.Now;

            if (resData.Count > 0)
            {
                results = resData.ToJson(new JsonWriterSettings {
                    Indent = true
                });
            }
            Console.WriteLine(results);
            Console.WriteLine($"{strMode.ToUpperInvariant()} method took {(dtEnd - dtStart).TotalMilliseconds} ms");
            Console.WriteLine("Press Enter to exit");
            Console.ReadLine();
        }
コード例 #26
0
ファイル: MongoDBConnectionHelper.cs プロジェクト: gittsi/000
 public MongoDBConnectionHelper(MongoDBSettings settings)
 {
     _settings = settings;
 }