From 9110a4eb01b7ee421d9b07a657b254e76ccffe6f Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 16 Jul 2026 23:31:19 -0400 Subject: [PATCH 1/3] fix(auditlog,health): harden hosted-service shutdown against disposed CTS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The host does not guarantee IHostedService.StopAsync is driven before the DI container is disposed — WebApplicationFactory's teardown reaches Dispose first — so cancelling the internal CTS from StopAsync threw ObjectDisposedException and aborted the host's whole shutdown sequence. Four services shared the same copy-pasted lifecycle and the same two races: StopAsync cancelling an already- disposed CTS, and StartAsync reading _cts.Token lazily inside the Task.Run lambda, which faults the loop task the host awaits when Dispose wins that race. Each service now captures the token on the caller's thread, tolerates a disposed CTS, and cancels-before-disposing so the loop is always signalled and its pending Task.Delay sees a cancelled token rather than a dead source. SiteAuditBacklogReporter also gains the outer OperationCanceledException guard its sibling SiteAuditRetentionService already carried (arch-review 04 R2, R7), without which a shutdown landing mid-probe threw TaskCanceledException out of Host.StopAsync. Surfaced while verifying the Gitea #15 test-harness fix: in Host.Tests the aborted teardown skipped the fixture's env-var restore, contaminating every later test in the run. Refs: Gitea #15 --- .../AuditLogPartitionMaintenanceService.cs | 44 ++++++++++- .../Site/SiteAuditBacklogReporter.cs | 74 ++++++++++++++----- .../Site/SiteAuditRetentionService.cs | 34 ++++++++- .../SiteEventLogFailureCountReporter.cs | 34 ++++++++- ...uditLogPartitionMaintenanceServiceTests.cs | 36 +++++++++ .../SiteAuditBacklogReporterCadenceTests.cs | 55 ++++++++++++++ .../Site/SiteAuditRetentionServiceTests.cs | 24 ++++++ .../SiteEventLogFailureCountReporterTests.cs | 21 ++++++ 8 files changed, 294 insertions(+), 28 deletions(-) diff --git a/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/AuditLogPartitionMaintenanceService.cs b/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/AuditLogPartitionMaintenanceService.cs index 3a113436..8243d2ad 100644 --- a/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/AuditLogPartitionMaintenanceService.cs +++ b/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/AuditLogPartitionMaintenanceService.cs @@ -86,8 +86,16 @@ public sealed class AuditLogPartitionMaintenanceService : IHostedService, IDispo // Linked CTS lets StopAsync's cancellation AND the host's shutdown // token both terminate the loop; either side firing aborts the // pending Task.Delay. - _cts = CancellationTokenSource.CreateLinkedTokenSource(ct); - _loop = Task.Run(() => RunLoopAsync(_cts.Token)); + var cts = CancellationTokenSource.CreateLinkedTokenSource(ct); + _cts = cts; + + // Read Token here, on the caller's thread, rather than inside the lambda: + // the lambda runs whenever the thread pool gets to it, so a Dispose landing + // first would make the deferred _cts.Token read throw ObjectDisposedException + // and fault the loop task — which StopAsync hands to the host to await. The + // token struct stays usable once captured. + var token = cts.Token; + _loop = Task.Run(() => RunLoopAsync(token), CancellationToken.None); return Task.CompletedTask; } @@ -148,15 +156,43 @@ public sealed class AuditLogPartitionMaintenanceService : IHostedService, IDispo /// The background loop task, or a completed task if the loop was never started. public Task StopAsync(CancellationToken ct) { - _cts?.Cancel(); + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Stop-after-Dispose is a legal ordering — WebApplicationFactory's + // teardown disposes the container before driving StopAsync. Dispose + // already cancelled the loop, so there is nothing left to signal, and + // letting this escape would abort the host's whole shutdown sequence. + } + return _loop ?? Task.CompletedTask; } /// - /// Disposes the internal used to stop the maintenance loop. + /// Cancels and disposes the internal used to + /// stop the maintenance loop. /// + /// + /// Cancels before disposing so the loop is always signalled, even when the host + /// disposes the container without having driven first. + /// It also keeps the loop's pending Task.Delay(interval, token) safe: an + /// already-cancelled token makes Delay complete as cancelled rather than register + /// a callback against a dead source and throw. + /// public void Dispose() { + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Already disposed — Dispose is idempotent. + } + _cts?.Dispose(); } } diff --git a/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditBacklogReporter.cs b/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditBacklogReporter.cs index 9a09a81f..ce1d1ec7 100644 --- a/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditBacklogReporter.cs +++ b/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditBacklogReporter.cs @@ -102,30 +102,46 @@ public sealed class SiteAuditBacklogReporter : IHostedService, IDisposable // Linked CTS lets StopAsync's cancellation AND the host's shutdown // token both terminate the loop; either side firing aborts the // pending Task.Delay. - _cts = CancellationTokenSource.CreateLinkedTokenSource(ct); - _loop = Task.Run(() => RunLoopAsync(_cts.Token)); + var cts = CancellationTokenSource.CreateLinkedTokenSource(ct); + _cts = cts; + + // Read Token on the caller's thread, not inside the lambda: the lambda runs + // whenever the thread pool gets to it, so a Dispose landing first would make + // the deferred _cts.Token read throw and fault the loop task the host awaits. + var token = cts.Token; + _loop = Task.Run(() => RunLoopAsync(token), CancellationToken.None); return Task.CompletedTask; } private async Task RunLoopAsync(CancellationToken ct) { - // First tick runs immediately so the very first health report after - // process start carries a real backlog snapshot — without this the - // dashboard would show null for the first 30 s after a deploy. - await SafeProbeAsync(ct).ConfigureAwait(false); - - while (!ct.IsCancellationRequested) + try { - try - { - await Task.Delay(_refreshInterval, ct).ConfigureAwait(false); - } - catch (OperationCanceledException) - { - break; - } - + // First tick runs immediately so the very first health report after + // process start carries a real backlog snapshot — without this the + // dashboard would show null for the first 30 s after a deploy. await SafeProbeAsync(ct).ConfigureAwait(false); + + while (!ct.IsCancellationRequested) + { + try + { + await Task.Delay(_refreshInterval, ct).ConfigureAwait(false); + } + catch (OperationCanceledException) + { + break; + } + + await SafeProbeAsync(ct).ConfigureAwait(false); + } + } + catch (OperationCanceledException) + { + // Shutdown landed mid-probe: SafeProbeAsync rethrows OCE by design so the probe + // aborts promptly, but the loop task must complete CLEANLY — StopAsync hands + // _loop straight to the host, and a canceled task there is shutdown-log noise + // (arch-review 04 round 2, R7). Cancellation here IS the clean exit. } } @@ -155,13 +171,35 @@ public sealed class SiteAuditBacklogReporter : IHostedService, IDisposable /// A task that represents the asynchronous operation. public Task StopAsync(CancellationToken ct) { - _cts?.Cancel(); + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Stop-after-Dispose is a legal ordering; Dispose already cancelled the + // loop. Letting this escape would abort the host's shutdown sequence. + } + return _loop ?? Task.CompletedTask; } /// Releases the internal used to stop the polling loop. public void Dispose() { + // Cancel before disposing so the loop is always signalled even when the host + // disposes the container without having driven StopAsync first, and so the + // loop's pending Task.Delay(interval, token) sees an already-cancelled token + // rather than registering against a dead source. + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Already disposed — Dispose is idempotent. + } + _cts?.Dispose(); } } diff --git a/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionService.cs b/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionService.cs index 82014323..e60f002d 100644 --- a/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionService.cs +++ b/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionService.cs @@ -54,8 +54,14 @@ public sealed class SiteAuditRetentionService : IHostedService, IDisposable public Task StartAsync(CancellationToken ct) { // Linked CTS so both StopAsync and the host shutdown token abort the loop. - _cts = CancellationTokenSource.CreateLinkedTokenSource(ct); - _loop = Task.Run(() => RunLoopAsync(_cts.Token)); + var cts = CancellationTokenSource.CreateLinkedTokenSource(ct); + _cts = cts; + + // Read Token on the caller's thread, not inside the lambda: the lambda runs + // whenever the thread pool gets to it, so a Dispose landing first would make + // the deferred _cts.Token read throw and fault the loop task the host awaits. + var token = cts.Token; + _loop = Task.Run(() => RunLoopAsync(token), CancellationToken.None); return Task.CompletedTask; } @@ -131,13 +137,35 @@ public sealed class SiteAuditRetentionService : IHostedService, IDisposable /// A task that represents the asynchronous operation. public Task StopAsync(CancellationToken ct) { - _cts?.Cancel(); + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Stop-after-Dispose is a legal ordering; Dispose already cancelled the + // loop. Letting this escape would abort the host's shutdown sequence. + } + return _loop ?? Task.CompletedTask; } /// Releases the internal . public void Dispose() { + // Cancel before disposing so the loop is always signalled even when the host + // disposes the container without having driven StopAsync first, and so the + // loop's pending Task.Delay(interval, token) sees an already-cancelled token + // rather than registering against a dead source. + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Already disposed — Dispose is idempotent. + } + _cts?.Dispose(); } } diff --git a/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/SiteEventLogFailureCountReporter.cs b/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/SiteEventLogFailureCountReporter.cs index dacc7fcc..19de05f3 100644 --- a/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/SiteEventLogFailureCountReporter.cs +++ b/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/SiteEventLogFailureCountReporter.cs @@ -85,8 +85,14 @@ public sealed class SiteEventLogFailureCountReporter : IHostedService, IDisposab // Linked CTS lets StopAsync's cancellation AND the host's shutdown // token both terminate the loop; either side firing aborts the // pending Task.Delay. - _cts = CancellationTokenSource.CreateLinkedTokenSource(ct); - _loop = Task.Run(() => RunLoopAsync(_cts.Token)); + var cts = CancellationTokenSource.CreateLinkedTokenSource(ct); + _cts = cts; + + // Read Token on the caller's thread, not inside the lambda: the lambda runs + // whenever the thread pool gets to it, so a Dispose landing first would make + // the deferred _cts.Token read throw and fault the loop task the host awaits. + var token = cts.Token; + _loop = Task.Run(() => RunLoopAsync(token), CancellationToken.None); return Task.CompletedTask; } @@ -134,13 +140,35 @@ public sealed class SiteEventLogFailureCountReporter : IHostedService, IDisposab /// A task that represents the asynchronous operation. public Task StopAsync(CancellationToken ct) { - _cts?.Cancel(); + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Stop-after-Dispose is a legal ordering; Dispose already cancelled the + // loop. Letting this escape would abort the host's shutdown sequence. + } + return _loop ?? Task.CompletedTask; } /// Releases the internal used to stop the polling loop. public void Dispose() { + // Cancel before disposing so the loop is always signalled even when the host + // disposes the container without having driven StopAsync first, and so the + // loop's pending Task.Delay(interval, token) sees an already-cancelled token + // rather than registering against a dead source. + try + { + _cts?.Cancel(); + } + catch (ObjectDisposedException) + { + // Already disposed — Dispose is idempotent. + } + _cts?.Dispose(); } } diff --git a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Central/AuditLogPartitionMaintenanceServiceTests.cs b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Central/AuditLogPartitionMaintenanceServiceTests.cs index b9d879d1..69055d58 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Central/AuditLogPartitionMaintenanceServiceTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Central/AuditLogPartitionMaintenanceServiceTests.cs @@ -151,4 +151,40 @@ public class AuditLogPartitionMaintenanceServiceTests Assert.Equal(LogLevel.Error, errorEntry.Level); Assert.Equal(1, maintenance.EnsureCallCount); } + + [Fact] + public async Task StopAsync_AfterDispose_DoesNotThrow() + { + // Regression (Gitea #15 follow-up): Dispose tears down the CTS that + // StopAsync cancels, and the host does not guarantee that every + // IHostedService.StopAsync is driven before the DI container is + // disposed — WebApplicationFactory's teardown reaches Dispose first and + // then calls StopAsync. Cancel() on a disposed CTS throws + // ObjectDisposedException, and letting it escape aborts the host's whole + // shutdown sequence (in Host.Tests it stranded the fixture's env-var + // restore, contaminating every later test in the run). Stop-after-Dispose + // must therefore be a no-op, not a throw. + var opts = Options.Create(new AuditLogPartitionMaintenanceOptions + { + IntervalSeconds = 60, + LookaheadMonths = 1, + }); + var maintenance = new RecordingMaintenance(); + var sp = BuildProvider(maintenance); + + var svc = new AuditLogPartitionMaintenanceService( + sp.GetRequiredService(), + opts, + NullLogger.Instance); + + await svc.StartAsync(CancellationToken.None); + + svc.Dispose(); + + // The assertion is the absence of ObjectDisposedException. + await svc.StopAsync(CancellationToken.None); + + // Dispose is also idempotent — the host may reach it twice on the same path. + svc.Dispose(); + } } diff --git a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditBacklogReporterCadenceTests.cs b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditBacklogReporterCadenceTests.cs index 87a97118..4798aad9 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditBacklogReporterCadenceTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditBacklogReporterCadenceTests.cs @@ -1,8 +1,10 @@ +using System.Diagnostics; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using NSubstitute; using ZB.MOM.WW.ScadaBridge.AuditLog.Site; using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Services; +using ZB.MOM.WW.ScadaBridge.Commons.Types; using ZB.MOM.WW.ScadaBridge.HealthMonitoring; namespace ZB.MOM.WW.ScadaBridge.AuditLog.Tests.Site; @@ -23,6 +25,59 @@ public class SiteAuditBacklogReporterCadenceTests explicitInterval, options); + [Fact] + public async Task StopAsync_WhileProbeInFlight_LoopCompletesCleanly() + { + // SafeProbeAsync rethrows OperationCanceledException by design so a shutdown + // aborts the probe promptly — but RunLoopAsync must absorb it, because StopAsync + // hands _loop straight to the host and a canceled task there throws out of + // Host.StopAsync. Mirrors the guard SiteAuditRetentionService already carries + // (arch-review 04 round 2, R7). + var probeStarted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var queue = Substitute.For(); + queue.GetBacklogStatsAsync(Arg.Any()) + .Returns(ci => BlockUntilCancelledAsync(probeStarted, ci.Arg())); + + var reporter = new SiteAuditBacklogReporter( + queue, + Substitute.For(), + NullLogger.Instance, + TimeSpan.FromHours(1), + null); + + await reporter.StartAsync(CancellationToken.None); + await probeStarted.Task; // the immediate first probe is now in flight + + // The assertion is that awaiting the loop task does not throw. + await reporter.StopAsync(CancellationToken.None); + reporter.Dispose(); + } + + private static async Task BlockUntilCancelledAsync( + TaskCompletionSource started, CancellationToken ct) + { + started.TrySetResult(); + await Task.Delay(Timeout.Infinite, ct); + throw new UnreachableException("the delay above always throws on cancellation"); + } + + [Fact] + public async Task StopAsync_AfterDispose_DoesNotThrow() + { + // Regression (Gitea #15 follow-up): Dispose tears down the CTS StopAsync + // cancels, and the host does not guarantee StopAsync is driven before the DI + // container is disposed. Cancel() on a disposed CTS throws, and letting that + // escape an IHostedService aborts the host's whole shutdown sequence. + var reporter = Create(Options.Create(new SqliteAuditWriterOptions()), TimeSpan.FromHours(1)); + + await reporter.StartAsync(CancellationToken.None); + reporter.Dispose(); + + // The assertion is the absence of ObjectDisposedException. + await reporter.StopAsync(CancellationToken.None); + reporter.Dispose(); + } + [Fact] public void Cadence_ComesFromOptions_WhenConfigured() { diff --git a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditRetentionServiceTests.cs b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditRetentionServiceTests.cs index cdd4a7df..3a3bd811 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditRetentionServiceTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/Site/SiteAuditRetentionServiceTests.cs @@ -19,6 +19,30 @@ namespace ZB.MOM.WW.ScadaBridge.AuditLog.Tests.Site; /// public class SiteAuditRetentionServiceTests { + [Fact] + public async Task StopAsync_AfterDispose_DoesNotThrow() + { + // Regression (Gitea #15 follow-up): Dispose tears down the CTS StopAsync + // cancels, and the host does not guarantee StopAsync is driven before the DI + // container is disposed. Cancel() on a disposed CTS throws, and letting that + // escape an IHostedService aborts the host's whole shutdown sequence. + var queue = new RecordingSiteAuditQueue(); + var options = Options.Create(new SiteAuditRetentionOptions + { + RetentionDays = 7, + PurgeIntervalOverride = TimeSpan.FromMilliseconds(50), + InitialDelay = TimeSpan.Zero, + }); + var svc = new SiteAuditRetentionService(queue, options, NullLogger.Instance); + + await svc.StartAsync(CancellationToken.None); + svc.Dispose(); + + // The assertion is the absence of ObjectDisposedException. + await svc.StopAsync(CancellationToken.None); + svc.Dispose(); + } + [Fact] public async Task Tick_Purges_With_RetentionCutoff() { diff --git a/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/SiteEventLogFailureCountReporterTests.cs b/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/SiteEventLogFailureCountReporterTests.cs index 632bb60f..c2ac2a9c 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/SiteEventLogFailureCountReporterTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/SiteEventLogFailureCountReporterTests.cs @@ -10,6 +10,27 @@ namespace ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests; /// public class SiteEventLogFailureCountReporterTests { + [Fact] + public async Task StopAsync_AfterDispose_DoesNotThrow() + { + // Regression (Gitea #15 follow-up): Dispose tears down the CTS StopAsync + // cancels, and the host does not guarantee StopAsync is driven before the DI + // container is disposed. Cancel() on a disposed CTS throws, and letting that + // escape an IHostedService aborts the host's whole shutdown sequence. + var reporter = new SiteEventLogFailureCountReporter( + failedWriteCountProvider: () => 0L, + collector: new SiteHealthCollector(), + logger: NullLogger.Instance, + refreshInterval: TimeSpan.FromHours(1)); + + await reporter.StartAsync(CancellationToken.None); + reporter.Dispose(); + + // The assertion is the absence of ObjectDisposedException. + await reporter.StopAsync(CancellationToken.None); + reporter.Dispose(); + } + [Fact] public async Task StartAsync_ImmediatelyProbes_FailedWriteCount() { -- 2.52.0 From d2a6107cdb8d084501da496c6b030305bbbdf379 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 16 Jul 2026 23:31:28 -0400 Subject: [PATCH 2/3] test(host): serialize Central-boot fixtures to close env-var race MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CentralDbTestEnvironment sets five process-wide environment variables, and Program's AddEnvironmentVariables() reads them at an unpredictable point during host boot. With xUnit collection parallelization on, one fixture's teardown could clear a var mid-boot for a sibling. Since the secrets adoption (G-4) three of those keys are ${secret:...} references that fail closed, turning a previously benign empty value into a SecretNotFoundException that aborts the boot — an intermittent CI failure. Adds a HostBootCollection that serializes every fixture booting a real host while depending on that shared state, folding in the narrower "ActorSystem" collection so its members stay serialized with each other as before. Site-role fixtures stay parallel: they call Configuration.Sources.Clear(), dropping the env-var provider, so they cannot participate in the race. CentralDbTestEnvironment now also fails fast if two instances are ever live at once, making a regression (a fixture added outside the collection) deterministic rather than intermittent — this is what surfaced the disposed-CTS defect fixed in the previous commit. Fixture teardown is try/finally so a throwing host teardown can no longer strand the vars for the rest of the run. Cost: Host.Tests runs ~2m30s -> ~4m10s; the serialized Central-boot classes are most of the assembly's parallelism. Fixes: Gitea #15 --- .../ActorPathTests.cs | 24 +++++++++++------ .../AkkaHostedServiceAuditWiringTests.cs | 15 ++++++++--- .../CentralDbTestEnvironment.cs | 27 +++++++++++++++++++ .../CompositionRootTests.cs | 15 ++++++++--- .../HealthCheckTests.cs | 1 + .../HostBootCollection.cs | 25 +++++++++++++++++ .../HostStartupTests.cs | 1 + .../MetricsEndpointTests.cs | 1 + 8 files changed, 95 insertions(+), 14 deletions(-) create mode 100644 tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostBootCollection.cs diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/ActorPathTests.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/ActorPathTests.cs index f96a8f54..5b0b7bcd 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/ActorPathTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/ActorPathTests.cs @@ -10,14 +10,11 @@ using ZB.MOM.WW.ScadaBridge.Host.Actors; namespace ZB.MOM.WW.ScadaBridge.Host.Tests; -[CollectionDefinition("ActorSystem")] -public class ActorSystemCollection : ICollectionFixture { } - /// /// Verifies that all expected Central-role actors are created at the correct paths /// when AkkaHostedService starts. /// -[Collection("ActorSystem")] +[Collection(HostBootCollection.Name)] public class CentralActorPathTests : IAsyncLifetime { private WebApplicationFactory? _factory; @@ -93,9 +90,20 @@ public class CentralActorPathTests : IAsyncLifetime public async Task DisposeAsync() { - _factory?.Dispose(); - Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", _previousEnv); - _dbEnv?.Dispose(); + // try/finally: a throwing host teardown must not strand the process-wide + // environment variables. Without it, one failed _factory.Dispose() leaks + // DOTNET_ENVIRONMENT=Central and the CentralDbTestEnvironment vars into + // every later test in the run. + try + { + _factory?.Dispose(); + } + finally + { + Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", _previousEnv); + _dbEnv?.Dispose(); + } + await Task.CompletedTask; } @@ -149,7 +157,7 @@ public class CentralActorPathTests : IAsyncLifetime /// Verifies that all expected Site-role actors are created at the correct paths /// when AkkaHostedService starts. /// -[Collection("ActorSystem")] +[Collection(HostBootCollection.Name)] public class SiteActorPathTests : IAsyncLifetime { private IHost? _host; diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/AkkaHostedServiceAuditWiringTests.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/AkkaHostedServiceAuditWiringTests.cs index 15afc439..d31f27a8 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/AkkaHostedServiceAuditWiringTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/AkkaHostedServiceAuditWiringTests.cs @@ -86,6 +86,7 @@ public class AkkaHostedServiceAuditWiringHoconTests /// /// Verifies Audit Log (#23) services land in the Central composition root. /// +[Collection(HostBootCollection.Name)] public class CentralAuditWiringTests : IDisposable { private readonly WebApplicationFactory _factory; @@ -156,9 +157,17 @@ public class CentralAuditWiringTests : IDisposable public void Dispose() { - _factory.Dispose(); - Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", _previousEnv); - _dbEnv.Dispose(); + // try/finally: a throwing host teardown must not strand the process-wide + // environment variables for the rest of the run. + try + { + _factory.Dispose(); + } + finally + { + Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", _previousEnv); + _dbEnv.Dispose(); + } } [Fact] diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CentralDbTestEnvironment.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CentralDbTestEnvironment.cs index 60940a69..62a091fd 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CentralDbTestEnvironment.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CentralDbTestEnvironment.cs @@ -26,6 +26,14 @@ namespace ZB.MOM.WW.ScadaBridge.Host.Tests; /// the tokens entirely — so tests that boot the real Program pipeline do /// not need a seeded secrets store. All vars are restored on Dispose so tests /// stay isolated. +/// +/// Every var below is process-wide, and the reader — Program's +/// AddEnvironmentVariables() — runs at an unpredictable point during host boot. +/// Two live instances therefore cannot be allowed to overlap: one's Dispose would +/// restore/clear a var while the other's boot is still reading it, and the fail-closed +/// secrets expander turns that into a SecretNotFoundException. Serialization via +/// is what enforces the invariant; the overlap check in +/// the constructor makes a regression fail deterministically instead of intermittently. /// internal sealed class CentralDbTestEnvironment : IDisposable { @@ -64,8 +72,25 @@ internal sealed class CentralDbTestEnvironment : IDisposable private readonly string? _previousLdapPassword; private readonly string? _previousJwtSigningKey; + /// + /// Number of live instances. Only ever 0 or 1 while every consuming fixture is a + /// member of ; see the overlap check below. + /// + private static int _liveCount; + public CentralDbTestEnvironment() { + if (Interlocked.Increment(ref _liveCount) != 1) + { + Interlocked.Decrement(ref _liveCount); + throw new InvalidOperationException( + $"Two {nameof(CentralDbTestEnvironment)} instances are live at once, so one fixture's " + + "teardown can clear the process-wide environment variables another fixture's host boot " + + $"is reading. Add the offending test class to the \"{HostBootCollection.Name}\" collection " + + $"([Collection({nameof(HostBootCollection)}.Name)]) so xUnit runs it sequentially with the " + + "other host-boot fixtures."); + } + _previousConfig = Environment.GetEnvironmentVariable(ConfigKey); Environment.SetEnvironmentVariable(ConfigKey, ConfigurationDb); @@ -89,5 +114,7 @@ internal sealed class CentralDbTestEnvironment : IDisposable Environment.SetEnvironmentVariable(PepperKey, _previousPepper); Environment.SetEnvironmentVariable(LdapPasswordKey, _previousLdapPassword); Environment.SetEnvironmentVariable(JwtSigningKeyKey, _previousJwtSigningKey); + + Interlocked.Decrement(ref _liveCount); } } diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CompositionRootTests.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CompositionRootTests.cs index ba54db24..d6ab0f9e 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CompositionRootTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/CompositionRootTests.cs @@ -80,6 +80,7 @@ internal static class AkkaHostedServiceRemover /// Verifies every expected DI service resolves from the Central composition root. /// Uses WebApplicationFactory to exercise the real Program.cs pipeline. /// +[Collection(HostBootCollection.Name)] public class CentralCompositionRootTests : IDisposable { private readonly WebApplicationFactory _factory; @@ -159,9 +160,17 @@ public class CentralCompositionRootTests : IDisposable public void Dispose() { - _factory.Dispose(); - Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", _previousEnv); - _dbEnv.Dispose(); + // try/finally: a throwing host teardown must not strand the process-wide + // environment variables for the rest of the run. + try + { + _factory.Dispose(); + } + finally + { + Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", _previousEnv); + _dbEnv.Dispose(); + } } // --- Singletons --- diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HealthCheckTests.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HealthCheckTests.cs index 298d959b..c730038e 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HealthCheckTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HealthCheckTests.cs @@ -17,6 +17,7 @@ namespace ZB.MOM.WW.ScadaBridge.Host.Tests; /// active-node) rather than by check-name predicates. These are pure route/tag assertions /// — they require no database, LDAP, or formed Akka cluster. /// +[Collection(HostBootCollection.Name)] public class HealthCheckTests : IDisposable { private readonly List _disposables = new(); diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostBootCollection.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostBootCollection.cs new file mode 100644 index 00000000..8629bd65 --- /dev/null +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostBootCollection.cs @@ -0,0 +1,25 @@ +namespace ZB.MOM.WW.ScadaBridge.Host.Tests; + +/// +/// Serializes every fixture that boots a real host while depending on process-wide +/// state — the DOTNET_ENVIRONMENT role selector and the environment variables +/// sets. +/// +/// Program's configuration builder calls AddEnvironmentVariables() at an +/// unpredictable point during boot, so a sibling fixture's teardown (which restores or +/// clears those vars) can otherwise be observed mid-boot as a transient null. Since the +/// secrets adoption (G-4) three of those keys are ${secret:...} references that +/// fail closed, which turns that race into a hard SecretNotFoundException. +/// xUnit runs classes in a shared collection sequentially, which removes the overlap. +/// +/// Site-role fixtures are deliberately not members: they call +/// Configuration.Sources.Clear(), dropping the environment-variable provider, so +/// they neither read nor write the shared state and stay free to run in parallel. +/// +/// Supersedes the narrower "ActorSystem" collection, whose members are folded in here. +/// +[CollectionDefinition(HostBootCollection.Name)] +public class HostBootCollection +{ + public const string Name = "HostBoot"; +} diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostStartupTests.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostStartupTests.cs index 2ff6c6d7..206926ad 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostStartupTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/HostStartupTests.cs @@ -9,6 +9,7 @@ using ZB.MOM.WW.ScadaBridge.Host; namespace ZB.MOM.WW.ScadaBridge.Host.Tests; +[Collection(HostBootCollection.Name)] public class HostStartupTests : IDisposable { private readonly List _disposables = new(); diff --git a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/MetricsEndpointTests.cs b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/MetricsEndpointTests.cs index f5aeb8ee..563c8800 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/MetricsEndpointTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.Host.Tests/MetricsEndpointTests.cs @@ -13,6 +13,7 @@ namespace ZB.MOM.WW.ScadaBridge.Host.Tests; /// cluster state. This is a pure route assertion — it requires no database, LDAP, or formed /// Akka cluster. The Central-role factory bootstrap mirrors . /// +[Collection(HostBootCollection.Name)] public class MetricsEndpointTests : IDisposable { private readonly List _disposables = new(); -- 2.52.0 From 4d869de9c28dbf3cefaf2f60d4b358497cd0d93c Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 16 Jul 2026 23:31:34 -0400 Subject: [PATCH 3/3] docs: sister-repo index update + working notes CLAUDE.md: the historian SDK is now owned inside HistorianGateway at histsdk/ (the separate ~/Desktop/histsdk repo was folded in with history), so the sister-project list no longer points at a standalone repo. Also checks in working notes that were sitting untracked in the tree: deferred.md (remaining deferred work snapshot), ScadaBridge-docs-fixed.md and ScadaBridge-docs-issues.md (documentation-analysis report output). --- CLAUDE.md | 2 +- ScadaBridge-docs-fixed.md | 116 + ScadaBridge-docs-issues.md | 4296 ++++++++++++++++++++++++++++++++++++ deferred.md | 44 + 4 files changed, 4457 insertions(+), 1 deletion(-) create mode 100644 ScadaBridge-docs-fixed.md create mode 100644 ScadaBridge-docs-issues.md create mode 100644 deferred.md diff --git a/CLAUDE.md b/CLAUDE.md index 70b22a2c..7d993e6d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -41,7 +41,7 @@ Repos cloned as sibling directories under `~/Desktop/` — referenced for contex - `~/Desktop/MxAccessGateway` — MxAccess Gateway (`https://gitea.dohertylan.com/dohertj2/mxaccessgw`). - `~/Desktop/OtOpcUa` — OtOpcUa (`https://gitea.dohertylan.com/dohertj2/lmxopcua`). -Other peers in the `scadaproj` family (see `scadaproj/CLAUDE.md` for details): `~/Desktop/HistorianGateway` (`historiangw`) — AVEVA Historian gRPC sidecar, OtOpcUa's sole historian backend; its SDK source `~/Desktop/histsdk` (`histsdk`); and `~/Desktop/scadaproj` (`scadaproj`) itself — shared `ZB.MOM.WW.*` libs + the dev/test GLAuth on `10.100.0.35:3893`. +Other peers in the `scadaproj` family (see `scadaproj/CLAUDE.md` for details): `~/Desktop/HistorianGateway` (`historiangw`) — AVEVA Historian gRPC sidecar, OtOpcUa's sole historian backend; its historian SDK (`AVEVA.Historian.Client`) is now owned inside that repo at `HistorianGateway/histsdk/` (the separate `~/Desktop/histsdk` repo was folded in with history); and `~/Desktop/scadaproj` (`scadaproj`) itself — shared `ZB.MOM.WW.*` libs + the dev/test GLAuth on `10.100.0.35:3893`. ## Document Conventions diff --git a/ScadaBridge-docs-fixed.md b/ScadaBridge-docs-fixed.md new file mode 100644 index 00000000..b2197e35 --- /dev/null +++ b/ScadaBridge-docs-fixed.md @@ -0,0 +1,116 @@ +# Documentation Analysis Report + +Files Scanned: 793 +Files With Issues: 10 +Total Issues: 11 + +## Issues + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/BrowserTime.cs +LINE: 26 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: UTC-5 +MESSAGE: Comment contains 'UTC-5', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportImport.razor.cs +LINE: 225 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Step-2 +MESSAGE: Comment contains 'Step-2', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Services/ConnectionHealthQueryService.cs +LINE: 18 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: PLC-1 +MESSAGE: Comment contains 'PLC-1', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditExportHelpers.cs +LINE: 156 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: non-403 +MESSAGE: Comment contains 'non-403', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/BundleCommands.cs +LINE: 407 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: non-403 +MESSAGE: Comment contains 'non-403', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/Grpc/SiteStreamGrpcServer.cs +LINE: 43 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: sub-100 +MESSAGE: Comment contains 'sub-100', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/SiteHealthState.cs +LINE: 29 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: year-0001 +MESSAGE: Comment contains 'year-0001', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ManagementActor.cs +LINE: 2034 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/Delivery/EmailNotificationDeliveryAdapter.cs +LINE: 206 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/MailKitSmtpClientWrapper.cs +LINE: 9 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/MailKitSmtpClientWrapper.cs +LINE: 113 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + diff --git a/ScadaBridge-docs-issues.md b/ScadaBridge-docs-issues.md new file mode 100644 index 00000000..c5f3a23a --- /dev/null +++ b/ScadaBridge-docs-issues.md @@ -0,0 +1,4296 @@ +# Documentation Analysis Report + +Files Scanned: 793 +Files With Issues: 113 +Total Issues: 429 + +## Issues + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/AuditLogIngestActor.cs +LINE: 263 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 12 +MESSAGE: Comment contains 'Task 12', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/GrpcPullAuditEventsClient.cs +LINE: 101 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 18 +MESSAGE: Comment contains 'Task 18', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/GrpcPullSiteCallsClient.cs +LINE: 104 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 16 +MESSAGE: Comment contains 'Task 16', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/GrpcPullSiteCallsClient.cs +LINE: 113 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 18 +MESSAGE: Comment contains 'Task 18', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/IPullSiteCallsClient.cs +LINE: 50 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 16 +MESSAGE: Comment contains 'Task 16', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/ISiteEnumerator.cs +LINE: 15 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 18 +MESSAGE: Comment contains 'Task 18', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/ISiteEnumerator.cs +LINE: 41 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 18 +MESSAGE: Comment contains 'Task 18', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/SiteAuditReconciliationActor.cs +LINE: 296 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 17 +MESSAGE: Comment contains 'Task 17', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/SiteAuditReconciliationActor.cs +LINE: 338 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 17 +MESSAGE: Comment contains 'Task 17', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/SiteAuditReconciliationActor.cs +LINE: 359 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task-14 +MESSAGE: Comment contains 'Task-14', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/SiteEnumerator.cs +LINE: 31 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 18 +MESSAGE: Comment contains 'Task 18', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Central/SiteEnumerator.cs +LINE: 64 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 18 +MESSAGE: Comment contains 'Task 18', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Kpi/AuditLogKpiSampleSource.cs +LINE: 6 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 10 +MESSAGE: Comment contains 'Task 10', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Kpi/AuditLogKpiSampleSource.cs +LINE: 67 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task-10 +MESSAGE: Comment contains 'Task-10', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionOptions.cs +LINE: 4 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 2 +MESSAGE: Comment contains 'Task 2', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionOptions.cs +LINE: 4 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: PLAN-04 +MESSAGE: Comment contains 'PLAN-04', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionService.cs +LINE: 10 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 3 +MESSAGE: Comment contains 'Task 3', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/Site/SiteAuditRetentionService.cs +LINE: 10 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: PLAN-04 +MESSAGE: Comment contains 'PLAN-04', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/BrowserTime.cs +LINE: 26 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: UTC-5 +MESSAGE: Comment contains 'UTC-5', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeBuilder.cs +LINE: 32 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAttributeTree(IEnumerable attributes, string? filter) +MESSAGE: Method 'BuildAttributeTree(IEnumerable attributes, string? filter)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeBuilder.cs +LINE: 92 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAlarmTree(IEnumerable alarms, string? filter) +MESSAGE: Method 'BuildAlarmTree(IEnumerable alarms, string? filter)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 21 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Children +MESSAGE: Property 'Children' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 24 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Attribute +MESSAGE: Property 'Attribute' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 25 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Alarm +MESSAGE: Property 'Alarm' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 27 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: IsNativeBinding +MESSAGE: Property 'IsNativeBinding' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 30 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: WorstState +MESSAGE: Property 'WorstState' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 31 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: ActiveCount +MESSAGE: Property 'ActiveCount' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 32 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: HasBadQuality +MESSAGE: Property 'HasBadQuality' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugTreeNode.cs +LINE: 34 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: HasChildren +MESSAGE: Property 'HasChildren' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/InstanceConfigure.razor.cs +LINE: 56 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildCsvOverrideImport(OverrideCsvParseResult parsed, IReadOnlyList overridableAttributes) +MESSAGE: Method 'BuildCsvOverrideImport(OverrideCsvParseResult parsed, IReadOnlyList overridableAttributes)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportImport.razor.cs +LINE: 225 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Step-2 +MESSAGE: Comment contains 'Step-2', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportImport.razor.cs +LINE: 616 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: TryExtractLineDiff(string? fieldDiffJson) +MESSAGE: Method 'TryExtractLineDiff(string? fieldDiffJson)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportImport.razor.cs +LINE: 616 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: TryExtractLineDiff(string? fieldDiffJson) +MESSAGE: Method 'TryExtractLineDiff(string? fieldDiffJson)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Operations/SecuredWriteDataTypeMapper.cs +LINE: 15 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: TryMap(string? galaxyTypeName, DataType dataType) +MESSAGE: Method 'TryMap(string? galaxyTypeName, DataType dataType)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/KpiTrendChart.razor.cs +LINE: 92 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Slugify(string? title) +MESSAGE: Method 'Slugify(string? title)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 332 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 332 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 332 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 332 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 332 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 332 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 332 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 341 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 341 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 341 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 341 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 341 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 348 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 348 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 348 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 348 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 348 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 355 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 355 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 355 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 355 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 355 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 362 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 362 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 362 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 362 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ScriptAnalysis/SandboxScriptHost.cs +LINE: 362 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Services/ConnectionHealthQueryService.cs +LINE: 18 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: PLC-1 +MESSAGE: Comment contains 'PLC-1', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Services/PollGate.cs +LINE: 9 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: TryEnter() +MESSAGE: Method 'TryEnter()' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Services/PollGate.cs +LINE: 10 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Exit() +MESSAGE: Method 'Exit()' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/AlarmTriggerConfigJson.cs +LINE: 39 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Build(string triggerType, string? attribute, string? matchValue, bool notEquals, double? min, double? max, double? thresholdPerSecond, double? windowSeconds, string? direction, double? loLo, double? lo, double? hi, double? hiHi, string? expression, string? analysisKind) +MESSAGE: Method 'Build(string triggerType, string? attribute, string? matchValue, bool notEquals, double? min, double? max, double? thresholdPerSecond, double? windowSeconds, string? direction, double? loLo, double? lo, double? hi, double? hiHi, string? expression, string? analysisKind)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditExportHelpers.cs +LINE: 156 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: non-403 +MESSAGE: Comment contains 'non-403', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 25 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: ExecutionId +MESSAGE: Property 'ExecutionId' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 26 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: ParentExecutionId +MESSAGE: Property 'ParentExecutionId' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 27 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: RowCount +MESSAGE: Property 'RowCount' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 28 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Channels +MESSAGE: Property 'Channels' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 29 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Statuses +MESSAGE: Property 'Statuses' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 30 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: SourceSiteId +MESSAGE: Property 'SourceSiteId' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 31 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: SourceInstanceId +MESSAGE: Property 'SourceInstanceId' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 32 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: FirstOccurredAtUtc +MESSAGE: Property 'FirstOccurredAtUtc' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 33 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: LastOccurredAtUtc +MESSAGE: Property 'LastOccurredAtUtc' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 127 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteJson(AuditTreeNodeDto[] nodes, TextWriter output) +MESSAGE: Method 'WriteJson(AuditTreeNodeDto[] nodes, TextWriter output)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 127 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteJson(AuditTreeNodeDto[] nodes, TextWriter output) +MESSAGE: Method 'WriteJson(AuditTreeNodeDto[] nodes, TextWriter output)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 138 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteTable(AuditTreeNodeDto[] nodes, Guid queriedExecutionId, TextWriter output) +MESSAGE: Method 'WriteTable(AuditTreeNodeDto[] nodes, Guid queriedExecutionId, TextWriter output)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 138 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteTable(AuditTreeNodeDto[] nodes, Guid queriedExecutionId, TextWriter output) +MESSAGE: Method 'WriteTable(AuditTreeNodeDto[] nodes, Guid queriedExecutionId, TextWriter output)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/AuditTreeHelpers.cs +LINE: 138 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteTable(AuditTreeNodeDto[] nodes, Guid queriedExecutionId, TextWriter output) +MESSAGE: Method 'WriteTable(AuditTreeNodeDto[] nodes, Guid queriedExecutionId, TextWriter output)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/BundleCommands.cs +LINE: 407 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: non-403 +MESSAGE: Comment contains 'non-403', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/CommandHelpers.cs +LINE: 97 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: exit-2 +MESSAGE: Comment contains 'exit-2', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 368 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildAddAttributeCommand(int templateId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CLI/Commands/TemplateCommands.cs +LINE: 378 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType) +MESSAGE: Method 'BuildUpdateAttributeCommand(int attributeId, string name, string dataType, string? value, string? description, string? dataSource, bool isLocked, string? elementType)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Interfaces/Kpi/IAuditBacklogProvider.cs +LINE: 32 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetPendingBacklogTotal() +MESSAGE: Method 'GetPendingBacklogTotal()' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Interfaces/Services/IOperationTrackingStore.cs +LINE: 140 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 15 +MESSAGE: Comment contains 'Task 15', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Messages/Audit/SiteCallRelayMessages.cs +LINE: 64 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 14 +MESSAGE: Comment contains 'Task 14', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Messages/Notification/NotificationOutboxQueries.cs +LINE: 58 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 13 +MESSAGE: Comment contains 'Task 13', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Messages/Notification/NotificationOutboxQueries.cs +LINE: 81 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 13 +MESSAGE: Comment contains 'Task 13', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 20 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Encode(object? value) +MESSAGE: Method 'Encode(object? value)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 20 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Encode(object? value) +MESSAGE: Method 'Encode(object? value)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 41 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Decode(string? value, DataType dataType, DataType? elementType) +MESSAGE: Method 'Decode(string? value, DataType dataType, DataType? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 41 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Decode(string? value, DataType dataType, DataType? elementType) +MESSAGE: Method 'Decode(string? value, DataType dataType, DataType? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 41 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Decode(string? value, DataType dataType, DataType? elementType) +MESSAGE: Method 'Decode(string? value, DataType dataType, DataType? elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 41 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Decode(string? value, DataType dataType, DataType? elementType) +MESSAGE: Method 'Decode(string? value, DataType dataType, DataType? elementType)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 73 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ElementClrType(DataType t) +MESSAGE: Method 'ElementClrType(DataType t)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 73 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ElementClrType(DataType t) +MESSAGE: Method 'ElementClrType(DataType t)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 96 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CoerceEnumerable(IEnumerable source, DataType elementType) +MESSAGE: Method 'CoerceEnumerable(IEnumerable source, DataType elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 96 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CoerceEnumerable(IEnumerable source, DataType elementType) +MESSAGE: Method 'CoerceEnumerable(IEnumerable source, DataType elementType)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 96 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CoerceEnumerable(IEnumerable source, DataType elementType) +MESSAGE: Method 'CoerceEnumerable(IEnumerable source, DataType elementType)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 153 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsValidElementType(DataType t) +MESSAGE: Method 'IsValidElementType(DataType t)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/AttributeValueCodec.cs +LINE: 153 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsValidElementType(DataType t) +MESSAGE: Method 'IsValidElementType(DataType t)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Deployment/DeploymentFetchToken.cs +LINE: 14 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Generate() +MESSAGE: Method 'Generate()' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Deployment/DeploymentFetchToken.cs +LINE: 19 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ConstantTimeEquals(string a, string b) +MESSAGE: Method 'ConstantTimeEquals(string a, string b)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Deployment/DeploymentFetchToken.cs +LINE: 19 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ConstantTimeEquals(string a, string b) +MESSAGE: Method 'ConstantTimeEquals(string a, string b)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Deployment/DeploymentFetchToken.cs +LINE: 19 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ConstantTimeEquals(string a, string b) +MESSAGE: Method 'ConstantTimeEquals(string a, string b)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Enums/AuditKind.cs +LINE: 41 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 17 +MESSAGE: Comment contains 'Task 17', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/OverrideCsvParser.cs +LINE: 41 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Parse(string csvText) +MESSAGE: Method 'Parse(string csvText)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/OverrideCsvParser.cs +LINE: 41 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Parse(string csvText) +MESSAGE: Method 'Parse(string csvText)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/PurgeTimerSchedule.cs +LINE: 31 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: InitialDelay(TimeSpan interval) +MESSAGE: Method 'InitialDelay(TimeSpan interval)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Types/PurgeTimerSchedule.cs +LINE: 31 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: InitialDelay(TimeSpan interval) +MESSAGE: Method 'InitialDelay(TimeSpan interval)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/Actors/CentralCommunicationActor.cs +LINE: 57 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SanitizeForActorName(string siteId) +MESSAGE: Method 'SanitizeForActorName(string siteId)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/Actors/CentralCommunicationActor.cs +LINE: 57 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SanitizeForActorName(string siteId) +MESSAGE: Method 'SanitizeForActorName(string siteId)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/Actors/CentralCommunicationActor.cs +LINE: 151 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #1 +MESSAGE: Comment contains '#1', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/Grpc/SiteStreamGrpcServer.cs +LINE: 43 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: sub-100 +MESSAGE: Comment contains 'sub-100', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/Grpc/SiteStreamGrpcServer.cs +LINE: 564 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 15 +MESSAGE: Comment contains 'Task 15', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/Configurations/NotificationConfiguration.cs +LINE: 61 +CATEGORY: InheritDocMisused +SEVERITY: Error +MEMBER: Method +SIGNATURE: Configure(EntityTypeBuilder builder) +MESSAGE: Method 'Configure(EntityTypeBuilder builder)' uses but has nothing to inherit (not an override or interface implementation). + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/Configurations/NotificationConfiguration.cs +LINE: 130 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/Repositories/AuditLogRepository.cs +LINE: 232 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 12 +MESSAGE: Comment contains 'Task 12', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/Repositories/SiteCallAuditRepository.cs +LINE: 32 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 11 +MESSAGE: Comment contains 'Task 11', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/Repositories/SiteCallAuditRepository.cs +LINE: 113 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 11 +MESSAGE: Comment contains 'Task 11', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/ServiceCollectionExtensions.cs +LINE: 33 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 12 +MESSAGE: Comment contains 'Task 12', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/IOpcUaClient.cs +LINE: 195 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken) +MESSAGE: Method 'SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/IOpcUaClient.cs +LINE: 195 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken) +MESSAGE: Method 'SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/IOpcUaClient.cs +LINE: 195 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken) +MESSAGE: Method 'SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/IOpcUaClient.cs +LINE: 195 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken) +MESSAGE: Method 'SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/IOpcUaClient.cs +LINE: 195 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken) +MESSAGE: Method 'SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/IOpcUaClient.cs +LINE: 195 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken) +MESSAGE: Method 'SearchAsync(Func> browse, string query, int maxDepth, int maxResults, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/MxGatewayAlarmMapper.cs +LINE: 78 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: MxValueToString(MxValue? mxVal) +MESSAGE: Method 'MxValueToString(MxValue? mxVal)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/MxGatewayAlarmMapper.cs +LINE: 78 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: MxValueToString(MxValue? mxVal) +MESSAGE: Method 'MxValueToString(MxValue? mxVal)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DataConnectionLayer/Adapters/RealOpcUaClient.cs +LINE: 1011 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: cap-0 +MESSAGE: Comment contains 'cap-0', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ArgParser.cs +LINE: 6 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Success(RecipeDownload payload) +MESSAGE: Method 'Success(RecipeDownload payload)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ArgParser.cs +LINE: 7 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Fail(string error) +MESSAGE: Method 'Fail(string error)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ArgParser.cs +LINE: 16 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Parse(string[] args) +MESSAGE: Method 'Parse(string[] args)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ConfigLoader.cs +LINE: 11 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Load(string jsonText) +MESSAGE: Method 'Load(string jsonText)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ConfigLoader.cs +LINE: 11 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Load(string jsonText) +MESSAGE: Method 'Load(string jsonText)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ConfigLoader.cs +LINE: 15 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: LoadFromDefaultFile() +MESSAGE: Method 'LoadFromDefaultFile()' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ConfigLoader.cs +LINE: 22 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SplitBaseUrls(string? baseUrls) +MESSAGE: Method 'SplitBaseUrls(string? baseUrls)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ConfigLoader.cs +LINE: 22 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SplitBaseUrls(string? baseUrls) +MESSAGE: Method 'SplitBaseUrls(string? baseUrls)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ConfigLoader.cs +LINE: 33 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ResolveApiKey(Func envGet) +MESSAGE: Method 'ResolveApiKey(Func envGet)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/ConfigLoader.cs +LINE: 33 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ResolveApiKey(Func envGet) +MESSAGE: Method 'ResolveApiKey(Func envGet)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/DiagLog.cs +LINE: 13 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Write(string message) +MESSAGE: Method 'Write(string message)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/HttpRecipeSender.cs +LINE: 15 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: SendAsync(string baseUrl, RecipeDownload payload, CancellationToken ct) +MESSAGE: Method 'SendAsync(string baseUrl, RecipeDownload payload, CancellationToken ct)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/IRecipeSender.cs +LINE: 20 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: SendAsync(string baseUrl, RecipeDownload payload, CancellationToken ct) +MESSAGE: Method 'SendAsync(string baseUrl, RecipeDownload payload, CancellationToken ct)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/Notifier.cs +LINE: 13 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: RunAsync(string[] baseUrls, RecipeDownload payload, IRecipeSender sender, CancellationToken ct) +MESSAGE: Method 'RunAsync(string[] baseUrls, RecipeDownload payload, IRecipeSender sender, CancellationToken ct)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/NotifierConfig.cs +LINE: 6 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: ScadaBridge +MESSAGE: Property 'ScadaBridge' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/Program.cs +LINE: 5 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Main(string[] args) +MESSAGE: Method 'Main(string[] args)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/Program.cs +LINE: 64 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: SendAsync(string baseUrl, RecipeDownload payload, CancellationToken ct) +MESSAGE: Method 'SendAsync(string baseUrl, RecipeDownload payload, CancellationToken ct)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownload.cs +LINE: 5 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: MachineCode +MESSAGE: Property 'MachineCode' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownload.cs +LINE: 6 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: DownloadPath +MESSAGE: Property 'DownloadPath' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownload.cs +LINE: 7 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: WorkOrderNumber +MESSAGE: Property 'WorkOrderNumber' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownload.cs +LINE: 8 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: PartNumber +MESSAGE: Property 'PartNumber' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownload.cs +LINE: 9 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: JobStepNumber +MESSAGE: Property 'JobStepNumber' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownload.cs +LINE: 10 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Username +MESSAGE: Property 'Username' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownloadResult.cs +LINE: 5 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Result +MESSAGE: Property 'Result' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/RecipeDownloadResult.cs +LINE: 6 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: ResultText +MESSAGE: Property 'ResultText' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DelmiaNotifier/Reporter.cs +LINE: 10 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Report(bool ok, string reason, TextWriter stdout) +MESSAGE: Method 'Report(bool ok, string reason, TextWriter stdout)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/ErrorClassifier.cs +LINE: 49 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsTransient(Exception exception, CancellationToken cancellationToken) +MESSAGE: Method 'IsTransient(Exception exception, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/ErrorClassifier.cs +LINE: 49 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsTransient(Exception exception, CancellationToken cancellationToken) +MESSAGE: Method 'IsTransient(Exception exception, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/ErrorClassifier.cs +LINE: 49 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsTransient(Exception exception, CancellationToken cancellationToken) +MESSAGE: Method 'IsTransient(Exception exception, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/CentralHealthAggregator.cs +LINE: 113 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: year-0001 +MESSAGE: Comment contains 'year-0001', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/IHealthReportTransport.cs +LINE: 22 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SendAsync(SiteHealthReport report, CancellationToken cancellationToken) +MESSAGE: Method 'SendAsync(SiteHealthReport report, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/ServiceCollectionExtensions.cs +LINE: 66 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 10 +MESSAGE: Comment contains 'Task 10', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/SiteHealthState.cs +LINE: 29 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: year-0001 +MESSAGE: Comment contains 'year-0001', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Actors/AkkaHostedService.cs +LINE: 86 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: AkkaHostedService(IServiceProvider serviceProvider, IOptions nodeOptions, IOptions clusterOptions, IOptions communicationOptions, ILogger logger, IHostApplicationLifetime? appLifetime) +MESSAGE: Constructor 'AkkaHostedService(IServiceProvider serviceProvider, IOptions nodeOptions, IOptions clusterOptions, IOptions communicationOptions, ILogger logger, IHostApplicationLifetime? appLifetime)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Actors/AkkaHostedService.cs +LINE: 208 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #2 +MESSAGE: Comment contains '#2', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Actors/AkkaHostedService.cs +LINE: 865 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #2 +MESSAGE: Comment contains '#2', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Actors/CentralSingletonRegistrar.cs +LINE: 20 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Start(ActorSystem system, string name, Props singletonProps, ILogger logger, TimeSpan? drainTimeout) +MESSAGE: Method 'Start(ActorSystem system, string name, Props singletonProps, ILogger logger, TimeSpan? drainTimeout)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/ClusterActivityEvaluator.cs +LINE: 17 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SelfIsOldest(Cluster cluster, string? role) +MESSAGE: Method 'SelfIsOldest(Cluster cluster, string? role)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/ClusterActivityEvaluator.cs +LINE: 17 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SelfIsOldest(Cluster cluster, string? role) +MESSAGE: Method 'SelfIsOldest(Cluster cluster, string? role)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/ClusterActivityEvaluator.cs +LINE: 17 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SelfIsOldest(Cluster cluster, string? role) +MESSAGE: Method 'SelfIsOldest(Cluster cluster, string? role)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/ClusterActivityEvaluator.cs +LINE: 32 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: OldestUpMember(Cluster cluster, string? role) +MESSAGE: Method 'OldestUpMember(Cluster cluster, string? role)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/ClusterActivityEvaluator.cs +LINE: 32 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: OldestUpMember(Cluster cluster, string? role) +MESSAGE: Method 'OldestUpMember(Cluster cluster, string? role)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/ClusterActivityEvaluator.cs +LINE: 32 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: OldestUpMember(Cluster cluster, string? role) +MESSAGE: Method 'OldestUpMember(Cluster cluster, string? role)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/OldestNodeActiveHealthCheck.cs +LINE: 24 +CATEGORY: InheritDocMisused +SEVERITY: Error +MEMBER: Method +SIGNATURE: CheckHealthAsync(HealthCheckContext context, CancellationToken ct) +MESSAGE: Method 'CheckHealthAsync(HealthCheckContext context, CancellationToken ct)' uses but has nothing to inherit (not an override or interface implementation). + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Health/RequiredSingletonsHealthCheck.cs +LINE: 98 +CATEGORY: InheritDocMisused +SEVERITY: Error +MEMBER: Method +SIGNATURE: CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken) +MESSAGE: Method 'CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken)' uses but has nothing to inherit (not an override or interface implementation). + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Program.cs +LINE: 58 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: HOST-8 +MESSAGE: Comment contains 'HOST-8', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Program.cs +LINE: 95 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Program.cs +LINE: 414 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 7 +MESSAGE: Comment contains 'Task 7', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Program.cs +LINE: 414 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: PLAN-06 +MESSAGE: Comment contains 'PLAN-06', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Program.cs +LINE: 480 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: HOST-7 +MESSAGE: Comment contains 'HOST-7', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Services/InProcessScriptArtifactChangeBus.cs +LINE: 96 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Constructor +SIGNATURE: Subscription(InProcessScriptArtifactChangeBus bus, Action handler) +MESSAGE: Constructor 'Subscription(InProcessScriptArtifactChangeBus bus, Action handler)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Host/Services/InProcessScriptArtifactChangeBus.cs +LINE: 102 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Dispose() +MESSAGE: Method 'Dispose()' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/ParameterValidator.cs +LINE: 53 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: runtime-400 +MESSAGE: Comment contains 'runtime-400', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ConfigSecretScrubber.cs +LINE: 38 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Scrub(string? json) +MESSAGE: Method 'Scrub(string? json)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ConfigSecretScrubber.cs +LINE: 38 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Scrub(string? json) +MESSAGE: Method 'Scrub(string? json)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ConfigSecretScrubber.cs +LINE: 125 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: MergeSentinels(string? incoming, string? stored) +MESSAGE: Method 'MergeSentinels(string? incoming, string? stored)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ConfigSecretScrubber.cs +LINE: 125 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: MergeSentinels(string? incoming, string? stored) +MESSAGE: Method 'MergeSentinels(string? incoming, string? stored)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ConfigSecretScrubber.cs +LINE: 125 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: MergeSentinels(string? incoming, string? stored) +MESSAGE: Method 'MergeSentinels(string? incoming, string? stored)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ManagementActor.cs +LINE: 193 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetRequiredRoles(object command) +MESSAGE: Method 'GetRequiredRoles(object command)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ManagementActor.cs +LINE: 193 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetRequiredRoles(object command) +MESSAGE: Method 'GetRequiredRoles(object command)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/ManagementActor.cs +LINE: 2032 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/Delivery/EmailNotificationDeliveryAdapter.cs +LINE: 206 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/NotificationOutboxActor.cs +LINE: 821 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 13 +MESSAGE: Comment contains 'Task 13', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/NotificationOutboxActor.cs +LINE: 1106 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 13 +MESSAGE: Comment contains 'Task 13', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/NotificationOutboxActor.cs +LINE: 1181 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 13 +MESSAGE: Comment contains 'Task 13', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/SmsOptions.cs +LINE: 44 +CATEGORY: InheritDocMisused +SEVERITY: Error +MEMBER: Method +SIGNATURE: Validate(string? name, SmsOptions options) +MESSAGE: Method 'Validate(string? name, SmsOptions options)' uses but has nothing to inherit (not an override or interface implementation). + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/MailKitSmtpClientWrapper.cs +LINE: 9 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/MailKitSmtpClientWrapper.cs +LINE: 113 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/OAuth2TokenService.cs +LINE: 89 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/OAuth2TokenService.cs +LINE: 95 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: M365 +MESSAGE: Comment contains 'M365', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 71 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetAttribute(string attributeName) +MESSAGE: Method 'GetAttribute(string attributeName)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 71 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetAttribute(string attributeName) +MESSAGE: Method 'GetAttribute(string attributeName)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 74 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SetAttribute(string attributeName, string value) +MESSAGE: Method 'SetAttribute(string attributeName, string value)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 74 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SetAttribute(string attributeName, string value) +MESSAGE: Method 'SetAttribute(string attributeName, string value)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 74 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SetAttribute(string attributeName, string value) +MESSAGE: Method 'SetAttribute(string attributeName, string value)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 77 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallScript(string scriptName, object? parameters) +MESSAGE: Method 'CallScript(string scriptName, object? parameters)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 77 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallScript(string scriptName, object? parameters) +MESSAGE: Method 'CallScript(string scriptName, object? parameters)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 77 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallScript(string scriptName, object? parameters) +MESSAGE: Method 'CallScript(string scriptName, object? parameters)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 99 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 99 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 99 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 99 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 99 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'Call(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 107 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 107 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 107 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 107 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 107 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedCall(string systemName, string methodName, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 119 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Connection(string name, CancellationToken cancellationToken) +MESSAGE: Method 'Connection(string name, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 119 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Connection(string name, CancellationToken cancellationToken) +MESSAGE: Method 'Connection(string name, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 119 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Connection(string name, CancellationToken cancellationToken) +MESSAGE: Method 'Connection(string name, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 123 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 123 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 123 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 123 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 123 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CachedWrite(string name, string sql, IReadOnlyDictionary? parameters, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 135 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: To(string listName) +MESSAGE: Method 'To(string listName)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 135 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: To(string listName) +MESSAGE: Method 'To(string listName)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 138 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Status(string notificationId) +MESSAGE: Method 'Status(string notificationId)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 138 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Status(string notificationId) +MESSAGE: Method 'Status(string notificationId)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 145 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Send(string subject, string message, CancellationToken cancellationToken) +MESSAGE: Method 'Send(string subject, string message, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 145 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Send(string subject, string message, CancellationToken cancellationToken) +MESSAGE: Method 'Send(string subject, string message, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 145 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Send(string subject, string message, CancellationToken cancellationToken) +MESSAGE: Method 'Send(string subject, string message, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 145 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Send(string subject, string message, CancellationToken cancellationToken) +MESSAGE: Method 'Send(string subject, string message, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 153 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallShared(string scriptName, object? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CallShared(string scriptName, object? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 153 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallShared(string scriptName, object? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CallShared(string scriptName, object? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 153 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallShared(string scriptName, object? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CallShared(string scriptName, object? parameters, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 153 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallShared(string scriptName, object? parameters, CancellationToken cancellationToken) +MESSAGE: Method 'CallShared(string scriptName, object? parameters, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 164 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Status(TrackedOperationId trackedOperationId, CancellationToken cancellationToken) +MESSAGE: Method 'Status(TrackedOperationId trackedOperationId, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 164 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Status(TrackedOperationId trackedOperationId, CancellationToken cancellationToken) +MESSAGE: Method 'Status(TrackedOperationId trackedOperationId, CancellationToken cancellationToken)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 164 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Status(TrackedOperationId trackedOperationId, CancellationToken cancellationToken) +MESSAGE: Method 'Status(TrackedOperationId trackedOperationId, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 174 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Indexer +SIGNATURE: this[string key] +MESSAGE: Parameter 'key' is missing from XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 181 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetAsync(string key) +MESSAGE: Method 'GetAsync(string key)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 181 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetAsync(string key) +MESSAGE: Method 'GetAsync(string key)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 184 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SetAsync(string key, object? value) +MESSAGE: Method 'SetAsync(string key, object? value)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 184 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SetAsync(string key, object? value) +MESSAGE: Method 'SetAsync(string key, object? value)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 184 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SetAsync(string key, object? value) +MESSAGE: Method 'SetAsync(string key, object? value)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 187 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Resolve(string key) +MESSAGE: Method 'Resolve(string key)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 187 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Resolve(string key) +MESSAGE: Method 'Resolve(string key)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 190 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 190 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 190 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 190 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 190 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 191 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 194 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 194 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 194 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 194 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 194 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, object? targetValue, TimeSpan timeout, bool requireGoodQuality)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 195 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality) +MESSAGE: Method 'WaitForAsync(string key, Func predicate, TimeSpan timeout, bool requireGoodQuality)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 198 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 198 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 198 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 198 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 198 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 198 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 198 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout) +MESSAGE: Method 'WriteBatchAndWaitAsync(IReadOnlyDictionary values, string flagKey, object? flagValue, string responseKey, object? responseValue, TimeSpan timeout)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 205 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Indexer +SIGNATURE: this[string compositionName] +MESSAGE: Parameter 'compositionName' is missing from XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 215 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallScript(string scriptName, object? parameters) +MESSAGE: Method 'CallScript(string scriptName, object? parameters)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 215 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallScript(string scriptName, object? parameters) +MESSAGE: Method 'CallScript(string scriptName, object? parameters)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 215 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CallScript(string scriptName, object? parameters) +MESSAGE: Method 'CallScript(string scriptName, object? parameters)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 218 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ResolveScript(string scriptName) +MESSAGE: Method 'ResolveScript(string scriptName)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptCompileSurface.cs +LINE: 218 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ResolveScript(string scriptName) +MESSAGE: Method 'ResolveScript(string scriptName)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptTrustPolicy.cs +LINE: 322 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: BuildMinimalFallbackReferences() +MESSAGE: Method 'BuildMinimalFallbackReferences()' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/ScriptTrustValidator.cs +LINE: 316 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Constructor +SIGNATURE: HardeningWalker(SortedSet violations) +MESSAGE: Constructor 'HardeningWalker(SortedSet violations)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/TriggerCompileSurface.cs +LINE: 35 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Indexer +SIGNATURE: this[string key] +MESSAGE: Parameter 'key' is missing from XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/TriggerCompileSurface.cs +LINE: 49 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Indexer +SIGNATURE: this[string compositionName] +MESSAGE: Parameter 'compositionName' is missing from XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 27 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock) +MESSAGE: Constructor 'AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 27 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock) +MESSAGE: Constructor 'AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 27 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock) +MESSAGE: Constructor 'AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 27 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock) +MESSAGE: Constructor 'AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 27 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock) +MESSAGE: Constructor 'AutoLoginAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, IOptions disableLoginOptions, TimeProvider clock)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 40 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SignInAsync(ClaimsPrincipal user, AuthenticationProperties? properties) +MESSAGE: Method 'SignInAsync(ClaimsPrincipal user, AuthenticationProperties? properties)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 40 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SignInAsync(ClaimsPrincipal user, AuthenticationProperties? properties) +MESSAGE: Method 'SignInAsync(ClaimsPrincipal user, AuthenticationProperties? properties)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 40 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SignInAsync(ClaimsPrincipal user, AuthenticationProperties? properties) +MESSAGE: Method 'SignInAsync(ClaimsPrincipal user, AuthenticationProperties? properties)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 43 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SignOutAsync(AuthenticationProperties? properties) +MESSAGE: Method 'SignOutAsync(AuthenticationProperties? properties)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/AutoLoginAuthenticationHandler.cs +LINE: 43 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SignOutAsync(AuthenticationProperties? properties) +MESSAGE: Method 'SignOutAsync(AuthenticationProperties? properties)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/Auth/DisableLoginGuard.cs +LINE: 13 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Validate(bool disableLogin, string environmentName, bool allowOutsideDevelopment) +MESSAGE: Method 'Validate(bool disableLogin, string environmentName, bool allowOutsideDevelopment)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/LoginThrottle.cs +LINE: 70 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsLockedOut(string username, string ip) +MESSAGE: Method 'IsLockedOut(string username, string ip)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/LoginThrottle.cs +LINE: 70 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsLockedOut(string username, string ip) +MESSAGE: Method 'IsLockedOut(string username, string ip)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/LoginThrottle.cs +LINE: 70 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: IsLockedOut(string username, string ip) +MESSAGE: Method 'IsLockedOut(string username, string ip)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/LoginThrottle.cs +LINE: 85 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: RecordFailure(string username, string ip) +MESSAGE: Method 'RecordFailure(string username, string ip)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/LoginThrottle.cs +LINE: 85 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: RecordFailure(string username, string ip) +MESSAGE: Method 'RecordFailure(string username, string ip)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/LoginThrottle.cs +LINE: 123 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: RecordSuccess(string username, string ip) +MESSAGE: Method 'RecordSuccess(string username, string ip)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/LoginThrottle.cs +LINE: 123 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: RecordSuccess(string username, string ip) +MESSAGE: Method 'RecordSuccess(string username, string ip)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/SecurityOptions.cs +LINE: 141 +CATEGORY: InheritDocMisused +SEVERITY: Error +MEMBER: Method +SIGNATURE: Validate(string? name, SecurityOptions options) +MESSAGE: Method 'Validate(string? name, SecurityOptions options)' uses but has nothing to inherit (not an override or interface implementation). + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 97 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 14 +MESSAGE: Comment contains 'Task 14', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 136 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 16 +MESSAGE: Comment contains 'Task 16', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 150 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 16 +MESSAGE: Comment contains 'Task 16', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 194 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: SiteCallAuditActor(ISiteCallAuditRepository repository, ILogger logger, SiteCallAuditOptions? options, ICentralAuditWriter? auditWriter) +MESSAGE: Constructor 'SiteCallAuditActor(ISiteCallAuditRepository repository, ILogger logger, SiteCallAuditOptions? options, ICentralAuditWriter? auditWriter)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 286 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 14 +MESSAGE: Comment contains 'Task 14', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 602 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 16 +MESSAGE: Comment contains 'Task 16', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 610 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 15 +MESSAGE: Comment contains 'Task 15', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 619 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task-15 +MESSAGE: Comment contains 'Task-15', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 1114 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 14 +MESSAGE: Comment contains 'Task 14', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteCallAudit/SiteCallAuditActor.cs +LINE: 1170 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 14 +MESSAGE: Comment contains 'Task 14', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/DeploymentManagerActor.cs +LINE: 157 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: DeploymentManagerActor(SiteStorageService storage, ScriptCompilationService compilationService, SharedScriptLibrary sharedScriptLibrary, SiteStreamManager? streamManager, SiteRuntimeOptions options, ILogger logger, IActorRef? dclManager, IActorRef? replicationActor, ISiteHealthCollector? healthCollector, IServiceProvider? serviceProvider, ILoggerFactory? loggerFactory, IDeploymentConfigFetcher? configFetcher, TimeSpan? startupLoadRetryInterval, Func>>? configLoader) +MESSAGE: Constructor 'DeploymentManagerActor(SiteStorageService storage, ScriptCompilationService compilationService, SharedScriptLibrary sharedScriptLibrary, SiteStreamManager? streamManager, SiteRuntimeOptions options, ILogger logger, IActorRef? dclManager, IActorRef? replicationActor, ISiteHealthCollector? healthCollector, IServiceProvider? serviceProvider, ILoggerFactory? loggerFactory, IDeploymentConfigFetcher? configFetcher, TimeSpan? startupLoadRetryInterval, Func>>? configLoader)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/DeploymentManagerActor.cs +LINE: 157 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: DeploymentManagerActor(SiteStorageService storage, ScriptCompilationService compilationService, SharedScriptLibrary sharedScriptLibrary, SiteStreamManager? streamManager, SiteRuntimeOptions options, ILogger logger, IActorRef? dclManager, IActorRef? replicationActor, ISiteHealthCollector? healthCollector, IServiceProvider? serviceProvider, ILoggerFactory? loggerFactory, IDeploymentConfigFetcher? configFetcher, TimeSpan? startupLoadRetryInterval, Func>>? configLoader) +MESSAGE: Constructor 'DeploymentManagerActor(SiteStorageService storage, ScriptCompilationService compilationService, SharedScriptLibrary sharedScriptLibrary, SiteStreamManager? streamManager, SiteRuntimeOptions options, ILogger logger, IActorRef? dclManager, IActorRef? replicationActor, ISiteHealthCollector? healthCollector, IServiceProvider? serviceProvider, ILoggerFactory? loggerFactory, IDeploymentConfigFetcher? configFetcher, TimeSpan? startupLoadRetryInterval, Func>>? configLoader)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/ScriptActor.cs +LINE: 481 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: EvaluateCondition(ConditionalTriggerConfig config, object? value) +MESSAGE: Method 'EvaluateCondition(ConditionalTriggerConfig config, object? value)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/SiteReconciliationActor.cs +LINE: 233 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Completed(int fetched, int failed, int orphans) +MESSAGE: Method 'Completed(int fetched, int failed, int orphans)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/SiteReconciliationActor.cs +LINE: 236 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Faulted(Exception error) +MESSAGE: Method 'Faulted(Exception error)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/SiteReplicationActor.cs +LINE: 62 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: SiteReplicationActor(SiteStorageService storage, StoreAndForwardStorage sfStorage, ReplicationService replicationService, string siteRole, ILogger logger, IDeploymentConfigFetcher? configFetcher, Func? isActiveOverride, SiteRuntimeOptions? options, TimeSpan? configFetchRetryDelay) +MESSAGE: Constructor 'SiteReplicationActor(SiteStorageService storage, StoreAndForwardStorage sfStorage, ReplicationService replicationService, string siteRole, ILogger logger, IDeploymentConfigFetcher? configFetcher, Func? isActiveOverride, SiteRuntimeOptions? options, TimeSpan? configFetchRetryDelay)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/SiteReplicationActor.cs +LINE: 62 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Constructor +SIGNATURE: SiteReplicationActor(SiteStorageService storage, StoreAndForwardStorage sfStorage, ReplicationService replicationService, string siteRole, ILogger logger, IDeploymentConfigFetcher? configFetcher, Func? isActiveOverride, SiteRuntimeOptions? options, TimeSpan? configFetchRetryDelay) +MESSAGE: Constructor 'SiteReplicationActor(SiteStorageService storage, StoreAndForwardStorage sfStorage, ReplicationService replicationService, string siteRole, ILogger logger, IDeploymentConfigFetcher? configFetcher, Func? isActiveOverride, SiteRuntimeOptions? options, TimeSpan? configFetchRetryDelay)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/SiteReplicationActor.cs +LINE: 220 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SendToPeer(object message) +MESSAGE: Method 'SendToPeer(object message)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Actors/SiteReplicationActor.cs +LINE: 413 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 11 +MESSAGE: Comment contains 'Task 11', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/HttpDeploymentConfigFetcher.cs +LINE: 11 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Constructor +SIGNATURE: HttpDeploymentConfigFetcher(HttpClient http, ILogger log) +MESSAGE: Constructor 'HttpDeploymentConfigFetcher(HttpClient http, ILogger log)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/HttpDeploymentConfigFetcher.cs +LINE: 17 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct) +MESSAGE: Method 'FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/IDeploymentConfigFetcher.cs +LINE: 15 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct) +MESSAGE: Method 'FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/IDeploymentConfigFetcher.cs +LINE: 15 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct) +MESSAGE: Method 'FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/IDeploymentConfigFetcher.cs +LINE: 15 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct) +MESSAGE: Method 'FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/IDeploymentConfigFetcher.cs +LINE: 15 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct) +MESSAGE: Method 'FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/IDeploymentConfigFetcher.cs +LINE: 15 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct) +MESSAGE: Method 'FetchAsync(string centralFetchBaseUrl, string deploymentId, string token, CancellationToken ct)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/IDeploymentConfigFetcher.cs +LINE: 21 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: IsSuperseded +MESSAGE: Property 'IsSuperseded' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Deployment/IDeploymentConfigFetcher.cs +LINE: 22 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Constructor +SIGNATURE: DeploymentConfigFetchException(string message, bool isSuperseded, Exception? inner) +MESSAGE: Constructor 'DeploymentConfigFetchException(string message, bool isSuperseded, Exception? inner)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Persistence/SiteStorageService.cs +LINE: 493 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: UpsertNativeAlarmAsync(string instanceName, string sourceCanonicalName, string sourceReference, string conditionJson, DateTimeOffset lastTransitionAt, string? metadataJson) +MESSAGE: Method 'UpsertNativeAlarmAsync(string instanceName, string sourceCanonicalName, string sourceReference, string conditionJson, DateTimeOffset lastTransitionAt, string? metadataJson)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Persistence/SiteStorageService.cs +LINE: 804 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #23 +MESSAGE: Comment contains '#23', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/ScriptRuntimeContext.cs +LINE: 295 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: CreateChildContextForSharedScript(int childCallDepth) +MESSAGE: Method 'CreateChildContextForSharedScript(int childCallDepth)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/ScriptRuntimeContext.cs +LINE: 2202 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: StoreAndForward-015 +MESSAGE: Comment contains 'StoreAndForward-015', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/ScriptRuntimeContext.cs +LINE: 2206 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 14 +MESSAGE: Comment contains 'Task 14', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 27 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Monitored(string attribute) +MESSAGE: Method 'Monitored(string attribute)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 47 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: TryReadAttributeName(string? triggerConfigJson, string attribute) +MESSAGE: Method 'TryReadAttributeName(string? triggerConfigJson, string attribute)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 47 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: TryReadAttributeName(string? triggerConfigJson, string attribute) +MESSAGE: Method 'TryReadAttributeName(string? triggerConfigJson, string attribute)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 47 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: TryReadAttributeName(string? triggerConfigJson, string attribute) +MESSAGE: Method 'TryReadAttributeName(string? triggerConfigJson, string attribute)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 79 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ForScript(string? triggerType, string? triggerConfigJson) +MESSAGE: Method 'ForScript(string? triggerType, string? triggerConfigJson)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 79 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ForScript(string? triggerType, string? triggerConfigJson) +MESSAGE: Method 'ForScript(string? triggerType, string? triggerConfigJson)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 79 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ForScript(string? triggerType, string? triggerConfigJson) +MESSAGE: Method 'ForScript(string? triggerType, string? triggerConfigJson)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 103 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ForAlarm(string? triggerType, string? triggerConfigJson) +MESSAGE: Method 'ForAlarm(string? triggerType, string? triggerConfigJson)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 103 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ForAlarm(string? triggerType, string? triggerConfigJson) +MESSAGE: Method 'ForAlarm(string? triggerType, string? triggerConfigJson)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Scripts/TriggerRouting.cs +LINE: 103 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ForAlarm(string? triggerType, string? triggerConfigJson) +MESSAGE: Method 'ForAlarm(string? triggerType, string? triggerConfigJson)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/Tracking/OperationTrackingStore.cs +LINE: 384 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 15 +MESSAGE: Comment contains 'Task 15', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/NotificationForwarder.cs +LINE: 26 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: StoreAndForward-018 +MESSAGE: Comment contains 'StoreAndForward-018', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/NotificationForwarder.cs +LINE: 93 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: StoreAndForward-018 +MESSAGE: Comment contains 'StoreAndForward-018', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/StoreAndForwardService.cs +LINE: 102 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: SetDeliveryGate(Func gate) +MESSAGE: Method 'SetDeliveryGate(Func gate)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/StoreAndForwardService.cs +LINE: 707 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #2 +MESSAGE: Comment contains '#2', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/StoreAndForwardService.cs +LINE: 722 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 8 +MESSAGE: Comment contains 'Task 8', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/StoreAndForwardService.cs +LINE: 915 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task-19 +MESSAGE: Comment contains 'Task-19', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/StoreAndForwardStorage.cs +LINE: 88 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 18 +MESSAGE: Comment contains 'Task 18', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/StoreAndForwardStorage.cs +LINE: 375 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetMessagesForRetryAsync(int limit) +MESSAGE: Method 'GetMessagesForRetryAsync(int limit)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/Flattening/FlatteningService.cs +LINE: 912 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: depth-1 +MESSAGE: Comment contains 'depth-1', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/Flattening/RevisionHashService.cs +LINE: 22 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: TemplateEngine-011 +MESSAGE: Comment contains 'TemplateEngine-011', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/TemplateService.cs +LINE: 1235 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ReconcileDescendantsAsync(int templateId, string user, CancellationToken cancellationToken) +MESSAGE: Method 'ReconcileDescendantsAsync(int templateId, string user, CancellationToken cancellationToken)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/TemplateService.cs +LINE: 1565 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Any +MESSAGE: Property 'Any' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/TemplateService.cs +LINE: 1567 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Method +SIGNATURE: Add(ReconcileCounts other) +MESSAGE: Method 'Add(ReconcileCounts other)' is missing XML documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/Validation/ScriptCompiler.cs +LINE: 46 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/Validation/ScriptCompileVerdictCache.cs +LINE: 48 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetOrAdd(string code, Func<(bool Ok, string? Error)> factory) +MESSAGE: Method 'GetOrAdd(string code, Func<(bool Ok, string? Error)> factory)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/Validation/ScriptCompileVerdictCache.cs +LINE: 48 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetOrAdd(string code, Func<(bool Ok, string? Error)> factory) +MESSAGE: Method 'GetOrAdd(string code, Func<(bool Ok, string? Error)> factory)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/Validation/ScriptCompileVerdictCache.cs +LINE: 48 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: GetOrAdd(string code, Func<(bool Ok, string? Error)> factory) +MESSAGE: Method 'GetOrAdd(string code, Func<(bool Ok, string? Error)> factory)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/Validation/SemanticValidator.cs +LINE: 122 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Encryption/BundleManifestAad.cs +LINE: 18 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Step-4 +MESSAGE: Comment contains 'Step-4', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/ArtifactDiff.cs +LINE: 56 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/ArtifactDiff.cs +LINE: 88 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/ArtifactDiff.cs +LINE: 682 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 262 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Step-4 +MESSAGE: Comment contains 'Step-4', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 395 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 793 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 866 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 969 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 1091 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 1365 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 1800 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 1959 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 2050 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 2074 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 2190 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 2256 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 2298 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 4339 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Task 15 +MESSAGE: Comment contains 'Task 15', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 4339 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Pass-1 +MESSAGE: Comment contains 'Pass-1', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleImporter.cs +LINE: 4410 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/BundleSessionStore.cs +LINE: 76 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/LineDiffer.cs +LINE: 76 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: Diff(string? oldText, string? newText, int maxLines) +MESSAGE: Method 'Diff(string? oldText, string? newText, int maxLines)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 7 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 32 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: AttributesEqual(TemplateAttribute e, TemplateAttributeDto i) +MESSAGE: Method 'AttributesEqual(TemplateAttribute e, TemplateAttributeDto i)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 32 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: AttributesEqual(TemplateAttribute e, TemplateAttributeDto i) +MESSAGE: Method 'AttributesEqual(TemplateAttribute e, TemplateAttributeDto i)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 32 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: AttributesEqual(TemplateAttribute e, TemplateAttributeDto i) +MESSAGE: Method 'AttributesEqual(TemplateAttribute e, TemplateAttributeDto i)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 50 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById) +MESSAGE: Method 'AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 50 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById) +MESSAGE: Method 'AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 50 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById) +MESSAGE: Method 'AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 50 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById) +MESSAGE: Method 'AlarmsEqual(TemplateAlarm e, TemplateAlarmDto i, Func scriptNameById)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 64 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ScriptsEqual(TemplateScript e, TemplateScriptDto i) +MESSAGE: Method 'ScriptsEqual(TemplateScript e, TemplateScriptDto i)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 64 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ScriptsEqual(TemplateScript e, TemplateScriptDto i) +MESSAGE: Method 'ScriptsEqual(TemplateScript e, TemplateScriptDto i)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 64 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ScriptsEqual(TemplateScript e, TemplateScriptDto i) +MESSAGE: Method 'ScriptsEqual(TemplateScript e, TemplateScriptDto i)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 80 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: NativeAlarmSourcesEqual(TemplateNativeAlarmSource e, TemplateNativeAlarmSourceDto i) +MESSAGE: Method 'NativeAlarmSourcesEqual(TemplateNativeAlarmSource e, TemplateNativeAlarmSourceDto i)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 80 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: NativeAlarmSourcesEqual(TemplateNativeAlarmSource e, TemplateNativeAlarmSourceDto i) +MESSAGE: Method 'NativeAlarmSourcesEqual(TemplateNativeAlarmSource e, TemplateNativeAlarmSourceDto i)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 80 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: NativeAlarmSourcesEqual(TemplateNativeAlarmSource e, TemplateNativeAlarmSourceDto i) +MESSAGE: Method 'NativeAlarmSourcesEqual(TemplateNativeAlarmSource e, TemplateNativeAlarmSourceDto i)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 94 +CATEGORY: MissingParam +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ScriptNameResolver(IEnumerable scripts) +MESSAGE: Method 'ScriptNameResolver(IEnumerable scripts)' is missing documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Import/TemplateChildEquality.cs +LINE: 94 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: ScriptNameResolver(IEnumerable scripts) +MESSAGE: Method 'ScriptNameResolver(IEnumerable scripts)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/BundleSerializer.cs +LINE: 87 +CATEGORY: TaskReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: Step-4 +MESSAGE: Comment contains 'Step-4', which looks like a task/issue tracking identifier; tracking IDs should not appear in code documentation. + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 34 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Sites +MESSAGE: Property 'Sites' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 35 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: DataConnections +MESSAGE: Property 'DataConnections' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 36 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Instances +MESSAGE: Property 'Instances' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 43 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: SmsConfigurations +MESSAGE: Property 'SmsConfigurations' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 51 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: AreaNameById +MESSAGE: Property 'AreaNameById' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 93 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Sites +MESSAGE: Property 'Sites' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 94 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: DataConnections +MESSAGE: Property 'DataConnections' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 95 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: Instances +MESSAGE: Property 'Instances' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 106 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: SmsConfigs +MESSAGE: Property 'SmsConfigs' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/EntityDtos.cs +LINE: 143 +CATEGORY: MissingDoc +SEVERITY: Error +MEMBER: Property +SIGNATURE: NativeAlarmSources +MESSAGE: Property 'NativeAlarmSources' is missing XML documentation + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/Serialization/ImportValueNormalizer.cs +LINE: 35 +CATEGORY: MissingReturns +SEVERITY: Warning +MEMBER: Method +SIGNATURE: NormalizeListValue(string? value, DataType dataType, DataType? elementType, ILogger? logger, string? attributeName) +MESSAGE: Method 'NormalizeListValue(string? value, DataType dataType, DataType? elementType, ILogger? logger, string? attributeName)' returns a value but is missing . + +--- + +FILE: /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/TransportOptions.cs +LINE: 32 +CATEGORY: TrackingReferenceInComment +SEVERITY: Warning +MEMBER: Comment +SIGNATURE: #05 +MESSAGE: Comment contains '#05', which looks like a project tracking reference; bookkeeping references should not appear in code documentation. + diff --git a/deferred.md b/deferred.md new file mode 100644 index 00000000..cf8c02c0 --- /dev/null +++ b/deferred.md @@ -0,0 +1,44 @@ +# Remaining Deferred Work + +Source: `docs/plans/2026-07-08-deferred-work-register.md` (snapshot 2026-07-10). +Everything in the register's "Fix-now" table is already landed via the archreview +plans; what's left are the intentional deferrals below. + +## Product / roadmap-locked (revisit needs a decision or a trigger event) + +| # | Item | Why deferred | Revisit trigger | +|---|------|--------------|-----------------| +| 8 | Hash-chain tamper evidence (CLI `verify-chain` is a no-op stub) | v1.x by locked decision — append-only DB roles are the current control | A compliance requirement for cryptographic tamper evidence | +| 9 | Parquet audit archival (endpoint returns `501`) | v1.x — the `501` + CLI messaging are honest, not broken | AuditLog partition volume nears the retention ceiling | +| 11 | Central-persisted OPC UA cert-trust audit | Broadcast-to-both-nodes already covers HA | A governance/audit requirement for trust decisions | +| 19 | Bundle signing / cluster-to-cluster pull / differential bundles | v1 manifest hash + AES-GCM held sufficient | A non-repudiation requirement across orgs | +| 17 | Unified notifications + site-calls outbox page | Explicit M9 decision to keep two pages | Operator confusion reports | +| 18 | Folder drag-drop | Permanently closed — menu reorder shipped instead | — (closed) | + +## Scale / YAGNI (deferred until load justifies it) + +| # | Item | Why deferred | Revisit trigger | Status | +|---|------|--------------|-----------------|--------| +| 10 | Aggregated live alarm stream for Alarm Summary | Snapshot fan-out is acceptable at current instance counts | Latency complaints or >~50 instances/site | ✅ **SHIPPED + MERGED to main 2026-07-10** (`8c888f13`, plan `docs/plans/2026-07-10-aggregated-live-alarm-stream-plan.md`, T1–T8). Transient per-site in-memory live cache (`ISiteAlarmLiveCache`/`SiteAlarmAggregatorActor`) seeded by snapshot fan-out + additive `SubscribeSite` alarm-only gRPC stream; live-cache-driven Alarm Summary with 15s poll fallback; `[PERM]` no-central-store honored (code-reviewer-confirmed); validated options + telemetry; end-to-end trace. Register row moved to Resolved. | +| 22 | KPI history hourly rollups | 90-day retention already bounds the table | `KpiSample` query latency on dashboards | ✅ **SHIPPED + MERGED to main 2026-07-10** (`8c888f13`, plan `docs/plans/2026-07-10-kpi-history-hourly-rollups-plan.md`, T1–T8). Separate `KpiRollupHourly` table (migration `20260710153953`), recorder hourly fold w/ failover-safe lookback re-fold + idempotent upsert, per-metric gauge-vs-rate aggregation, range-threshold query routing (`RollupThresholdHours` 168h), longer rollup retention (365 ≥ 90) + dual purge, one-shot backfill, and 30 d/90 d window buttons. Register row moved to Resolved. | + +## Low-priority polish (near-complete, small remainder) + +| # | Item | Why deferred | Revisit trigger | +|---|------|--------------|-----------------| +| 12 | Native-alarm-source-override CSV import — Central UI upload button only | CLI + Management API + parser shipped 2026-07-10; the Blazor upload affordance is the only piece left, and it's pure polish (needs a live Blazor smoke) | First request to bulk-import native sources from the UI instead of the CLI | + +## New deferrals from review 08 (engineering debt, no defect) + +| Item | Why deferred | Revisit trigger | +|------|--------------|-----------------| +| Communication → HealthMonitoring layering inversion | Moving the interface + `SiteHealthState` to Commons ripples across 5 projects for a cosmetic inversion | Next breaking change to `ICentralHealthAggregator` | +| Reference docs for ScriptAnalysis, KpiHistory, DelmiaNotifier | Full StyleGuide-conformant docs are substantial; README claim was scoped instead (PLAN-08 T10) | Next doc-writing session touching those components | +| Test-coverage backfill: SiteCallAudit.Tests, DeploymentManager.Tests | No defect identified; coverage partly lives in ManagementService/Host/Integration suites | First regression escaping either component | +| Failover-timing + broader perf envelope (S&F drain rate, per-subscriber backpressure) | Needs the PLAN-01 two-node rig; placeholder harness already shipped (PLAN-08 T8) | PLAN-01 rig landing | + +--- + +Summary: 12 open deferrals (13th, folder drag-drop #18, is permanently closed). +None are currently actionable without a triggering event or product decision — +except row #12's UI upload button, whose CLI/API/parser core already shipped. -- 2.52.0