Пример #1
0
        public OutputResponse Create(RootNode rootNode, string outputFolder)
        {
            Logger.Log("Creating instance of SinglePageHtmlDocumentOutputProvider", LogLevel.High);

            var builder = new StringBuilder();

            _ = builder.AppendLine(@"<html>");

            AppendHtmlHead(builder);

            _ = builder.AppendLine(@"<body>");

            var translator = new RootNodeToYumlClassDiagramTranslator(rootNode.ChildProjects);

            AddOverallRootDependencies(rootNode, outputFolder, builder, translator);

            _ = builder.AppendLine(@"<div id='accordian'>");

            AddReferences(rootNode, outputFolder, builder, translator);

            _ = builder.AppendLine(@"</div>");

            _ = builder.AppendLine(@"</body>");
            _ = builder.AppendLine(@"</html>");

            string htmlOutputFilePath = Path.Combine(outputFolder, "references.html");

            FileHandler.EnsureFolderExistsForFullyPathedLink(htmlOutputFilePath);
            File.WriteAllText(htmlOutputFilePath, builder.ToString());

            return(new OutputResponse {
                Path = htmlOutputFilePath, Success = true
            });
        }
Пример #2
0
        private static void AddReferences(RootNode rootNode, string outputFolder, StringBuilder builder, RootNodeToYumlClassDiagramTranslator translator)
        {
            foreach (var projectDetail in rootNode.ChildProjects.OrderBy(x => Path.GetFileName(x.FullPath)))
            {
                Logger.Log(string.Format("generating HTML output for projectDetail: '{0}'", projectDetail.FullPath), LogLevel.High);

                var projectOutput = translator.Translate(projectDetail, true);

                _ = builder.AppendLine(string.Format(@"<h2>{0}</h2>", Path.GetFileName(projectOutput.RootFile)));
                _ = builder.AppendLine(string.Format(@"<div class='projectReference' id='{0}'>", projectDetail.Id));

                AddReferences(builder, outputFolder, projectDetail, projectOutput);

                AddReferencedBy(builder, outputFolder, projectDetail, projectOutput);

                _ = builder.AppendLine(@"</div>");
            }
        }
Пример #3
0
        private static void AddOverallRootDependencies(RootNode rootNode, string outputFolder, StringBuilder builder, RootNodeToYumlClassDiagramTranslator translator)
        {
            var yumlClassOutput = translator.Translate(rootNode, true);

            _ = builder.AppendLine(string.Format(@"<h1>All references for: {0}</h1>", yumlClassOutput.RootFile));

            string rootNodeOutputFileName = MakeOutputImageFileName(outputFolder, yumlClassOutput.RootFile);

            FetchImage(yumlClassOutput.DependencyDiagram, rootNodeOutputFileName);

            _ = builder.AppendLine(string.Format(@"<p>Image for whole reference list: <a href='{0}' target='_blank'> View Yuml Image</a></p>", rootNodeOutputFileName));
        }