dtoToResetFaultsValidation function
Implementation
ResetFaultsValidation dtoToResetFaultsValidation(
DeviceDetailsDTO details,
List<TimelineItem> activeAlerts,
) {
final fault = activeAlerts
.firstWhereOrNull((alert) => alert.type == TimelineItemType.shutdown);
final hasMatchingProduct = details.device?.product == ProductDTO.rdc2v4 ||
details.device?.product == ProductDTO.dc2v4;
final firmware = details.device?.firmwareVersion;
var hasUpdatedVersion = false;
if (firmware != null) {
try {
hasUpdatedVersion = Version.parse(firmware) >= Version(3, 3, 2);
} catch (_) {
hasUpdatedVersion = false;
}
}
return ResetFaultsValidation(
isCriticalFault: activeAlerts
.where((alert) => alert.type == TimelineItemType.shutdown)
.any((alert) => alert.isCriticalFault),
isSupportedFaultType: fault?.canRemoteResetFault != false,
isAuto: details.switchState == SwitchStateDTO.auto,
isConnected: details.device?.isConnected ?? false,
isFirmwareUpdated: hasMatchingProduct && hasUpdatedVersion,
);
}