Group all 69 projects into category subfolders under src/ and tests/ so the Rider Solution Explorer mirrors the module structure. Folders: Core, Server, Drivers (with a nested Driver CLIs subfolder), Client, Tooling. - Move every project folder on disk with git mv (history preserved as renames). - Recompute relative paths in 57 .csproj files: cross-category ProjectReferences, the lib/ HintPath+None refs in Driver.Historian.Wonderware, and the external mxaccessgw refs in Driver.Galaxy and its test project. - Rebuild ZB.MOM.WW.OtOpcUa.slnx with nested solution folders. - Re-prefix project paths in functional scripts (e2e, compliance, smoke SQL, integration, install). Build green (0 errors); unit tests pass. Docs left for a separate pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
20 lines
1.1 KiB
C#
20 lines
1.1 KiB
C#
using ZB.MOM.WW.OtOpcUa.Configuration.Entities;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.Configuration.Apply;
|
|
|
|
/// <summary>
|
|
/// Host-supplied callbacks invoked as the applier walks the diff. Callbacks are idempotent on
|
|
/// retry (the applier may re-invoke with the same inputs if a later stage fails — nodes
|
|
/// register-applied to the central DB only after success). Order: namespace → driver → device →
|
|
/// equipment → poll group → tag, with Removed before Added/Modified.
|
|
/// </summary>
|
|
public sealed class ApplyCallbacks
|
|
{
|
|
public Func<EntityChange<Namespace>, CancellationToken, Task>? OnNamespace { get; init; }
|
|
public Func<EntityChange<DriverInstance>, CancellationToken, Task>? OnDriver { get; init; }
|
|
public Func<EntityChange<Device>, CancellationToken, Task>? OnDevice { get; init; }
|
|
public Func<EntityChange<Equipment>, CancellationToken, Task>? OnEquipment { get; init; }
|
|
public Func<EntityChange<PollGroup>, CancellationToken, Task>? OnPollGroup { get; init; }
|
|
public Func<EntityChange<Tag>, CancellationToken, Task>? OnTag { get; init; }
|
|
}
|