< Summary

Information
Class: Elsa.Identity.Endpoints.Roles.Delete.RoleDeletionImpactResponse
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: 19
Coverable lines: 19
Total lines: 59
Line coverage: 0%
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%210%
get_RoleId()100%210%
get_DependencyVersion()100%210%
get_ExecutionMode()100%210%
get_CanDelete()100%210%
get_CanRemediate()100%210%
get_ConfigurationReferences()100%210%
get_EditableReferences()100%210%
get_Warnings()100%210%
From(...)0%2040%

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{
 7    public string? ExpectedDependencyVersion { get; set; }
 8    public bool ConfirmRemoveFromEditableJitPolicies { get; set; }
 9    public bool ConfirmEmptyDefaultRoles { get; set; }
 10    public bool ConfirmBestEffort { get; set; }
 11}
 12
 13internal sealed record RoleDeletionErrorResponse(string Error, string Message, object? Details = null);
 14
 015internal sealed record RoleDeletionImpactResponse(
 016    string RoleId,
 017    string DependencyVersion,
 018    string ExecutionMode,
 019    bool CanDelete,
 020    bool CanRemediate,
 021    IReadOnlyCollection<RoleDeletionDependencyResponse> ConfigurationReferences,
 022    IReadOnlyCollection<RoleDeletionDependencyResponse> EditableReferences,
 023    IReadOnlyCollection<string> Warnings)
 24{
 25    public static RoleDeletionImpactResponse From(RoleDeletionImpact impact)
 26    {
 027        var references = impact.Dependencies.Select(RoleDeletionDependencyResponse.From).ToArray();
 028        return new RoleDeletionImpactResponse(
 029            impact.RoleId,
 030            impact.DependencyVersion,
 031            impact.ExecutionMode == RoleDeletionExecutionMode.Atomic ? "atomic" : "bestEffort",
 032            impact.CanDelete,
 033            impact.CanRemediate,
 034            references.Where(x => x.Ownership == "configuration").ToArray(),
 035            references.Where(x => x.Ownership == "database").ToArray(),
 036            impact.Dependencies.Any(x => x.RemovesLastDefaultRole) ? ["removes_last_default_role"] : []);
 37    }
 38}
 39
 40internal sealed record RoleDeletionDependencyResponse(
 41    string Source,
 42    string OwnerId,
 43    string OwnerKey,
 44    string PolicyBranch,
 45    string Ownership,
 46    string? ConfigurationPath,
 47    long? Revision,
 48    bool RemovesLastDefaultRole)
 49{
 50    public static RoleDeletionDependencyResponse From(RoleDeletionDependency dependency) => new(
 51        dependency.Source,
 52        dependency.OwnerId,
 53        dependency.OwnerKey,
 54        dependency.PolicyBranch,
 55        dependency.Ownership == RoleDeletionDependencyOwnership.Configuration ? "configuration" : "database",
 56        dependency.ConfigurationPath,
 57        dependency.ExpectedRevision,
 58        dependency.RemovesLastDefaultRole);
 59}