public void UpdateValues(ILaneAssignment laneAssignment) { this.Lane = laneAssignment.Lane; this.Car = new CarViewModel(laneAssignment.Car); this.ElapsedSeconds = ((double)laneAssignment.ElapsedTime) / 100000; this.ScaleSpeed = laneAssignment.ScaleSpeed; this.Points = laneAssignment.Points; this.Position = laneAssignment.Position; }
public LaneAssignmentViewModel(ILaneAssignment laneAssignment) { if (laneAssignment == null) { throw new ArgumentNullException(nameof(laneAssignment)); } this.Car = new CarViewModel(laneAssignment.Car); UpdateValues(laneAssignment); }
public static LaneAssignmentDto FromLaneAssignment(ILaneAssignment laneAssignment) { if (laneAssignment == null) { return(null); } LaneAssignmentDto result = new LaneAssignmentDto() { Lane = laneAssignment.Lane, Car = CarDto.FromCar(laneAssignment.Car), ElapsedTime = laneAssignment.ElapsedTime, ScaleSpeed = laneAssignment.ScaleSpeed, Position = laneAssignment.Position, Points = laneAssignment.Points }; return(result); }
public static IRace UpdateRace(int tournamentID, IRace race) { IRlmRepository repo = RepositoryManager.GetDefaultRepository(); Race updatedRace = null; lock (_lock) { Tournament tournament = repo.LoadTournament(tournamentID); updatedRace = tournament.RaceData.Where(r => r.RaceNumber == race.RaceNumber).Single(); if (updatedRace.LaneAssignmentData.Count != race.LaneAssignments.Count()) { throw new ArgumentException("Races do not have the same number of lane assignments"); } updatedRace.State = race.State; ILaneAssignment[] laneAssignments = race.LaneAssignments.ToArray(); for (int i = 0; i < updatedRace.LaneAssignmentData.Count; i++) { LaneAssignment to = updatedRace.LaneAssignmentData[i]; ILaneAssignment from = laneAssignments[i]; to.ElapsedTime = from.ElapsedTime; to.Points = from.Points; to.Position = from.Position; } repo.SaveTournament(tournament); } //RacesUpdated?.Invoke(tournamentID, new RacesUpdatedEventArgs(GetRaces(tournamentID))); RaceUpdated?.Invoke(tournamentID, new RaceUpdatedEventArgs(updatedRace)); //NextRacesUpdated?.Invoke(tournamentID, new NextRacesUpdatedEventArgs(GetNextRaces(tournamentID))); StandingsUpdated?.Invoke(tournamentID, new StandingsUpdatedEventArgs(GetStandings(tournamentID))); return(updatedRace); }