Documentation modifications

This commit is contained in:
julian
2026-06-27 15:23:26 -07:00
parent a633fe6c06
commit a19fb90902
218 changed files with 2882 additions and 0 deletions
@@ -41,6 +41,15 @@ public class RelayService : IRelayService
private readonly string _url;
private UriBuilder? _builder;
/// <summary>
/// Initializes a new instance of the <see cref="RelayService"/>, storing its logging, HTTP, configuration, point-of-care, and repository dependencies, resolving the relay endpoint from configuration, and asynchronously invoking <see cref="RelayService.InitRelayWithStatus"/>.
/// </summary>
/// <param name="logger">The <see cref="ILogger{RelayService}"/> used to record diagnostic and operational messages.</param>
/// <param name="httpClientFactory">The <see cref="IHttpClientFactory"/> used to create HTTP clients for outbound calls.</param>
/// <param name="relaySettings">The <see cref="IOptions{RelaySettings}"/> providing the relay configuration, including the <see cref="RelaySettings.RecordingOrApiUrl"/> used to compute the relay endpoint.</param>
/// <param name="pointOfCareService">The <see cref="IPointOfCareService"/> used to interact with point-of-care data.</param>
/// <param name="relayRepository">The <see cref="IRelayRepository"/> used to persist and retrieve relay state.</param>
/// <!-- aidoc:v1 sig=6febd55 body=1386dc6 -->
public RelayService(
ILogger<RelayService> logger,
IHttpClientFactory httpClientFactory,
@@ -277,6 +286,12 @@ public class RelayService : IRelayService
return _relayRepository.GetRelayByTypeInList(configurationRelayList, type);
}
/// <summary>
/// Retrieves a paginated list of <see cref="Relay"/> entities, optionally filtered by whether each relay is currently in use by the point of care service.
/// </summary>
/// <param name="filter">The <see cref="PaginationFilter"/> containing paging parameters and optional filter criteria, including the <see cref="FilteredRequest.InUse"/> flag.</param>
/// <returns>A <see cref="Task"/> containing a <see cref="PaginationResponse{T}"/> of <see cref="Relay"/> with the requested page data, the current page number, page size, and total document count.</returns>
/// <!-- aidoc:v1 sig=54c231c body=89d28fb -->
public async Task<PaginationResponse<Relay>> GetPaginatedRelays(PaginationFilter filter)
{
var usedRelayIds = await _pointOfCareService.FindAllIdRelaysInUse();
@@ -343,6 +358,11 @@ public class RelayService : IRelayService
public event EventHandler<Tuple<RelayDevice, int>>? RelayStatusChanged;
/// <summary>
/// Asynchronously initializes the in-memory relay status cache by iterating the point-of-care configurations returned by the service and querying the status of each configured relay.
/// Configurations whose <c>RelayList</c> is null are skipped, and only relays flagged with the cache option have their status stored in the <c>_relayWithStatus</c> dictionary keyed by IP, port, and relay number; per-relay and overall failures are logged instead of being rethrown.
/// </summary>
/// <!-- aidoc:v1 sig=036fb02 body=082292a -->
private async Task InitRelayWithStatus()
{
try