private static void AddTimingMetrics(string prefix, string resourceName, Dictionary <string, string> rawKeyValuePairs, Dictionary <string, string> calculatedKevValuePairs) { if (rawKeyValuePairs.ContainsKey("reds" + resourceName) && rawKeyValuePairs.ContainsKey("redE" + resourceName)) { string value = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "reds" + resourceName, "redE" + resourceName); Plt1WebHandler.AddKeyValuePair(calculatedKevValuePairs, prefix + "RT", value); } if (rawKeyValuePairs.ContainsKey("dLS" + resourceName) && rawKeyValuePairs.ContainsKey("dLE" + resourceName)) { string value2 = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "dLS" + resourceName, "dLE" + resourceName); Plt1WebHandler.AddKeyValuePair(calculatedKevValuePairs, prefix + "DN", value2); } if (rawKeyValuePairs.ContainsKey("cS" + resourceName) && rawKeyValuePairs.ContainsKey("cE" + resourceName)) { string value3 = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "cS" + resourceName, "cE" + resourceName); Plt1WebHandler.AddKeyValuePair(calculatedKevValuePairs, prefix + "CT", value3); } if (rawKeyValuePairs.ContainsKey("sCS" + resourceName) && rawKeyValuePairs.ContainsKey("cE" + resourceName)) { string value4 = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "sCS" + resourceName, "cE" + resourceName); Plt1WebHandler.AddKeyValuePair(calculatedKevValuePairs, prefix + "ST", value4); } if (rawKeyValuePairs.ContainsKey("reqS" + resourceName) && rawKeyValuePairs.ContainsKey("resS" + resourceName)) { string value5 = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "reqS" + resourceName, "resS" + resourceName); Plt1WebHandler.AddKeyValuePair(calculatedKevValuePairs, prefix + "RQ", value5); } if (rawKeyValuePairs.ContainsKey("resS" + resourceName) && rawKeyValuePairs.ContainsKey("resE" + resourceName)) { string value6 = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "resS" + resourceName, "resE" + resourceName); Plt1WebHandler.AddKeyValuePair(calculatedKevValuePairs, prefix + "RS", value6); } if (rawKeyValuePairs.ContainsKey("resE" + resourceName)) { string value7 = rawKeyValuePairs["resE" + resourceName]; Plt1WebHandler.AddKeyValuePair(calculatedKevValuePairs, prefix + "TR", value7); } }
internal static void GetPlt1PerformanceEventData(UserAgent userAgent, string refererQueryString, NameValueCollection queryString, string postData, Dictionary <string, string> rawKeyValuePairs, Dictionary <string, string> calculatedKeyValuePairs) { Plt1WebHandler.UpdateDeviceInfo(rawKeyValuePairs, userAgent); Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, "UA", userAgent.RawString); if (!string.IsNullOrEmpty(refererQueryString)) { Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, "urlQuery", refererQueryString); } for (int i = 0; i < queryString.Keys.Count; i++) { string text = queryString.Keys[i]; string text2 = queryString[text]; if (text != null && text2 != null) { if (text.ToUpper() == "ALT" || text.ToUpper() == "PLT") { Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, "type", text.ToUpper()); string[] array = text2.Split(new char[] { ',' }); for (int j = 0; j < array.Length - 1; j += 2) { Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, array[j], array[j + 1]); } string text3 = "-1"; if (rawKeyValuePairs.ContainsKey("fS") && rawKeyValuePairs.ContainsKey("now") && rawKeyValuePairs.ContainsKey("type")) { text3 = Plt1WebHandler.AddStringAsIntValue(rawKeyValuePairs, "fS", "now"); } Plt1WebHandler.AddKeyValuePair(calculatedKeyValuePairs, rawKeyValuePairs["type"], string.IsNullOrEmpty(text3) ? "-1" : text3); if (rawKeyValuePairs.ContainsKey("rSt") && rawKeyValuePairs.ContainsKey("now")) { string value = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "rSt", "now"); Plt1WebHandler.AddKeyValuePair(calculatedKeyValuePairs, "RDT", value); } if (rawKeyValuePairs.ContainsKey("rStNoTim") && rawKeyValuePairs.ContainsKey("nowNoTim")) { string value2 = Plt1WebHandler.SubtractStringAsIntValue(rawKeyValuePairs, "rStNoTim", "nowNoTim"); Plt1WebHandler.AddKeyValuePair(calculatedKeyValuePairs, "NTRDT", value2); } Plt1WebHandler.AddTimingMetrics(string.Empty, string.Empty, rawKeyValuePairs, calculatedKeyValuePairs); } else if (text == "msg") { string[] array2 = text2.Split(new char[] { ';' }); if (array2.Length > 0) { Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, "msg", array2[0]); } if (array2.Length > 1) { Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, "msgc", array2[1]); } } else { Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, text, text2); } } } if (!string.IsNullOrEmpty(postData)) { string[] array3 = postData.Split(new char[] { '&' }); foreach (string text4 in array3) { if (text4.StartsWith("Res=")) { int num = text4.IndexOf(','); if (num >= 0) { int length = "Res=".Length; string text5 = text4.Substring(length, num - length); if (text5.Contains("?")) { text5 = text5.Substring(0, text5.IndexOf('?')); } string text6 = Plt1WebHandler.EncodeValidKeyString(text5); string text7 = text4.Substring(num + 1 + "tim=".Length); string[] array5 = text7.Split(new char[] { ',' }); for (int l = 0; l < array5.Length - 1; l += 2) { Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, array5[l] + "[" + text6 + "]", array5[l + 1]); } if (text5.Equals("sessiondata.ashx", StringComparison.InvariantCultureIgnoreCase)) { Plt1WebHandler.AddTimingMetrics("S", "[" + text6 + "]", rawKeyValuePairs, calculatedKeyValuePairs); } else if (Regex.IsMatch(text5, "^preboot\\.", RegexOptions.IgnoreCase)) { Plt1WebHandler.AddTimingMetrics("R1", "[" + text6 + "]", rawKeyValuePairs, calculatedKeyValuePairs); } else if (Regex.IsMatch(text5, "^boot\\.([^\\.]+\\.)?0", RegexOptions.IgnoreCase)) { Plt1WebHandler.AddTimingMetrics("R2", "[" + text6 + "]", rawKeyValuePairs, calculatedKeyValuePairs); } else if (text5.StartsWith("userspecificresourceinjector.ashx", StringComparison.InvariantCultureIgnoreCase)) { Plt1WebHandler.AddTimingMetrics("U", "[" + text6 + "]", rawKeyValuePairs, calculatedKeyValuePairs); } } } else if (!string.IsNullOrEmpty(text4)) { string[] array6 = text4.Split(new char[] { '=' }); if (array6.Length >= 2) { string key = Plt1WebHandler.EncodeValidKeyString(array6[0]); Plt1WebHandler.AddKeyValuePair(rawKeyValuePairs, key, array6[1]); } } } } }