< Summary

Information
Class: Elsa.Common.Multitenancy.TenantEventsManager
Assembly: Elsa.Common
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Common/Multitenancy/Implementations/TenantEventsManager.cs
Line coverage
90%
Covered lines: 27
Uncovered lines: 3
Coverable lines: 30
Total lines: 56
Line coverage: 90%
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
.ctor(...)100%11100%
TenantActivatedAsync()100%11100%
TenantDeactivatedAsync()100%11100%
TenantDeletedAsync()100%11100%
ExecuteEventHandlersAsync()100%2257.14%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Common/Multitenancy/Implementations/TenantEventsManager.cs

#LineLine coverage
 1using Microsoft.Extensions.Logging;
 2
 3namespace Elsa.Common.Multitenancy;
 4
 75public class TenantEventsManager(
 76    IEnumerable<ITenantActivatedEvent> tenantActivatedEvents,
 77    IEnumerable<ITenantDeactivatedEvent> tenantDeactivatedEvents,
 78    IEnumerable<ITenantDeletedEvent> tenantDeletedEvents,
 79    ILogger<TenantEventsManager> logger)
 10{
 11    public async Task TenantActivatedAsync(TenantActivatedEventArgs args)
 12    {
 1813        await ExecuteEventHandlersAsync(
 1814            tenantActivatedEvents,
 3015            (handler, eventArgs) => handler.TenantActivatedAsync(eventArgs),
 1816            args,
 1817            "activated");
 1818    }
 19
 20    public async Task TenantDeactivatedAsync(TenantDeactivatedEventArgs args)
 21    {
 1322        await ExecuteEventHandlersAsync(
 1323            tenantDeactivatedEvents,
 1324            (handler, eventArgs) => handler.TenantDeactivatedAsync(eventArgs),
 1325            args,
 1326            "deactivated");
 1327    }
 28
 29    public async Task TenantDeletedAsync(TenantDeletedEventArgs args)
 30    {
 131        await ExecuteEventHandlersAsync(
 132            tenantDeletedEvents,
 133            (handler, eventArgs) => handler.TenantDeletedAsync(eventArgs),
 134            args,
 135            "deleted");
 136    }
 37
 38    private async Task ExecuteEventHandlersAsync<THandler, TArgs>(
 39        IEnumerable<THandler> handlers,
 40        Func<THandler, TArgs, Task> handlerAction,
 41        TArgs args,
 42        string eventType)
 43    {
 15244        foreach (var handler in handlers)
 45        {
 46            try
 47            {
 4448                await handlerAction(handler, args);
 4449            }
 050            catch (Exception e)
 51            {
 052                logger.LogError(e, "Error occurred while processing tenant {EventType} event.", eventType);
 053            }
 54        }
 3255    }
 56}