static TimeStringInfo getFastestTimeStringInfo(List <TimeStringInfo> timestrings, DemoNames names) { TimeStringInfo fastestTimeString = null; if (timestrings.Count == 1) { fastestTimeString = timestrings.First(); } else if (timestrings.Count >= 1) { var cuStrings = timestrings.Where(x => (!string.IsNullOrEmpty(x.oName) && (x.oName == names.dfName || x.oName == names.uName))); if (cuStrings.Count() == 0) { var groups = timestrings.GroupBy(x => x.oName); if (groups.Count() == 1) { cuStrings = timestrings; } } if (cuStrings.Count() > 0) { fastestTimeString = Ext.MinOf(cuStrings, x => (long)x.time.TotalMilliseconds); } } return(fastestTimeString); }
private List <TimeStringInfo> getTimeStrings() { List <TimeStringInfo> infos = new List <TimeStringInfo>(); if (allTimes.Count > 0) { for (int i = 0; i < allTimes.Count; i++) { var demoTimeCmd = allTimes[i]; TimeSpan time = new TimeSpan(); string oName = ""; //online or offline name derived from a line in the console switch (demoTimeCmd.Key) { case TimeType.OFFLINE_NORMAL: time = getTimeOfflineNormal(demoTimeCmd.Value); oName = getNameOffline(demoTimeCmd.Value); break; case TimeType.ONLINE_NORMAL: time = getTimeOnline(demoTimeCmd.Value); oName = getNameOnline(demoTimeCmd.Value); break; case TimeType.OFFLINE_OLD1: time = getTimeOld1(demoTimeCmd.Value); oName = getNameOfflineOld1(demoTimeCmd.Value); break; case TimeType.OFFLINE_OLD2: time = getTimeOfflineNormal(demoTimeCmd.Value); break; case TimeType.OFFLINE_OLD3: time = getTimeOld3(demoTimeCmd.Value); break; } var info = new TimeStringInfo(); info.time = time; info.oName = oName; info.timeString = demoTimeCmd.Value; if (i < dateStamps.Count) { info.recordDateString = dateStamps[i]; info.recordDate = getDateForDemo(dateStamps[i]); } infos.Add(info); } } return(infos); }