コード例 #1
0
ファイル: RFIDManager.cs プロジェクト: ianmarshall/RfidTimer
        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();
        }
コード例 #2
0
ファイル: RFIDManager.cs プロジェクト: ianmarshall/RfidTimer
        private AthleteSplit GetpreviousSplit(string epc)
        {
            AthleteSplit split = AthleteSplits.OrderByDescending(x => x.Time).FirstOrDefault(x => x.Epc == epc);

            return(split);
        }