public void Append(Checkpoint cp)
        {
            Checkpoints.Add(cp);
            if (finishForced)
            {
                return;
            }
            var position = positions.GetOrAdd(cp.RiderId, x => RoundPosition.FromStartTime(x, RoundStartTime));

            if (position.Finished)
            {
                return;
            }
            position.Append(cp);
            if (Track.Count < position.LapCount)
            {
                Track.Add(new List <Checkpoint>());
            }
            Track[position.LapCount - 1].Add(cp);
            if (FinishCriteria?.HasFinished(position, GetSequence(), false) == true)
            {
                position.Finish();
            }
            rating = null;
        }
Esempio n. 2
0
 public void ForceFinish()
 {
     foreach (var position in Rating.Where(x => !x.Finished).ToList())
     {
         if (FinishCriteria?.HasFinished(position, Rating, true) == true)
         {
             position.Finish();
             UpdateSequence(position);
         }
     }
     finishForced = true;
 }
        public void ForceFinish()
        {
            foreach (var position in GetSequence())
            {
                if (FinishCriteria?.HasFinished(position, GetSequence(), true) == true)
                {
                    position.Finish();
                }
            }
            finishForced = true;

            rating = null;
        }