/// <summary>
        /// Gets the code coverage for a build in a TFS server
        /// </summary>
        /// <param name="collectionUrl">The collection's url</param>
        /// <param name="projectName">The project name</param>
        /// <param name="buildName">The build name</param>
        /// <param name="userName">Username to connect to TFS</param>
        /// <param name="password">User's password</param>
        /// <returns></returns>
        public JsonResult GetCodeCoverage(string collectionUrl, string projectName, string buildName, string userName, string password)
        {
            var buildCoverageOrdered = CalculateBuildCoverageOrdered(collectionUrl, projectName, buildName, userName, password);

            var buildCoverage = CalculateBuildTotalCodeCoverage(buildCoverageOrdered);

            BuildCodeCoverageModel result = new BuildCodeCoverageModel();
            result.TotalCoverage = buildCoverage;
            result.Modules = buildCoverageOrdered;
            result.BuildName = buildName;

            return Json(result, JsonRequestBehavior.AllowGet);
        }
 private static BuildCodeCoverageModel CreateBuildCodeCoverageModel(string buildName, List<KeyValuePair<string, Module>> buildCoverageOrdered,
                                                                    double buildCoverage)
 {
     var model = new BuildCodeCoverageModel();
     model.BuildName = buildName;
     model.Modules = buildCoverageOrdered;
     model.TotalCoverage = buildCoverage;
     return model;
 }