package org.openbakery.racecontrol.plugin.live.service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.openbakery.racecontrol.data.Driver;
import org.openbakery.racecontrol.data.Lap;
import org.openbakery.racecontrol.plugin.live.web.LiveTiming;
import org.openbakery.racecontrol.service.RaceService;
import org.springframework.beans.factory.annotation.Autowired;
public class LiveService {
@Autowired
private RaceService raceService;
public List<LiveTiming> getLiveTiming() {
List<Driver> driverList = raceService.getRaceControl().getRace().getRaceEntry().getDrivers();
ArrayList<LiveTiming> result = new ArrayList<LiveTiming>(driverList.size());
for (Driver driver : driverList) {
LiveTiming timing = new LiveTiming();
timing.setDriverName(driver.getPlayerName());
timing.setStartingPosition(driver.getStartingPosition());
timing.setLaps(driver.getCompletedLaps());
int lapNumber = driver.getCompletedLapCount();
if (lapNumber > 0) {
timing.setLapsCompleted(driver.getCompletedLapCount());
Lap lap = driver.getCompletedLap(lapNumber - 1);
timing.setLastLapTime(lap.getTime());
timing.setTotalTime(lap.getTotalTime());
}
if (driver.getPlayerId() > 0) {
result.add(timing);
}
}
Collections.sort(result, new LiveTimingComparator());
int i = 1;
for (LiveTiming timing : result) {
timing.setPosition(i++);
}
return result;
}
}