feat(native-alarms): per-binding IsMesReportable on native alarm source bindings (ScadaBridge#59)
TemplateNativeAlarmSource.IsMesReportable + tri-state InstanceNativeAlarmSourceOverride .IsMesReportableOverride flatten onto ResolvedNativeAlarmSource; NativeAlarmActor stamps every mirrored condition and InstanceActor the quiet-binding placeholder, so ScriptAlarm, Alarms.MesReportableAsync() and the #60 wire fields carry it. Additive to the 900-999 severity band. Migration AddNativeAlarmSourceMesReportable. Management commands, CLI --mes-reportable, Central UI (template dialog checkbox, instance override select), Transport DTOs/importer/diff and the revision hash (true-only, so existing hashes are unchanged) carry it. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
This commit is contained in:
@@ -1295,7 +1295,8 @@ public class ManagementActor : ReceiveActor
|
||||
InstanceId = cmd.InstanceId,
|
||||
ConnectionNameOverride = cmd.ConnectionNameOverride,
|
||||
SourceReferenceOverride = cmd.SourceReferenceOverride,
|
||||
ConditionFilterOverride = cmd.ConditionFilterOverride
|
||||
ConditionFilterOverride = cmd.ConditionFilterOverride,
|
||||
IsMesReportableOverride = cmd.IsMesReportableOverride
|
||||
};
|
||||
await repo.AddInstanceNativeAlarmSourceOverrideAsync(ovr);
|
||||
await repo.SaveChangesAsync();
|
||||
@@ -1305,6 +1306,7 @@ public class ManagementActor : ReceiveActor
|
||||
existing.ConnectionNameOverride = cmd.ConnectionNameOverride;
|
||||
existing.SourceReferenceOverride = cmd.SourceReferenceOverride;
|
||||
existing.ConditionFilterOverride = cmd.ConditionFilterOverride;
|
||||
existing.IsMesReportableOverride = cmd.IsMesReportableOverride;
|
||||
await repo.UpdateInstanceNativeAlarmSourceOverrideAsync(existing);
|
||||
await repo.SaveChangesAsync();
|
||||
return existing;
|
||||
@@ -1363,7 +1365,8 @@ public class ManagementActor : ReceiveActor
|
||||
InstanceId = cmd.InstanceId,
|
||||
ConnectionNameOverride = entry.ConnectionNameOverride,
|
||||
SourceReferenceOverride = entry.SourceReferenceOverride,
|
||||
ConditionFilterOverride = entry.ConditionFilterOverride
|
||||
ConditionFilterOverride = entry.ConditionFilterOverride,
|
||||
IsMesReportableOverride = entry.IsMesReportableOverride
|
||||
};
|
||||
await repo.AddInstanceNativeAlarmSourceOverrideAsync(ovr);
|
||||
results.Add(ovr);
|
||||
@@ -1373,6 +1376,7 @@ public class ManagementActor : ReceiveActor
|
||||
existing.ConnectionNameOverride = entry.ConnectionNameOverride;
|
||||
existing.SourceReferenceOverride = entry.SourceReferenceOverride;
|
||||
existing.ConditionFilterOverride = entry.ConditionFilterOverride;
|
||||
existing.IsMesReportableOverride = entry.IsMesReportableOverride;
|
||||
await repo.UpdateInstanceNativeAlarmSourceOverrideAsync(existing);
|
||||
results.Add(existing);
|
||||
}
|
||||
@@ -3441,7 +3445,8 @@ public class ManagementActor : ReceiveActor
|
||||
SourceReference = cmd.SourceReference,
|
||||
ConditionFilter = cmd.ConditionFilter,
|
||||
Description = cmd.Description,
|
||||
IsLocked = cmd.IsLocked
|
||||
IsLocked = cmd.IsLocked,
|
||||
IsMesReportable = cmd.IsMesReportable
|
||||
};
|
||||
await repo.AddTemplateNativeAlarmSourceAsync(source);
|
||||
await repo.SaveChangesAsync();
|
||||
@@ -3463,6 +3468,7 @@ public class ManagementActor : ReceiveActor
|
||||
source.ConditionFilter = cmd.ConditionFilter;
|
||||
source.Description = cmd.Description;
|
||||
source.IsLocked = cmd.IsLocked;
|
||||
source.IsMesReportable = cmd.IsMesReportable;
|
||||
await repo.UpdateTemplateNativeAlarmSourceAsync(source);
|
||||
await repo.SaveChangesAsync();
|
||||
// Propagate the changed source to derived descendants.
|
||||
|
||||
Reference in New Issue
Block a user