timeTableAllInfo method

Future<void> timeTableAllInfo()

Implementation

Future<void> timeTableAllInfo() async {
  // 같은 Position 정보들을 가진 놈들을 TimeList 로 묶고,
  // 그 TimeList 를 list 로 정리한다.

  //1.모든 위치정보 가져와 TimeZone 들로 만들기.
  List<dynamic> temp = await repository.timeTableAllInfo();
  List<Map<String, dynamic>> l = [];
  for (dynamic j in temp) {
    l.add(convertUtf8ToObject(j));
  }

  List<TimeZone> innerTimes = [];
  for (Map<String, dynamic> json in l) {
    innerTimes.add(TimeZone.fromJson(json));
  }
  //2. 모든 가능한 장소 불러오기
  PlaceDatabase placeDB = Get.find<PlaceDatabase>();
  List<DoomFacility> avail = placeDB.doomFacils!;

  //3. 모든 가능한 장소에 대해 PositionList 만들기

  List<TimeList> list = [];
  for (DoomFacility p in avail) {
    list.add(TimeList(list: [], place: p));
  }

  //4. position 들 각 장소에 해당하는 positionlist 의 list 에 귀속시키기

  for (TimeZone t in innerTimes) {
    for (int i = 0; i < list.length; i++) {
      if (list[i].place.name == placeDB.getDoomFacilName(t.facilityId)) {
        list[i].list.add(t);
        break;
      }
    }
  }
  //5. 아무도 없는 곳 떨구기?

  times.value = list;
}