using Elsa.Diagnostics.StructuredLogs.Contracts; using Elsa.Diagnostics.StructuredLogs.Logging; using Elsa.Diagnostics.StructuredLogs.Options; using Elsa.Diagnostics.StructuredLogs.Providers.InMemory; using Elsa.Diagnostics.StructuredLogs.RealTime; using Elsa.Diagnostics.StructuredLogs.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging; namespace Elsa.Diagnostics.StructuredLogs.Extensions; public static class ServiceCollectionExtensions { public static IServiceCollection AddStructuredLogsServices(this IServiceCollection services, Action? configureOptions = null) { if (configureOptions != null) services.Configure(configureOptions); services.AddSignalR(); services.AddOptions(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(sp => sp.GetRequiredService()); services.TryAddSingleton(); services.TryAddSingleton(sp => sp.GetRequiredService()); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddEnumerable(ServiceDescriptor.Singleton()); return services; } }