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; }
public Mongo2GoProvider(INdmMongoConfig config, ILogManager logManager) { _runner = MongoDbRunner.Start(); config.ConnectionString = _runner.ConnectionString; _mongoProvider = new MongoProvider(config, logManager); }