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)); }
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); }