Example #1
0
        public string BuildBreadCrumbs()
        {
            StringBuilder builder = new StringBuilder();

            builder.Append("<div class=\"breadCrumbs\">Current scope:");

            builder.AppendFormat("<a href=\"{0}\">{1}</a>", _pathResolver.RelativePathFromFileToRoot + _pathResolver.GetRelativePathFromRootForIndex(), "all assemblies");
            builder.Append("<span class=\"seperator\"></span>");
            builder.AppendFormat("<a href=\"{0}\">{1}</a>", _pathResolver.RelativePathFromFileToRoot + _pathResolver.GetRelativePathFromRootForAssembly(_assembly), _assembly.Name);
            builder.Append("<span class=\"seperator\"></span>");
            builder.AppendFormat("<a href=\"{0}\">{1}</a>", _pathResolver.RelativePathFromFileToRoot + _pathResolver.GetRelativePathFromRootForNamespace(_namespace), _namespace.Name);
            builder.Append("<span class=\"seperator\"></span>");
            builder.Append(_file.Name);

            builder.Append("</div>");

            return(builder.ToString());
        }
Example #2
0
        public void WriteTo(DirectoryInfo directory)
        {
            DirectoryInfo css = new DirectoryInfo(Path.Combine(directory.FullName, ".css"));

            css.Create();
            DirectoryInfo js = new DirectoryInfo(Path.Combine(directory.FullName, ".js"));

            js.Create();

            string coverageCss = Path.Combine(css.FullName, "coverage.css");

            using (var coverage = new StreamWriter(coverageCss))
            {
                coverage.Write(Resources.coverage);
            }
            string ideaCss = Path.Combine(css.FullName, "idea.css");

            using (var idea = new StreamWriter(ideaCss))
            {
                idea.Write(Resources.idea);
            }

            string highlightJs = Path.Combine(js.FullName, "highlight.pack.js");

            using (var highlight = new StreamWriter(highlightJs))
            {
                highlight.Write(Resources.highlight_pack);
            }


            TeamCityHtmlReportPathResolver resolver = new TeamCityHtmlReportPathResolver(directory);

            IndexTeamCityHtmlReportPageContent indexContent = new IndexTeamCityHtmlReportPageContent(resolver, _assemblies);
            TeamCityHtmlReportPage             indexPage    = new TeamCityHtmlReportPage(indexContent);

            using (
                var writer =
                    new StreamWriter(Path.Combine(directory.FullName,
                                                  resolver.GetRelativePathFromRootForIndex())))
            {
                indexPage.WriteTo(writer);
            }

            foreach (var sourceAssembly in _assemblies)
            {
                SourceAssemblyTeamCityHtmlReportPageContent assemblyContent = new SourceAssemblyTeamCityHtmlReportPageContent(resolver, sourceAssembly);
                TeamCityHtmlReportPage assemblyPage = new TeamCityHtmlReportPage(assemblyContent);

                using (
                    var writer =
                        new StreamWriter(Path.Combine(directory.FullName,
                                                      resolver.GetRelativePathFromRootForAssembly(sourceAssembly))))
                {
                    assemblyPage.WriteTo(writer);
                }

                foreach (var sourceNamespace in sourceAssembly.Namespaces)
                {
                    SourceNamespaceTeamCityHtmlReportPageContent namespaceContent = new SourceNamespaceTeamCityHtmlReportPageContent(resolver, sourceAssembly, sourceNamespace);
                    TeamCityHtmlReportPage namespacePage = new TeamCityHtmlReportPage(namespaceContent);

                    using (
                        var writer =
                            new StreamWriter(Path.Combine(directory.FullName,
                                                          resolver.GetRelativePathFromRootForNamespace(sourceNamespace))))
                    {
                        namespacePage.WriteTo(writer);
                    }

                    foreach (var sourceFile in sourceNamespace.Files)
                    {
                        SourceFileTeamCityHtmlReportPageContent fileContent = new SourceFileTeamCityHtmlReportPageContent(resolver, sourceAssembly, sourceNamespace, sourceFile);
                        TeamCityHtmlReportPage filePage = new TeamCityHtmlReportPage(fileContent);

                        using (
                            var writer =
                                new StreamWriter(Path.Combine(directory.FullName,
                                                              resolver.GetRelativePathFromRootForFile(sourceFile))))
                        {
                            filePage.WriteTo(writer);
                        }
                    }
                }
            }
        }