docs+ui: backfill XML doc comments and finish dashboard layout pass

Adds missing <summary>/<param> XML docs across 99 server, worker, and test
files so CommentChecker reports zero issues (TreatWarningsAsErrors needs the
analyzer clean). Bundles in WIP dashboard work: NavSection extraction,
MainLayout/site.css/js styling alignment, and DashboardOptions/Auth tweaks.
This commit is contained in:
Joseph Doherty
2026-05-27 14:20:10 -04:00
parent 382861c602
commit 615b487a77
110 changed files with 1473 additions and 192 deletions
@@ -75,17 +75,24 @@ public sealed class MxAccessComServerTests
private readonly int registerHandle;
private readonly List<string> calls = new();
/// <summary>Initializes a new instance with the specified register handle.</summary>
/// <param name="registerHandle">The initial server handle value to return from Register.</param>
public RecordingMxAccessServer(int registerHandle)
{
this.registerHandle = registerHandle;
}
/// <summary>Gets the client name passed to the most recent Register call.</summary>
public string? RegisteredClientName { get; private set; }
/// <summary>Gets or sets an exception to throw from the Register method.</summary>
public Exception? ThrowOnRegister { get; set; }
/// <summary>Gets the recorded method calls as strings.</summary>
public IReadOnlyList<string> Calls => calls.ToArray();
/// <summary>Records a Register call and returns the configured handle.</summary>
/// <param name="clientName">The client name to record.</param>
public int Register(string clientName)
{
calls.Add($"Register:{clientName}");
@@ -98,58 +105,103 @@ public sealed class MxAccessComServerTests
return registerHandle;
}
/// <summary>Records an Unregister call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
public void Unregister(int serverHandle)
{
calls.Add($"Unregister:{serverHandle}");
}
/// <summary>Records an AddItem call and returns zero.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemDefinition">The item definition string to record.</param>
public int AddItem(int serverHandle, string itemDefinition)
{
calls.Add($"AddItem:{serverHandle}:{itemDefinition}");
return 0;
}
/// <summary>Records an AddItem2 call and returns zero.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemDefinition">The item definition string to record.</param>
/// <param name="itemContext">The item context string to record.</param>
public int AddItem2(int serverHandle, string itemDefinition, string itemContext)
{
calls.Add($"AddItem2:{serverHandle}:{itemDefinition}:{itemContext}");
return 0;
}
/// <summary>Records a RemoveItem call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
public void RemoveItem(int serverHandle, int itemHandle)
{
calls.Add($"RemoveItem:{serverHandle}:{itemHandle}");
}
/// <summary>Records an Advise call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
public void Advise(int serverHandle, int itemHandle)
{
calls.Add($"Advise:{serverHandle}:{itemHandle}");
}
/// <summary>Records an UnAdvise call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
public void UnAdvise(int serverHandle, int itemHandle)
{
calls.Add($"UnAdvise:{serverHandle}:{itemHandle}");
}
/// <summary>Records an AdviseSupervisory call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
public void AdviseSupervisory(int serverHandle, int itemHandle)
{
calls.Add($"AdviseSupervisory:{serverHandle}:{itemHandle}");
}
/// <summary>Records a Write call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
/// <param name="value">The value to write.</param>
/// <param name="userId">The user identifier.</param>
public void Write(int serverHandle, int itemHandle, object? value, int userId)
{
calls.Add($"Write:{serverHandle}:{itemHandle}:{value}:{userId}");
}
/// <summary>Records a Write2 call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
/// <param name="value">The value to write.</param>
/// <param name="timestamp">The timestamp value.</param>
/// <param name="userId">The user identifier.</param>
public void Write2(int serverHandle, int itemHandle, object? value, object? timestamp, int userId)
{
calls.Add($"Write2:{serverHandle}:{itemHandle}:{value}:{timestamp}:{userId}");
}
/// <summary>Records a WriteSecured call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
/// <param name="currentUserId">The current user identifier.</param>
/// <param name="verifierUserId">The verifier user identifier.</param>
/// <param name="value">The value to write.</param>
public void WriteSecured(int serverHandle, int itemHandle, int currentUserId, int verifierUserId, object? value)
{
calls.Add($"WriteSecured:{serverHandle}:{itemHandle}:{currentUserId}:{verifierUserId}:{value}");
}
/// <summary>Records a WriteSecured2 call.</summary>
/// <param name="serverHandle">The MXAccess server handle.</param>
/// <param name="itemHandle">The MXAccess item handle.</param>
/// <param name="currentUserId">The current user identifier.</param>
/// <param name="verifierUserId">The verifier user identifier.</param>
/// <param name="value">The value to write.</param>
/// <param name="timestamp">The timestamp value.</param>
public void WriteSecured2(
int serverHandle, int itemHandle, int currentUserId, int verifierUserId, object? value, object? timestamp)
{