< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Query.Input.ListSystemAdminsQuery
Assembly: ArturRios.Heimdall.Query
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Input/ListSystemAdminsQuery.cs
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 33
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 4
Fully covered methods: 4
Total methods: 4
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Name()100%11100%
get_Email()100%11100%
get_ActingPersonId()100%11100%
get_ActingRole()100%11100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Input/ListSystemAdminsQuery.cs

#LineLine coverage
 1using System.Text.Json.Serialization;
 2using ArturRios.Heimdall.Shared.Security;
 3using ArturRios.Mediator.Query;
 4
 5namespace ArturRios.Heimdall.Query.Input;
 6
 7/// <summary>
 8///     Request to list the system's <c>SystemAdmin</c> persons, with pagination and optional
 9///     filtering (UC-07 read e, FR-PE-13), so a System Admin can see who else holds full access to
 10///     the deployment. <see cref="ActingPersonId" />/<see cref="ActingRole" /> are set by the
 11///     controller from the authenticated caller and are never taken from the request; both are
 12///     <c>[JsonIgnore]</c>, which <c>ServerPopulatedBindingMetadataProvider</c> turns into "not
 13///     bindable", so they never reach the public contract.
 14/// </summary>
 15/// <remarks>
 16///     There is deliberately no <c>IncludeDeleted</c>, as in <see cref="ListScopeAdminsQuery" />: the
 17///     question this answers is who holds full access now, and a logically deleted administrator
 18///     holds none.
 19/// </remarks>
 20public class ListSystemAdminsQuery : BaseQuery, IActorScoped
 21{
 22    /// <summary>Optional case-insensitive substring filter on the administrator's name.</summary>
 3923    public string? Name { get; set; }
 24
 25    /// <summary>Optional case-insensitive substring filter on the administrator's email.</summary>
 3626    public string? Email { get; set; }
 27
 28    [JsonIgnore]
 1929    public Guid ActingPersonId { get; set; }
 30
 31    [JsonIgnore]
 1932    public int ActingRole { get; set; }
 33}