private static void WriteGeneralPagePackageRows(HtmlTextWriter writer, KeyValuePair<PackageKey, FeedPackage> package) { if (package.Value.CurrentVersion != null && package.Value.LatestVersion != null && package.Value.CurrentVersion.Version != package.Value.LatestVersion.Version) { writer.AddAttribute(HtmlTextWriterAttribute.Bgcolor, "#CCCC00;"); } writer.RenderBeginTag(HtmlTextWriterTag.Tr); { if (package.Value.CurrentVersion != null) { writer.RenderBeginTag(HtmlTextWriterTag.Td); { writer.WriteUrlLink(string.Format("{0}{1}.html", package.Value.CurrentVersion.Id, package.Value.CurrentVersion.Version), package.Value.CurrentVersion.Id); } writer.RenderEndTag(); } else { writer.WriteTableColumn(package.Key.Id); } writer.WriteTableColumn(package.Key.Version); writer.WriteTableColumn(package.Value.LatestVersion != null ? package.Value.LatestVersion.Version : "Unknown"); writer.RenderBeginTag(HtmlTextWriterTag.Td); { if (package.Value.CurrentVersion != null && !string.IsNullOrEmpty(package.Value.CurrentVersion.LicenseUrl)) { writer.WriteUrlLink(package.Value.CurrentVersion.LicenseUrl, "License"); } else { writer.Write("Not Found"); } } writer.RenderEndTag(); writer.WriteTableColumn(package.Value.ProjectNames.Count.ToString(CultureInfo.InvariantCulture)); } writer.RenderEndTag(); }
private static void GeneratePackagePages(string outputFilePath, Dictionary<PackageKey, FeedPackage> feedPackages) { foreach (var package in feedPackages.Where(pckge => pckge.Value.CurrentVersion != null)) { using (var stringWriter = new StringWriter()) { using (var writer = new HtmlTextWriter(stringWriter)) { writer.RenderBeginTag(HtmlTextWriterTag.H1); { writer.WriteLine("Nuget Package Report for {0} {1}", package.Value.CurrentVersion.Id, package.Value.CurrentVersion.Version); } writer.RenderEndTag(); writer.WriteBreak(); writer.WriteBreak(); writer.WritePackageInfoLine("Description", package.Value.CurrentVersion.Description); writer.WritePackageInfoLine("Created", package.Value.CurrentVersion.Created.ToShortDateString()); writer.WritePackageInfoLine("Last Updated", package.Value.CurrentVersion.LastUpdated.ToShortDateString()); writer.WritePackageInfoLine("Release Notes", package.Value.CurrentVersion.ReleaseNotes); writer.RenderBeginTag(HtmlTextWriterTag.B); { writer.WriteLine("License Url"); } writer.RenderEndTag(); writer.WriteBreak(); if (!string.IsNullOrEmpty(package.Value.CurrentVersion.LicenseUrl)) { writer.WriteUrlLink(package.Value.CurrentVersion.LicenseUrl, package.Value.CurrentVersion.LicenseUrl); } else { writer.WriteLine("No License Url"); } writer.WriteBreak(); writer.WriteBreak(); writer.RenderBeginTag(HtmlTextWriterTag.B); { writer.WriteLine("Project Url"); } writer.RenderEndTag(); writer.WriteBreak(); if (!string.IsNullOrEmpty(package.Value.CurrentVersion.ProjectUrl)) { writer.WriteUrlLink(package.Value.CurrentVersion.ProjectUrl, package.Value.CurrentVersion.ProjectUrl); } else { writer.WriteLine("No Project Url"); } writer.WriteBreak(); writer.WriteBreak(); writer.RenderBeginTag(HtmlTextWriterTag.B); { writer.WriteLine("Gallery Details Url"); } writer.RenderEndTag(); writer.WriteBreak(); if (!string.IsNullOrEmpty(package.Value.CurrentVersion.GalleryDetailsUrl)) { writer.WriteUrlLink(package.Value.CurrentVersion.GalleryDetailsUrl, package.Value.CurrentVersion.GalleryDetailsUrl); } else { writer.WriteLine("No Gallery Details Url"); } writer.WriteBreak(); writer.WriteBreak(); var content = writer.InnerWriter.ToString(); var path = Path.Combine(outputFilePath, string.Format("{0}{1}.html", package.Value.CurrentVersion.Id, package.Value.CurrentVersion.Version)); File.WriteAllText(path, content); } } } }
private static void GenerateProjectPage(string inputFilePath, string outputFilePath, Dictionary<PackageKey, FeedPackage> feedPackages) { using (var stringWriter = new StringWriter()) { using (var writer = new HtmlTextWriter(stringWriter)) { writer.RenderBeginTag(HtmlTextWriterTag.H1); { writer.WriteLine("Nuget Package Report Projects by Package"); } writer.RenderEndTag(); writer.WriteGeneralInformation(inputFilePath, feedPackages); writer.WriteBreak(); foreach (var package in feedPackages) { writer.RenderBeginTag(HtmlTextWriterTag.H3); { writer.WriteUrlLink(string.Format("{0}{1}.html", package.Key.Id, package.Key.Version), string.Format("{0} {1}", package.Key.Id, package.Key.Version)); writer.WriteBreak(); } writer.RenderEndTag(); foreach (var project in package.Value.ProjectNames.OrderBy(x => x)) { writer.WriteLine(project); writer.WriteBreak(); } writer.WriteBreak(); } var content = writer.InnerWriter.ToString(); var path = Path.Combine(outputFilePath, ProjectPageFileName); File.WriteAllText(path, content); System.Diagnostics.Process.Start(path); } } }