/// <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); }
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); } }
public async Task <NextJump> RaceData() { var raceList = await RacingData.GetNextJumpAsync(); return(raceList); }
/// <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 }; } }