Example #1
0
        public MongoProvider(INdmMongoConfig config, ILogManager logManager)
        {
            _config = config;
            ILogger logger = logManager.GetClassLogger();

            if (_initialized)
            {
                return;
            }

            RegisterConventions();
            MongoUrl            connectionUrl  = new MongoUrl(config.ConnectionString);
            MongoClientSettings clientSettings = MongoClientSettings.FromUrl(connectionUrl);

            if (_config.LogQueries ?? false)
            {
                clientSettings.ClusterConfigurator = cb =>
                {
                    cb.Subscribe <CommandStartedEvent>(e =>
                    {
                        if (logger.IsInfo)
                        {
                            logger.Info($"MongoDB command started '{e.CommandName}': {e.Command.ToJson()}");
                        }
                    });
                    cb.Subscribe <CommandSucceededEvent>(e =>
                    {
                        if (logger.IsInfo)
                        {
                            logger.Info($"MongoDB command succeeded '{e.CommandName}': {e.Reply.ToJson()}");
                        }
                    });
                    cb.Subscribe <CommandFailedEvent>(e =>
                    {
                        if (logger.IsError)
                        {
                            logger.Error($"MongoDB command failed '{e.CommandName}': {e.Failure}");
                        }
                    });
                };
            }

            _client      = new MongoClient(clientSettings);
            _initialized = true;
        }
Example #2
0
 public Mongo2GoProvider(INdmMongoConfig config, ILogManager logManager)
 {
     _runner = MongoDbRunner.Start();
     config.ConnectionString = _runner.ConnectionString;
     _mongoProvider          = new MongoProvider(config, logManager);
 }