public ActionResult GetProjectTree(string repositoryUrl) { var commits = new MongoRepository().GetCommits().Where(x => x.RepositoryUrl == repositoryUrl); var result = commits.OrderByDescending(x => x.Date).First().Modules.OrderBy(x => x.Name).Select(module => new { label =HttpUtility.HtmlEncode(module.Name), open = false, inode = true, node = HttpUtility.HtmlEncode(module.Name), branch = module.Namespaces.OrderBy(x => x.Name).Select(namespaces => new { label = HttpUtility.HtmlEncode(namespaces.Name), open = false, inode = true, node = HttpUtility.HtmlEncode(module.Name + ">" + namespaces.Name), branch = namespaces.Types.OrderBy(x => x.Name).Select(type => new { label = HttpUtility.HtmlEncode(type.Name), open = false, inode = true, node = HttpUtility.HtmlEncode(module.Name + ">" + namespaces.Name + ">" + type.Name), branch = type.Members.OrderBy(x => x.Name).Select(member => new { label = HttpUtility.HtmlEncode(member.Name), open = false, inode = false, node = HttpUtility.HtmlEncode(module.Name + ">" + namespaces.Name + ">" + type.Name + ">" + member.Name) }) }) }) }); return Json(result, JsonRequestBehavior.AllowGet); }