positionAllInfo method
Future<void>
positionAllInfo(
)
Implementation
Future<void> positionAllInfo() async {
// 같은 Position 정보들을 가진 놈들을 PositionList 로 묶고,
// 그 PositionList 를 list 로 정리한다.
//1.모든 위치정보 가져와 Position 들로 만들기.
List<dynamic> temp = await repository.positionAll();
List<Map<String, dynamic>> l = [];
for (dynamic j in temp) {
l.add(convertUtf8ToObject(j));
}
List<Position> pos = [];
for (Map<String, dynamic> json in l) {
pos.add(Position.fromJson(json));
}
//2. 모든 가능한 장소 불러오기
List<Place> avail = await allAvailablePlaces();
//3. 모든 가능한 장소에 대해 PositionList 만들기
List<PositionList> list = [];
for (Place p in avail) {
list.add(PositionList(list: [], place: p));
}
//4. position 들 각 장소에 해당하는 positionlist 의 list 에 귀속시키기
for (Position p in pos) {
for (int i = 0; i < list.length; i++) {
if (list[i].place.name == p.name) {
list[i].list.add(p);
break;
}
}
}
//5. 아무도 없는 곳 떨구기?
for(int i=0; i<list.length;i++) {
if(list[i].list.isEmpty) {
list.remove(list[i]);
i--;
}
}
positions.value = list;
}