< Summary

Information
Class: Elsa.Identity.Services.RoleManager
Assembly: Elsa.Identity
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/Services/RoleManager.cs
Line coverage
23%
Covered lines: 3
Uncovered lines: 10
Coverable lines: 13
Total lines: 40
Line coverage: 23%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
CreateRoleAsync()0%2040%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/Services/RoleManager.cs

#LineLine coverage
 1using Elsa.Identity.Contracts;
 2using Elsa.Identity.Entities;
 3using Elsa.Identity.Models;
 4using Humanizer;
 5
 6namespace Elsa.Identity.Services;
 7
 8/// <summary>
 9/// Default implementation of <see cref="IRoleManager"/>.
 10/// </summary>
 11public class RoleManager : IRoleManager
 12{
 13    private readonly IRoleStore _roleStore;
 14
 315    public RoleManager(IRoleStore roleStore)
 16    {
 317        _roleStore = roleStore;
 318    }
 19
 20    /// <inheritdoc />
 21    public async Task<CreateRoleResult> CreateRoleAsync(
 22        string name,
 23        ICollection<string>? permissions = null,
 24        string? id = null,
 25        CancellationToken cancellationToken = default)
 26    {
 027        var roleId = id ?? name.Kebaberize();
 28
 029        var role = new Role
 030        {
 031            Id = roleId,
 032            Name = name,
 033            Permissions = permissions ?? new List<string>()
 034        };
 35
 036        await _roleStore.SaveAsync(role, cancellationToken);
 37
 038        return new CreateRoleResult(role);
 039    }
 40}