< 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
70%
Covered lines: 21
Uncovered lines: 9
Coverable lines: 30
Total lines: 56
Line coverage: 70%
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%210%
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    {
 713        await ExecuteEventHandlersAsync(
 714            tenantActivatedEvents,
 1415            (handler, eventArgs) => handler.TenantActivatedAsync(eventArgs),
 716            args,
 717            "activated");
 718    }
 19
 20    public async Task TenantDeactivatedAsync(TenantDeactivatedEventArgs args)
 21    {
 322        await ExecuteEventHandlersAsync(
 323            tenantDeactivatedEvents,
 324            (handler, eventArgs) => handler.TenantDeactivatedAsync(eventArgs),
 325            args,
 326            "deactivated");
 327    }
 28
 29    public async Task TenantDeletedAsync(TenantDeletedEventArgs args)
 30    {
 031        await ExecuteEventHandlersAsync(
 032            tenantDeletedEvents,
 033            (handler, eventArgs) => handler.TenantDeletedAsync(eventArgs),
 034            args,
 035            "deleted");
 036    }
 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    {
 5444        foreach (var handler in handlers)
 45        {
 46            try
 47            {
 1748                await handlerAction(handler, args);
 1749            }
 050            catch (Exception e)
 51            {
 052                logger.LogError(e, "Error occurred while processing tenant {EventType} event.", eventType);
 053            }
 54        }
 1055    }
 56}