private static void LocalUsers(ComputerHardwareScan sc, StringBuilder fileContentTemplate) { if (sc.IsWindowsLocalUsersPresent) { fileContentTemplate.AppendLine(GetHeader("LOCAL USERS")); foreach (var node in sc.WindowsLocalUsers) { fileContentTemplate.AppendLine(GetLocalUserValue("Name", node.Name, "Caption", node.Caption, "Description", node.Description, "Active", node.IsActive.ToString(), "Status", node.Status, "Changeable", node.PasswordChangeable.ToString(), "Expires", node.PasswordExpires.ToString(), "Required", node.PasswordRequired.ToString())); if (sc.WindowsLocalUsers.IndexOf(node) != sc.WindowsLocalUsers.Count - 1) { fileContentTemplate.AppendLine("<hr class=\"separator\">"); } } } }
private static void Printers(ComputerHardwareScan sc, StringBuilder fileContentTemplate) { if (sc.IsPrintersPresent) { fileContentTemplate.AppendLine(GetHeader("PRINTERS")); foreach (var node in sc.Printers) { fileContentTemplate.AppendLine(GetPrinterValue("Name", node.DefaultPrinter, "Port", node.DefaultPrinterPortName, "Local", node.IsLocal.ToString(), "Network", node.IsNetwork.ToString(), "Shared", node.IsShared.ToString())); if (sc.Printers.IndexOf(node) != sc.Printers.Count - 1) { fileContentTemplate.AppendLine("<hr class=\"separator\">"); } } } }
private static void LocalGroups(ComputerHardwareScan sc, StringBuilder fileContentTemplate) { if (sc.IsWindowsLocalGroupsPresent) { fileContentTemplate.AppendLine(GetHeader("LOCAL GROUPS")); foreach (var node in sc.WindowsLocalGroups) { fileContentTemplate.AppendLine(GetLocalGroupValue("Name", node.Name, "Caption", node.Caption, "Description", node.Description, "Local", node.IsLocal.ToString(), "Status", node.Status, "Users", string.Join("<br>", node.MembersInOneLine.Split('\n')))); if (sc.WindowsLocalGroups.IndexOf(node) != sc.WindowsLocalGroups.Count - 1) { fileContentTemplate.AppendLine("<hr class=\"separator\">"); } } } }
/* * Of course, i shouldn't write html serialization this way, but how to make serialization exactly in the same form as the scan is displayed in the program? * If I find another way, this section will be rewritten. */ public static string Serialize(string name, ComputerHardwareScan sc, Dictionary <string, fakeColor> BrushList, ObservableCollection <object> ViewModes, string description = "", string ipaddres = "", string fqdn = "", bool includeFullInfo = false) { var fileContentTemplate = new StringBuilder(); fileContentTemplate.AppendLine("<!DOCTYPE html>"); fileContentTemplate.AppendLine("<head>"); fileContentTemplate.AppendLine(" <style>"); fileContentTemplate.AppendLine(" HTML { margin: 0 !important; border: none !important; }"); fileContentTemplate.AppendLine(" body { background-color: " + BrushList["Background"].GetHEXFromBytes() + ";"); fileContentTemplate.AppendLine(" color: " + BrushList["Text"].GetHEXFromBytes() + ";"); fileContentTemplate.AppendLine(" font-family: Segoe UI;"); fileContentTemplate.AppendLine(" font-size: 12px;"); fileContentTemplate.AppendLine(" }"); fileContentTemplate.AppendLine(" .headerStyle { width: 100%; border-collapse: collapse;}"); fileContentTemplate.AppendLine(" .headerStyle th { background-color: " + BrushList["Header"].GetFromARGB(BrushList["Background"]).GetHEXFromBytes() + "; width: 135px; text-align: right; height: 22px;}"); fileContentTemplate.AppendLine(" .headerStyle td { height: 0px;}"); fileContentTemplate.AppendLine(" .dataStyle { width: 100%; border-collapse: collapse;}"); fileContentTemplate.AppendLine(" hr.separator { margin-left: 145px; border: 3px solid " + BrushList["Header"].GetFromARGB(BrushList["Background"]).GetHEXFromBytes() + ";}"); fileContentTemplate.AppendLine(" </style>"); fileContentTemplate.AppendLine(" <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">"); fileContentTemplate.AppendLine(" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">"); fileContentTemplate.AppendLine(" <meta name=\"google\" value=\"notranslate\">"); fileContentTemplate.AppendLine(" <meta name=\"gwt:property\" content=\"locale=ru_RU\">"); fileContentTemplate.AppendLine(" <title>" + name + "</title>"); fileContentTemplate.AppendLine("</head>"); fileContentTemplate.AppendLine("<body>"); if (includeFullInfo) { fileContentTemplate.AppendLine(GetHeader("GENERAL")); fileContentTemplate.AppendLine(GetOneValue("Name", name)); fileContentTemplate.AppendLine(GetOneValue("Description", description)); fileContentTemplate.AppendLine(GetOneValue("IP Address", ipaddres)); fileContentTemplate.AppendLine(GetOneValue("FQDN", fqdn)); } if (ViewModes != null) { if (ViewModes.Count != 0) { bool showAll = false; foreach (var node in ViewModes) { if (Equals(node, UIViewModeEnum.All)) { showAll = true; } } if (showAll) { SystemEnclosure(sc, fileContentTemplate); CPUs(sc, fileContentTemplate); MemoryDevices(sc, fileContentTemplate); VideoControllers(sc, fileContentTemplate); Displays(sc, fileContentTemplate); NetworkAdapters(sc, fileContentTemplate); PhysicalDrives(sc, fileContentTemplate); Partitions(sc, fileContentTemplate); Licenses(sc, fileContentTemplate); Printers(sc, fileContentTemplate); LocalUsers(sc, fileContentTemplate); LocalGroups(sc, fileContentTemplate); } else { foreach (var node in ViewModes) { if (Equals(node, UIViewModeEnum.SystemEnclosure)) { SystemEnclosure(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.CPUs)) { CPUs(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.MemoryDevices)) { MemoryDevices(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.VideoControllers)) { VideoControllers(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.Displays)) { Displays(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.NetworkAdapters)) { NetworkAdapters(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.PhysicalDrives)) { PhysicalDrives(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.Partitions)) { Partitions(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.Licenses)) { Licenses(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.Printers)) { Printers(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.LocalUsers)) { LocalUsers(sc, fileContentTemplate); } else if (Equals(node, UIViewModeEnum.LocalGroups)) { LocalGroups(sc, fileContentTemplate); } } } } else { SystemEnclosure(sc, fileContentTemplate); CPUs(sc, fileContentTemplate); MemoryDevices(sc, fileContentTemplate); VideoControllers(sc, fileContentTemplate); Displays(sc, fileContentTemplate); NetworkAdapters(sc, fileContentTemplate); PhysicalDrives(sc, fileContentTemplate); Partitions(sc, fileContentTemplate); Licenses(sc, fileContentTemplate); Printers(sc, fileContentTemplate); LocalUsers(sc, fileContentTemplate); LocalGroups(sc, fileContentTemplate); } } else { SystemEnclosure(sc, fileContentTemplate); CPUs(sc, fileContentTemplate); MemoryDevices(sc, fileContentTemplate); VideoControllers(sc, fileContentTemplate); Displays(sc, fileContentTemplate); NetworkAdapters(sc, fileContentTemplate); PhysicalDrives(sc, fileContentTemplate); Partitions(sc, fileContentTemplate); Licenses(sc, fileContentTemplate); Printers(sc, fileContentTemplate); LocalUsers(sc, fileContentTemplate); LocalGroups(sc, fileContentTemplate); } fileContentTemplate.AppendLine("</body>"); return(fileContentTemplate.ToString()); }