docs: complete XML doc coverage (returns, summaries, inheritdoc)

Resolve all 622 issues flagged by the enhanced CommentChecker: add missing
<returns> tags (incl. the standard phrasing on non-generic Task methods),
add missing <summary> tags, and replace misused/redundant <inheritdoc/> on
members that override or implement nothing with real documentation.
Documentation-only — no behavior change; solution builds clean.
This commit is contained in:
Joseph Doherty
2026-06-03 11:39:32 -04:00
parent a050170414
commit eabf270d71
208 changed files with 867 additions and 114 deletions
@@ -17,6 +17,7 @@ namespace ZB.MOM.WW.ScadaBridge.SiteEventLogging;
/// active" so non-clustered hosts and unit tests are unaffected — backward
/// compatible with the prior "run on every host" behaviour.
/// </summary>
/// <returns><c>true</c> if this node is the active site member and should run the purge; <c>false</c> to skip.</returns>
public delegate bool SiteEventLogActiveNodeCheck();
/// <summary>
@@ -200,6 +201,7 @@ public class EventLogPurgeService : BackgroundService
/// the raw file size from <c>page_count</c>) means the storage-cap loop observes
/// space being reclaimed even if free pages have not yet been returned to the OS.
/// </summary>
/// <returns>The logical database size in bytes (used pages × page size).</returns>
internal long GetDatabaseSizeBytes()
{
return _eventLogger.WithConnection(connection =>
@@ -12,5 +12,6 @@ public interface IEventLogQueryService
/// Executes a query against the local site event log and returns the matching entries.
/// </summary>
/// <param name="request">The query parameters including filters, pagination, and keyword search.</param>
/// <returns>The query response containing the matching log entries and pagination metadata.</returns>
EventLogQueryResponse ExecuteQuery(EventLogQueryRequest request);
}
@@ -20,6 +20,7 @@ public interface ISiteEventLogger
/// Optional free-form detail text (stack traces, compilation errors, etc.).
/// Stored verbatim — JSON is conventional but not validated or enforced.
/// </param>
/// <returns>A task that completes once the event is durably persisted.</returns>
Task LogEventAsync(
string eventType,
string severity,
@@ -11,6 +11,7 @@ public static class ServiceCollectionExtensions
/// Register site event logging services (recording, purge, query).
/// </summary>
/// <param name="services">The DI service collection to register into.</param>
/// <returns>The same <see cref="IServiceCollection"/> for chaining.</returns>
public static IServiceCollection AddSiteEventLogging(this IServiceCollection services)
{
// The recorder is registered as a concrete singleton and the interface is
@@ -89,17 +89,7 @@ public class SiteEventLogger : ISiteEventLogger, IDisposable
_writerLoop = Task.Run(ProcessWriteQueueAsync);
}
/// <summary>
/// SiteEventLogging-018: number of event writes that have failed (SQLite
/// error, disk full, bounded-queue overflow drop, etc.) since this logger
/// was created. Available for future Health Monitoring integration — the
/// counter is correct and observable, but the central health-metric
/// pipeline does not yet poll it, so a sustained non-zero value currently
/// goes unnoticed in production beyond the per-failure log line. Wiring
/// the metric into the 30-second site-metric publish is tracked
/// separately; promoted to <see cref="ISiteEventLogger"/> so the eventual
/// consumer reads it without a concrete-type downcast.
/// </summary>
/// <inheritdoc />
public long FailedWriteCount => Interlocked.Read(ref _failedWriteCount);
/// <summary>
@@ -110,6 +100,7 @@ public class SiteEventLogger : ISiteEventLogger, IDisposable
/// been disposed.
/// </summary>
/// <param name="action">The action to run against the shared connection.</param>
/// <returns><see langword="true"/> if the action was executed; <see langword="false"/> if the logger is disposed.</returns>
internal bool WithConnection(Action<SqliteConnection> action)
{
ArgumentNullException.ThrowIfNull(action);
@@ -128,6 +119,7 @@ public class SiteEventLogger : ISiteEventLogger, IDisposable
/// </summary>
/// <typeparam name="T">The return type of the function.</typeparam>
/// <param name="func">The function to run against the shared connection.</param>
/// <returns>The value returned by <paramref name="func"/>.</returns>
internal T WithConnection<T>(Func<SqliteConnection, T> func)
{
ArgumentNullException.ThrowIfNull(func);