in Source/Reports/CallReport.cs [22:99]
        public void RunReport(String outputDirectory, IEnumerable<RuleResult> result, Dictionary<string, Tuple<string, string, string>> endpoints)
        {
            var calls = result.Where(r => r.RuleName == "CallRecorder");
            JObject results = new JObject();
            JArray endpointArray = new JArray();
            double firstCall = double.MaxValue;
            double lastCall = double.MinValue;
            foreach (var callResult in calls)
            {
                var callList = callResult.Results["Calls"] as IEnumerable<ServiceCallItem>;
                if(callList.Count() == 0)
                {
                    continue;
                }
                JObject host = new JObject();
                host["Uri"] = callResult.Endpoint;
                if(endpoints.ContainsKey(callResult.Endpoint))
                {
                    host["Cpp"] = endpoints[callResult.Endpoint].Item1;
                    host["WinRT"] = endpoints[callResult.Endpoint].Item2;
                    host["C"] = endpoints[callResult.Endpoint].Item3;
                }
                JArray serviceCalls = new JArray();
                double hostFirstCall = callList.Min(c => c.m_reqTimeUTC) / (double)TimeSpan.TicksPerMillisecond;
                double hostLastCall = callList.Max(c => c.m_reqTimeUTC) / (double)TimeSpan.TicksPerMillisecond;
                if (hostFirstCall < firstCall) firstCall = hostFirstCall;
                if (hostLastCall > lastCall) lastCall = hostLastCall;
                foreach (var call in callList)
                {
                    JObject jsonCall = new JObject();
                    jsonCall["Id"] = call.m_id;
                    jsonCall["ReqTime"] = call.m_reqTimeUTC / (double)TimeSpan.TicksPerMillisecond;
                    jsonCall["Uri"] = call.m_uri;
                    if (call.m_xsapiMethods != null)
                    {
                        jsonCall["Cpp"] = call.m_xsapiMethods.Item1;
                        jsonCall["WinRT"] = call.m_xsapiMethods.Item2;
                        jsonCall["C"] = call.m_xsapiMethods.Item3;
                    }
                    jsonCall["Request Body"] = call.m_reqBody;
                    serviceCalls.Add(jsonCall);
                }
                host["Calls"] = serviceCalls;
                endpointArray.Add(host);
            }
            results["Start Time"] = firstCall;
            results["End Time"] = lastCall;
            results["Call List"] = endpointArray;
            using (var output = new StreamWriter(Path.Combine(outputDirectory, m_json ? "calls.json" : "calls.js")))
            {
                if (!m_json)
                {
                    output.Write("calls = ");
                }
                using (var jsonWriter = new JsonTextWriter(output))
                {
                    jsonWriter.Formatting = Formatting.Indented;
                    results.WriteTo(jsonWriter);
                }
            }
        }