getMaxValueFromCowData method Null safety

double getMaxValueFromCowData(
  1. {required List<CowData>? cowDatas,
  2. required ActionType action}
)

소 데이터에서 최대값을 가져옵니다. 개체현황 그래프 표현시 최대 범위를 표현하기 위해 사용합니다.

Implementation

double getMaxValueFromCowData({required List<CowData>? cowDatas, required ActionType action}) {
  List<double> tmp = [];
  if (cowDatas == null) return 0;

  for (CowData cowData in cowDatas) {
    for (CowDataDay cowDataDay in cowData.data) {
      for (CowDataHour cowDataHour in cowDataDay.cowDataHour) {
        switch (action) {
          case ActionType.eating:
            tmp.add(cowDataHour.eating.value);
            break;
          case ActionType.ruminant:
            tmp.add(cowDataHour.ruminant.value);
            break;
          case ActionType.drinking:
            tmp.add(cowDataHour.drinking.value);
            break;
          case ActionType.sitting:
            tmp.add(cowDataHour.sitting.value);
            break;
          case ActionType.standing:
            tmp.add(cowDataHour.standing.value);
            break;
          case ActionType.lactation:
            tmp.add(cowDataHour.lactation.value);
            break;
          case ActionType.heading:
            tmp.add(cowDataHour.heading.value);
            break;
          case ActionType.activity:
            tmp.add(cowDataHour.activity.value);
            break;
          case ActionType.sittingStanding:
          case ActionType.cough:
            tmp.add(cowDataHour.cough.value);
            break;
          case ActionType.impulse:
          case ActionType.irregularSittingStanding:
          case ActionType.standingFail:
          case ActionType.doridori:
            break;
        }
      }
    }
  }

  return tmp.isEmpty ? 0 : tmp.reduce((curr, next) => curr > next ? curr : next);
}