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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }