fix(native-alarms): a 4-column CSV import keeps stored MES overrides on the CLI path too (ScadaBridge#104)
The bulk SetInstanceNativeAlarmSourceOverridesCommand handler always wrote the entry's IsMesReportableOverride, so a CLI import of a legacy 4-column CSV (no MesReportable column) reset every imported source's MES override to inherit. The Central UI avoided it only by looking up the stored flag client-side. NativeAlarmSourceOverrideEntry gains an additive trailing KeepStoredMesReportable flag: when set, the server leaves an existing row's MES override untouched (a new row inherits) and ignores IsMesReportableOverride; unset keeps the old meaning (null = clear to inherit), so older senders are unaffected. The CLI and the Central UI now build their entries through one rule (ToOverrideEntry on each row type): no MesReportable column => KeepStoredMesReportable. CLI README and Component-CentralUI updated. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
This commit is contained in:
@@ -1371,7 +1371,9 @@ public class ManagementActor : ReceiveActor
|
||||
ConnectionNameOverride = entry.ConnectionNameOverride,
|
||||
SourceReferenceOverride = entry.SourceReferenceOverride,
|
||||
ConditionFilterOverride = entry.ConditionFilterOverride,
|
||||
IsMesReportableOverride = entry.IsMesReportableOverride
|
||||
// ScadaBridge#104: an entry that leaves the MES flag unspecified keeps the
|
||||
// stored value — for a new row that is "inherit".
|
||||
IsMesReportableOverride = entry.KeepStoredMesReportable ? null : entry.IsMesReportableOverride
|
||||
};
|
||||
await repo.AddInstanceNativeAlarmSourceOverrideAsync(ovr);
|
||||
results.Add(ovr);
|
||||
@@ -1381,7 +1383,8 @@ public class ManagementActor : ReceiveActor
|
||||
existing.ConnectionNameOverride = entry.ConnectionNameOverride;
|
||||
existing.SourceReferenceOverride = entry.SourceReferenceOverride;
|
||||
existing.ConditionFilterOverride = entry.ConditionFilterOverride;
|
||||
existing.IsMesReportableOverride = entry.IsMesReportableOverride;
|
||||
if (!entry.KeepStoredMesReportable)
|
||||
existing.IsMesReportableOverride = entry.IsMesReportableOverride;
|
||||
await repo.UpdateInstanceNativeAlarmSourceOverrideAsync(existing);
|
||||
results.Add(existing);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user