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 }); }
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>"); } }
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)); }