docs(xml): fill missing XML doc comments + strip task-tracking refs across src (fixdocs)

Add missing <summary>/<param>/<returns>/<typeparam> tags and switch
interface implementations to <inheritdoc/> across 106 files; strip
project bookkeeping identifiers (Task NN, #05-TNN, PLAN-04, StoreAndForward-0NN)
from shipped code comments while preserving the descriptive rationale.
Comment-only: zero code-logic lines changed; solution builds 0/0.

Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
Joseph Doherty
2026-07-10 08:23:56 -04:00
parent 75007b9edd
commit 5a878b78d4
106 changed files with 580 additions and 180 deletions
@@ -4,7 +4,7 @@ using ZB.MOM.WW.ScadaBridge.Transport.Serialization;
namespace ZB.MOM.WW.ScadaBridge.Transport.Import;
/// <summary>
/// #05-T6 — the single source of truth for "has this template child changed?": the
/// The single source of truth for "has this template child changed?": the
/// field-for-field equality between a persisted template-child entity and its bundle
/// DTO. Every writable field is compared.
/// <para>
@@ -29,6 +29,9 @@ internal static class TemplateChildEquality
/// normalises List values) pass a DTO whose <c>Value</c> is already normalised.
/// </para>
/// </summary>
/// <param name="e">The persisted template attribute.</param>
/// <param name="i">The bundle DTO to compare against.</param>
/// <returns><c>true</c> when every writable field matches.</returns>
public static bool AttributesEqual(TemplateAttribute e, TemplateAttributeDto i) =>
e.Value == i.Value
&& e.DataType == i.DataType
@@ -47,6 +50,10 @@ internal static class TemplateChildEquality
/// name for comparison. The single source of truth for "alarm changed"; both
/// ArtifactDiff and <c>SyncTemplateAlarmsAsync</c> call it.
/// </summary>
/// <param name="e">The persisted template alarm.</param>
/// <param name="i">The bundle DTO to compare against.</param>
/// <param name="scriptNameById">Resolver mapping an on-trigger script id to its name.</param>
/// <returns><c>true</c> when every writable field matches.</returns>
public static bool AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func<int?, string?> scriptNameById) =>
e.Description == i.Description
&& e.PriorityLevel == i.PriorityLevel
@@ -61,6 +68,9 @@ internal static class TemplateChildEquality
/// field. The single source of truth for "script changed"; both ArtifactDiff
/// (via <c>DiffScriptChildren</c>) and <c>SyncTemplateScriptsAsync</c> call it.
/// </summary>
/// <param name="e">The persisted template script.</param>
/// <param name="i">The bundle DTO to compare against.</param>
/// <returns><c>true</c> when every writable field matches.</returns>
public static bool ScriptsEqual(TemplateScript e, TemplateScriptDto i) =>
string.Equals(e.Code, i.Code, StringComparison.Ordinal)
&& e.TriggerType == i.TriggerType
@@ -77,6 +87,9 @@ internal static class TemplateChildEquality
/// writable field. The single source of truth for "native alarm source changed";
/// both ArtifactDiff and <c>SyncTemplateNativeAlarmSourcesAsync</c> call it.
/// </summary>
/// <param name="e">The persisted native alarm source.</param>
/// <param name="i">The bundle DTO to compare against.</param>
/// <returns><c>true</c> when every writable field matches.</returns>
public static bool NativeAlarmSourcesEqual(TemplateNativeAlarmSource e, TemplateNativeAlarmSourceDto i) =>
e.Description == i.Description
&& e.ConnectionName == i.ConnectionName
@@ -91,6 +104,8 @@ internal static class TemplateChildEquality
/// scripts, for the alarm on-trigger comparison. Returns null for a null id or an
/// id absent from the set.
/// </summary>
/// <param name="scripts">The template scripts to index by id.</param>
/// <returns>A resolver mapping a script id to its name, or null when unresolved.</returns>
public static Func<int?, string?> ScriptNameResolver(IEnumerable<TemplateScript> scripts)
{
var byId = new Dictionary<int, string>();