private void RecordSplit(Split split) { // AthleteSplit prevSplit = GetpreviousSplit(split.Epc); // DateTime prevSplitTime = GetpreviousSplitTime(split.Epc); split.RaceTime = split.DateTimeOfDay.Subtract(CurrentRace.StartDateTime.TimeOfDay).Ticks; split.RaceTime2 = split.DateTimeOfDay.Subtract(CurrentRace.StartDateTime.TimeOfDay).ToString("HH:mm:ss:ff"); split.SplitTime = split.DateTimeOfDay.TimeOfDay.TotalMilliseconds; split.RaceId = CurrentRace.Id; split.SplitDeviceId = split.SplitDeviceId; split.SplitName = split.SplitName; //var splitCount = AthleteSplits.Count(x => x.Epc == split.Epc && x.SplitDeviceId == split.SplitDeviceId) + 1; // split.SplitLapCount = splitCount; AthleteSplit atheleteSplit = new AthleteSplit { Epc = split.Epc, Time = split.DateTimeOfDay, RaceTime = TimeSpan.FromTicks(split.RaceTime).ToString("hh':'mm':'ss':'ff"), SplitTime = TimeSpan.FromMilliseconds(split.SplitTime).ToString("hh':'mm':'ss':'ff"), Rssi = split.Rssi, SplitName = split.SplitName, SplitDeviceId = split.SplitDeviceId, SplitLapCount = split.SplitLapCount }; if (_athleteDictionary != null && _athleteDictionary.ContainsKey(split.Epc)) { Athlete athlete = _athleteDictionary[split.Epc]; split.Athlete = athlete; split.AthleteId = athlete.Id; split.AthleteName = string.Format("{0} {1}", athlete.FirstName, athlete.LastName); split.Bib = athlete.Bib; atheleteSplit.AthleteId = athlete.Id; atheleteSplit.AtheleteName = split.AthleteName; atheleteSplit.Bib = athlete.Bib; } logger.Info("Read tag split: {0}", split); AthleteSplits.Insert(0, atheleteSplit); _splitRepository.AddSplit(split); _splitRepository.Save(); }
private AthleteSplit GetpreviousSplit(string epc) { AthleteSplit split = AthleteSplits.OrderByDescending(x => x.Time).FirstOrDefault(x => x.Epc == epc); return(split); }