Example #1
0
        /// <summary>
        /// Parse information from a string based on the log information to a RacingData object
        /// </summary>
        /// <param name="line">Information from log</param>
        /// <returns>Racing Data parsed</returns>
        public RacingData Parse(string line)
        {
            RacingData item = null;

            var arr = line.Split(' ').Where(x => !string.IsNullOrEmpty(x) && x != "–").ToArray();

            if (arr.Length >= 6)
            {
                var hour         = Convert.ToDateTime(arr[0]);
                var racerCode    = arr[1];
                var racerName    = arr[2];
                var lap          = Convert.ToInt32(arr[3]);
                var lapTime      = TimeSpanUtil.Parse(arr[4]);
                var averageSpeed = Convert.ToDouble(arr[5].Replace(",", "."));

                item = new RacingData
                {
                    Hour = hour
                };

                item.RacerData.Code       = racerCode;
                item.RacerData.Name       = racerName;
                item.LapData.Number       = lap;
                item.LapData.Time         = lapTime;
                item.LapData.AverageSpeed = averageSpeed;
            }

            return(item);
        }
        /// <summary>
        /// Parse data from racing data and other info to a RacingResult object
        /// </summary>
        /// <param name="item">Racing Data from a Racer</param>
        /// <param name="finishingPosition">Racer finishing position</param>
        /// <param name="totalTime">Racing Total Time</param>
        /// <returns>Racing Result parsed</returns>
        public RacingResult Parse(RacingData item, int finishingPosition, TimeSpan totalTime)
        {
            RacingResult model = new RacingResult
            {
                FinishingPosition = finishingPosition,
                CompletedLaps     = item.LapData.Number,
                TotalRacingTime   = totalTime
            };

            model.RacerData.Code = item.RacerData.Code;
            model.RacerData.Name = item.RacerData.Name;

            return(model);
        }
Example #3
0
        public async Task NextJump()
        {
            var raceData = await RacingData.GetNextJumpAsync();

            Assert.IsNotNull(raceData);

            Assert.IsTrue(raceData.success);

            if (raceData.result.Any())
            {
                var testData = raceData.result.FirstOrDefault();
                // this is required
                Assert.IsNotNull(testData.EventID);
                Assert.IsNotNull(testData.EventType.EventTypeID);
                Assert.IsNotNull(testData.AdvertisedStartTime);
            }
        }
Example #4
0
        public async Task <NextJump> RaceData()
        {
            var raceList = await RacingData.GetNextJumpAsync();

            return(raceList);
        }
Example #5
0
 /// <summary>
 /// Update the racer information in the collection
 /// </summary>
 /// <param name="dataByRacer">Collection of data by racer</param>
 /// <param name="lapData">Current lap information</param>
 private void UpdateRacerData(ref Dictionary <string, List <RacingData> > dataByRacer, RacingData lapData)
 {
     if (dataByRacer.ContainsKey(lapData.RacerData.Code))
     {
         dataByRacer[lapData.RacerData.Code].Add(lapData);
     }
     else
     {
         dataByRacer[lapData.RacerData.Code] = new List <RacingData>()
         {
             lapData
         };
     }
 }