예제 #1
0
파일: Demo.cs 프로젝트: v6ak/DemoCleaner3
        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);
        }
예제 #2
0
        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);
        }