Пример #1
0
        private static void FirstPass(VersionHandler handler, string userAgent, int[] maxCharacters, List <DeviceResult> initialResults)
        {
            string compare, target;

            foreach (var devices in handler.UserAgents)
            {
                foreach (DeviceInfo device in devices)
                {
                    SegmentScore[] scores = new SegmentScore[handler.VersionRegexes.Length];
                    for (int segment = 0; segment < handler.VersionRegexes.Length; segment++)
                    {
                        target  = handler.VersionRegexes[segment].Match(userAgent).Value;
                        compare = handler.VersionRegexes[segment].Match(device.UserAgent).Value;
                        for (int i = 0; i < target.Length && i < compare.Length; i++)
                        {
                            scores[segment].Difference += Math.Abs((target[i] - compare[i]));
                            scores[segment].CharactersMatched++;
                        }
                        if (scores[segment].CharactersMatched > maxCharacters[segment])
                        {
                            maxCharacters[segment] = scores[segment].CharactersMatched;
                        }
                    }
                    initialResults.Add(new DeviceResult(scores, device));
                }
            }
        }
Пример #2
0
 private static void FirstPass(VersionHandler handler, string userAgent, int[] maxCharacters, List<DeviceResult> initialResults)
 {
     string compare, target;
     foreach (var devices in handler.UserAgents)
     {
         foreach (DeviceInfo device in devices)
         {
             SegmentScore[] scores = new SegmentScore[handler.VersionRegexes.Length];
             for (int segment = 0; segment < handler.VersionRegexes.Length; segment++)
             {
                 target = handler.VersionRegexes[segment].Match(userAgent).Value;
                 compare = handler.VersionRegexes[segment].Match(device.UserAgent).Value;
                 for (int i = 0; i < target.Length && i < compare.Length; i++)
                 {
                     scores[segment].Difference += Math.Abs((target[i] - compare[i]));
                     scores[segment].CharactersMatched++;
                 }
                 if (scores[segment].CharactersMatched > maxCharacters[segment])
                     maxCharacters[segment] = scores[segment].CharactersMatched;
             }
             initialResults.Add(new DeviceResult(scores, device));
         }
     }
 }
Пример #3
0
 internal DeviceResult(SegmentScore[] scores, DeviceInfo device)
 {
     Scores = scores;
     Device = device;
 }