< Summary

Information
Class: Elsa.Identity.Endpoints.Roles.Delete.RemediateRoleDeletionRequest
Assembly: Elsa.Identity
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/Endpoints/Roles/Delete/Models.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 6
Coverable lines: 6
Total lines: 61
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_ExpectedDependencyVersion()100%210%
get_ConfirmRemoveFromEditableJitPolicies()100%210%
get_ConfirmEmptyDefaultRoles()100%210%
get_ConfirmBestEffort()100%210%
get_SelectedReferences()100%210%
get_ReplacementRoleId()100%210%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/Endpoints/Roles/Delete/Models.cs

#LineLine coverage
 1using Elsa.Identity.Models;
 2
 3namespace Elsa.Identity.Endpoints.Roles.Delete;
 4
 5internal sealed class RemediateRoleDeletionRequest
 6{
 07    public string? ExpectedDependencyVersion { get; set; }
 08    public bool ConfirmRemoveFromEditableJitPolicies { get; set; }
 09    public bool ConfirmEmptyDefaultRoles { get; set; }
 010    public bool ConfirmBestEffort { get; set; }
 011    public IReadOnlyCollection<RoleDeletionReferenceSelection>? SelectedReferences { get; set; }
 012    public string? ReplacementRoleId { get; set; }
 13}
 14
 15internal sealed record RoleDeletionErrorResponse(string Error, string Message, object? Details = null);
 16
 17internal sealed record RoleDeletionImpactResponse(
 18    string RoleId,
 19    string DependencyVersion,
 20    string ExecutionMode,
 21    bool CanDelete,
 22    bool CanRemediate,
 23    IReadOnlyCollection<RoleDeletionDependencyResponse> ConfigurationReferences,
 24    IReadOnlyCollection<RoleDeletionDependencyResponse> EditableReferences,
 25    IReadOnlyCollection<string> Warnings)
 26{
 27    public static RoleDeletionImpactResponse From(RoleDeletionImpact impact)
 28    {
 29        var references = impact.Dependencies.Select(RoleDeletionDependencyResponse.From).ToArray();
 30        return new RoleDeletionImpactResponse(
 31            impact.RoleId,
 32            impact.DependencyVersion,
 33            impact.ExecutionMode == RoleDeletionExecutionMode.Atomic ? "atomic" : "bestEffort",
 34            impact.CanDelete,
 35            impact.CanRemediate,
 36            references.Where(x => x.Ownership == "configuration").ToArray(),
 37            references.Where(x => x.Ownership == "database").ToArray(),
 38            impact.Dependencies.Any(x => x.RemovesLastDefaultRole) ? ["removes_last_default_role"] : []);
 39    }
 40}
 41
 42internal sealed record RoleDeletionDependencyResponse(
 43    string Source,
 44    string OwnerId,
 45    string OwnerKey,
 46    string PolicyBranch,
 47    string Ownership,
 48    string? ConfigurationPath,
 49    long? Revision,
 50    bool RemovesLastDefaultRole)
 51{
 52    public static RoleDeletionDependencyResponse From(RoleDeletionDependency dependency) => new(
 53        dependency.Source,
 54        dependency.OwnerId,
 55        dependency.OwnerKey,
 56        dependency.PolicyBranch,
 57        dependency.Ownership == RoleDeletionDependencyOwnership.Configuration ? "configuration" : "database",
 58        dependency.ConfigurationPath,
 59        dependency.ExpectedRevision,
 60        dependency.RemovesLastDefaultRole);
 61}