dtoToGeneratorDetails function

GeneratorDetails dtoToGeneratorDetails(
  1. DeviceDetailsDTO deviceDetailsDTO
)

Implementation

GeneratorDetails dtoToGeneratorDetails(DeviceDetailsDTO deviceDetailsDTO) {
  return GeneratorDetails(
    device: dtoToDevice(deviceDetailsDTO.device!),
    powerSource: dtoToPowerSource(deviceDetailsDTO.powerSource),
    switchState: dtoToSwitchState(deviceDetailsDTO.switchState),
    coolingType: dtoToCoolingType(deviceDetailsDTO.coolingType),
    connectionType: dtoConnectionType(deviceDetailsDTO.connectionType),
    cellularDataStatus:
        dtoCellularDataStatus(deviceDetailsDTO.cellularDataStatus),
    cellularExpiryDate: deviceDetailsDTO.cellularExpiryDate,
    cellularInstallationDate: deviceDetailsDTO.cellularInstallationDate,
    hasServiceAgreement: deviceDetailsDTO.serviceAgreement?.hasServiceAgreement,
    serviceAgreementBeginDate:
        deviceDetailsDTO.serviceAgreement?.beginTimestamp,
    serviceAgreementTermMonths: deviceDetailsDTO.serviceAgreement?.termMonths,
    serviceAgreementTermDays: deviceDetailsDTO.serviceAgreement?.termDays,
    serverIpAddress: deviceDetailsDTO.serverIpAddress,
    lastExerciseStartDate: deviceDetailsDTO.exercise?.lastStartTimestamp,
    lastExerciseEndDate: deviceDetailsDTO.exercise?.lastEndTimestamp,
    nextExerciseDate: deviceDetailsDTO.exercise?.nextStartTimestamp?.toLocal(),
    exerciseDuration: deviceDetailsDTO.exercise?.durationMinutes != null
        ? Duration(minutes: deviceDetailsDTO.exercise!.durationMinutes!)
        : null,
    lastRanDate: deviceDetailsDTO.lastRanTimestamp,
    totalRuntime: deviceDetailsDTO.totalRuntimeHours != null
        ? Duration(minutes: (deviceDetailsDTO.totalRuntimeHours! * 60).round())
        : null,
    totalOperationTime: deviceDetailsDTO.totalOperationHours != null
        ? Duration(
            minutes: (deviceDetailsDTO.totalOperationHours! * 60).round(),
          )
        : null,
    addedBy: deviceDetailsDTO.addedBy,
    associatedUsers: deviceDetailsDTO.associatedUsers ?? [],
    modelNumber: deviceDetailsDTO.device?.modelDisplayName,
    serviceAgreementTerm:
        dtoToServiceAgreementTerm(deviceDetailsDTO.serviceAgreement?.term),
    exerciseMode: dtoToExerciseMode(deviceDetailsDTO.exercise?.mode),
    exerciseFrequency:
        dtoToExerciseFrequency(deviceDetailsDTO.exercise?.frequency),
    runningExerciseMode:
        dtoToExerciseMode(deviceDetailsDTO.exercise?.runningMode),
    supportsNextExerciseDateTimeParam:
        deviceDetailsDTO.exercise?.supportsNextExerciseDateTimeParam,
    product: deviceDetailsDTO.device?.productDisplayName,
    pim: dtoToPim(deviceDetailsDTO.pim),
    latestFirmware: deviceDetailsDTO.device?.firmwareVersion,
    currentFirmware: deviceDetailsDTO.device?.currentFirmware,
    loadShed: dtoToLoadShed(deviceDetailsDTO.loadShed),
    controllerClockTime: deviceDetailsDTO.controllerClockTimestamp,
    controllerTempF: deviceDetailsDTO.controllerTempF,
    controllerType: deviceDetailsDTO.device?.controllerType,
    engineCompartmentTempF: deviceDetailsDTO.engineCompartmentTempF,
    engineCoolantTempF: deviceDetailsDTO.engineCoolantTempF,
    engineFrequencyHz: deviceDetailsDTO.engineFrequencyHz,
    engineOilPressureOk: deviceDetailsDTO.engineOilPressureOk,
    engineOilPressurePsi: deviceDetailsDTO.engineOilPressurePsi,
    engineSpeedRevPerMin: deviceDetailsDTO.engineSpeedRpm,
    engineState: deviceDetailsDTO.engineStateDisplayNameEn,
    generatorLoadW: deviceDetailsDTO.generatorLoadW,
    fuelType: dtoToFuelType(deviceDetailsDTO.fuelType),
    lubeOilTempF: deviceDetailsDTO.lubeOilTempF,
    utilityVoltageV: deviceDetailsDTO.utilityVoltageV,
    setOutputVoltageV: deviceDetailsDTO.setOutputVoltageV,
    generatorLoadPercent: deviceDetailsDTO.generatorLoadPercent,
    generatorVoltageAvgV: deviceDetailsDTO.generatorVoltageAvgV,
    nextMaintenanceDate: deviceDetailsDTO.device!.nextMaintenanceTimestamp,
    batteryVoltageV: deviceDetailsDTO.batteryVoltageV,
  );
}