feat(uns): area + line modals wired into the tree
This commit is contained in:
@@ -1,5 +1,27 @@
|
||||
namespace ZB.MOM.WW.OtOpcUa.AdminUI.Uns;
|
||||
|
||||
/// <summary>
|
||||
/// A UNS area projected for editing: its operator-editable fields plus the owning cluster and
|
||||
/// the concurrency token the edit modal must echo back on save.
|
||||
/// </summary>
|
||||
/// <param name="UnsAreaId">The area's stable id (read-only on edit).</param>
|
||||
/// <param name="Name">The area name.</param>
|
||||
/// <param name="Notes">Optional notes; <c>null</c> when unset.</param>
|
||||
/// <param name="ClusterId">The owning cluster id (the served-by selection).</param>
|
||||
/// <param name="RowVersion">The optimistic-concurrency token last read.</param>
|
||||
public sealed record AreaEditDto(string UnsAreaId, string Name, string? Notes, string ClusterId, byte[] RowVersion);
|
||||
|
||||
/// <summary>
|
||||
/// A UNS line projected for editing: its operator-editable fields plus the parent area and the
|
||||
/// concurrency token the edit modal must echo back on save.
|
||||
/// </summary>
|
||||
/// <param name="UnsLineId">The line's stable id (read-only on edit).</param>
|
||||
/// <param name="UnsAreaId">The owning area id (the parent-area selection).</param>
|
||||
/// <param name="Name">The line name.</param>
|
||||
/// <param name="Notes">Optional notes; <c>null</c> when unset.</param>
|
||||
/// <param name="RowVersion">The optimistic-concurrency token last read.</param>
|
||||
public sealed record LineEditDto(string UnsLineId, string UnsAreaId, string Name, string? Notes, byte[] RowVersion);
|
||||
|
||||
/// <summary>
|
||||
/// Loads the structural portion of the unified-namespace (UNS) browse tree —
|
||||
/// Enterprise → Cluster → Area → Line → Equipment — from the config database.
|
||||
@@ -27,6 +49,24 @@ public interface IUnsTreeService
|
||||
/// <returns>Tag nodes followed by VirtualTag nodes; empty if the equipment has none.</returns>
|
||||
Task<IReadOnlyList<UnsNode>> LoadEquipmentChildrenAsync(string equipmentId, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Loads a single UNS area projected for editing, or <c>null</c> if it no longer exists.
|
||||
/// Reads untracked and captures the current concurrency token for last-write-wins saves.
|
||||
/// </summary>
|
||||
/// <param name="unsAreaId">The area to load.</param>
|
||||
/// <param name="ct">A token to cancel the load.</param>
|
||||
/// <returns>The area's edit projection, or <c>null</c> when missing.</returns>
|
||||
Task<AreaEditDto?> LoadAreaAsync(string unsAreaId, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Loads a single UNS line projected for editing, or <c>null</c> if it no longer exists.
|
||||
/// Reads untracked and captures the current concurrency token for last-write-wins saves.
|
||||
/// </summary>
|
||||
/// <param name="unsLineId">The line to load.</param>
|
||||
/// <param name="ct">A token to cancel the load.</param>
|
||||
/// <returns>The line's edit projection, or <c>null</c> when missing.</returns>
|
||||
Task<LineEditDto?> LoadLineAsync(string unsLineId, CancellationToken ct = default);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new UNS area under a cluster. Fails if an area with the same id already exists.
|
||||
/// Whitespace-only notes are stored as <c>null</c>.
|
||||
|
||||
Reference in New Issue
Block a user