public static IHealthContributor GetMongoDbHealthContributor(IConfiguration configuration, ILogger <MongoDbHealthContributor> logger = null)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            var info         = configuration.GetSingletonServiceInfo <MongoDbServiceInfo>();
            var mongoOptions = new MongoDbConnectorOptions(configuration);
            var factory      = new MongoDbConnectorFactory(info, mongoOptions, MongoDbTypeLocator.MongoClient);

            return(new MongoDbHealthContributor(factory, logger));
        }
Exemplo n.º 2
0
        private static void DoAdd(IServiceCollection services, MongoDbServiceInfo info, IConfiguration config, ServiceLifetime contextLifetime, bool addSteeltoeHealthChecks = false)
        {
            var mongoClient   = MongoDbTypeLocator.MongoClient;
            var mongoOptions  = new MongoDbConnectorOptions(config);
            var clientFactory = new MongoDbConnectorFactory(info, mongoOptions, mongoClient);

            services.Add(new ServiceDescriptor(MongoDbTypeLocator.IMongoClient, clientFactory.Create, contextLifetime));
            services.Add(new ServiceDescriptor(mongoClient, clientFactory.Create, contextLifetime));
            if (!services.Any(s => s.ServiceType == typeof(HealthCheckService)) || addSteeltoeHealthChecks)
            {
                services.Add(new ServiceDescriptor(typeof(IHealthContributor), ctx => new MongoDbHealthContributor(clientFactory, ctx.GetService <ILogger <MongoDbHealthContributor> >()), ServiceLifetime.Singleton));
            }

            var mongoInfo  = ReflectionHelpers.FindType(MongoDbTypeLocator.Assemblies, MongoDbTypeLocator.MongoConnectionInfo);
            var urlFactory = new MongoDbConnectorFactory(info, mongoOptions, mongoInfo);

            services.Add(new ServiceDescriptor(mongoInfo, urlFactory.Create, contextLifetime));
        }
        public static IHealthContributor GetMongoDbHealthContributor(IConfiguration configuration, ILogger <MongoDbHealthContributor> logger = null)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            var info         = configuration.GetSingletonServiceInfo <MongoDbServiceInfo>();
            var mongoOptions = new MongoDbConnectorOptions(configuration);
            var factory      = new MongoDbConnectorFactory(info, mongoOptions, MongoDbTypeLocator.MongoClient);
            var timeout      = 5000;

            if (mongoOptions.Options.TryGetValue("connectTimeoutMS", out var value))
            {
                int.TryParse(value, out timeout);
            }

            var contributor = new MongoDbHealthContributor(factory, logger, timeout);

            return(contributor);
        }
 public MongoDbHealthContributor(MongoDbConnectorFactory factory, ILogger <MongoDbHealthContributor> logger = null, int timeout = 5000)
 {
     _logger      = logger;
     _mongoClient = factory.Create(null);
     Timeout      = timeout;
 }
 public MongoDbHealthContributor(MongoDbConnectorFactory factory, ILogger <MongoDbHealthContributor> logger = null)
 {
     _logger      = logger;
     _mongoClient = factory.Create(null);
 }