public static ILogServiceCollection AddExceptionless(this ILogServiceCollection services, IOptions <ExceptionlessSinkOptions> settings, Action <IConfiguration, ExceptionlessSinkConfiguration> configAct = null) { services.AddSinkSettings <ExceptionlessSinkOptions, ExceptionlessSinkConfiguration>(settings.Value, (conf, sink) => configAct?.Invoke(conf, sink)); services.AddDependency(s => { s.AddScoped <ILogPayloadClient, ExceptionlessPayloadClient>(); s.AddSingleton <ILogPayloadClientProvider, ExceptionlessPayloadClientProvider>(); s.TryAdd(ServiceDescriptor.Singleton(settings)); }); if (!string.IsNullOrWhiteSpace(settings.Value.OriginConfigFilePath)) { services.ModifyConfigurationBuilder(b => b.AddFile(settings.Value.OriginConfigFilePath, settings.Value.OriginConfigFileType)); services.AddOriginConfigAction(root => ExceptionlessClient.Default.Configuration.ReadFromConfiguration(root)); } else if (services.BeGivenConfigurationBuilder || services.BeGivenConfigurationRoot) { services.AddOriginConfigAction(root => ExceptionlessClient.Default.Configuration.ReadFromConfiguration(root)); } if (!string.IsNullOrWhiteSpace(settings.Value.ApiKey)) { services.AddOriginConfigAction(root => ExceptionlessClient.Default.Startup(settings.Value.ApiKey)); } else { services.AddOriginConfigAction(root => ExceptionlessClient.Default.Startup()); } RegisterCoreComponentsTypes(); return(services); }
private static void RegisterOriginalConfig(ILogServiceCollection services, string path, FileTypes fileType) { if (!string.IsNullOrWhiteSpace(path)) { services.ModifyConfigurationBuilder(b => ConfigLoadingContext.Load(b, path, fileType)); services.AddOriginalConfigAction(root => ExceptionlessClient.Default.Configuration.ReadFromConfiguration(root)); } else if (services.BeGivenConfigurationBuilder || services.BeGivenConfigurationRoot) { services.AddOriginalConfigAction(root => ExceptionlessClient.Default.Configuration.ReadFromConfiguration(root)); } }