public VostokHealthCheckService( [NotNull] IOptions <HealthCheckServiceOptions> options, [NotNull] IServiceProvider serviceProvider, [NotNull] IHealthTracker vostokTracker, [NotNull] Type defaultServiceType, [NotNull] List <IDisposable> disposables) { this.defaultServiceType = defaultServiceType ?? throw new ArgumentNullException(nameof(defaultServiceType)); this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); this.vostokTracker = vostokTracker ?? throw new ArgumentNullException(nameof(vostokTracker)); this.disposables = disposables ?? throw new ArgumentNullException(nameof(disposables)); this.options = (options ?? throw new ArgumentNullException(nameof(options))).Value; RegisterMicrosoftChecksInVostokTracker(); }
private HealthCheckServiceOptions CreateOptions() { var result = new HealthCheckServiceOptions(); foreach (var microsoftRegistration in options.Registrations) { result.Registrations.Add(microsoftRegistration); } foreach (var(name, check) in vostokTracker) { if (check.IsAdapter()) { continue; } var registration = new HealthCheckRegistration(name, check.ToMicrosoftCheck(), null, new[] { "vostok" }); result.Registrations.Add(registration); } return(result); }
private HealthCheckService CreateService(HealthCheckServiceOptions optionsToUse) => (HealthCheckService)ActivatorUtilities.CreateInstance(serviceProvider, defaultServiceType, Options.Create(optionsToUse));