< Summary

Information
Class: Elsa.Diagnostics.ConsoleLogs.Extensions.ServiceCollectionExtensions
Assembly: Elsa.Diagnostics.ConsoleLogs
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Diagnostics.ConsoleLogs/Extensions/ServiceCollectionExtensions.cs
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 34
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddConsoleLogsServices(...)100%22100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Diagnostics.ConsoleLogs/Extensions/ServiceCollectionExtensions.cs

#LineLine coverage
 1using ConsoleLogStreaming.Core.DependencyInjection;
 2using ConsoleLogStreaming.Core.Options;
 3using CShells.Lifecycle;
 4using Elsa.Diagnostics.ConsoleLogs.RealTime;
 5using Elsa.Diagnostics.ConsoleLogs.Services;
 6using Microsoft.Extensions.DependencyInjection;
 7using Microsoft.Extensions.DependencyInjection.Extensions;
 8
 9namespace Elsa.Diagnostics.ConsoleLogs.Extensions;
 10
 11public static class ServiceCollectionExtensions
 12{
 13    /// <summary>
 14    /// Registers shell-level console-log consumers and exposes the process-wide capture pipeline through DI.
 15    /// </summary>
 16    public static IServiceCollection AddConsoleLogsServices(this IServiceCollection services, Action<ConsoleLogOptions>?
 17    {
 818        services.AddConsoleLogContextServices();
 819        services.AddConsoleLogStreaming(options =>
 820        {
 821            ElsaConsoleLogOptions.ConfigureDefaults(options);
 822            configureOptions?.Invoke(options);
 1023        });
 824        services.AddSignalR();
 825        services.DecorateConsoleLogProvider();
 826        services.TryAddSingleton<IElsaConsoleLogHubAuthorizer, ElsaConsoleLogStreamHubAuthorizer>();
 827        services.TryAddSingleton<ElsaConsoleLogSubscriptionManager>();
 828        services.TryAddScoped<ConsoleLogCaptureShellLease>();
 829        services.TryAddEnumerable(ServiceDescriptor.Scoped<IShellInitializer, ConsoleLogCaptureShellInitializer>());
 830        services.TryAddEnumerable(ServiceDescriptor.Scoped<IDrainHandler, ConsoleLogCaptureShellDrainHandler>());
 31
 832        return services;
 33    }
 34}