public static void RenderContact(HtmlWriter writer, ContactModule module, bool showHeader) { writer.RenderBeginTag(HtmlTextWriterTag.Div, "thumbnail contact"); if (showHeader) writer.RenderFullTag(HtmlTextWriterTag.H3, "Kontakt"); writer.AddAttribute(HtmlTextWriterAttribute.Src, module.Image.Url); writer.AddAttribute(HtmlTextWriterAttribute.Alt, module.FullName); writer.RenderImageTag(module.Image.Url, module.FullName, null); writer.RenderBeginTag(HtmlTextWriterTag.Div, "caption"); writer.RenderBeginTag(HtmlTextWriterTag.H5); writer.Write(module.FullName); writer.RenderEndTag(); // h5 writer.RenderBeginTag(HtmlTextWriterTag.P); WriteContactInfo(writer, module.Title); WriteContactInfo(writer, module.Area); if (!string.IsNullOrEmpty(module.Email)) { writer.AddAttribute(HtmlTextWriterAttribute.Title, "Email : " + module.Email); writer.RenderLinkTag("mailto:" + module.Email, "Email : " + module.Email); writer.WriteBreak(); } WriteContactInfo(writer, module.Phone, "Tlf."); WriteContactInfo(writer, module.Mobile, "Mobil"); writer.RenderEndTag(); // p writer.RenderEndTag(); // div.caption writer.RenderEndTag(); // div.thumbnail.contact }
protected override void Render(HtmlTextWriter w) { var writer = new HtmlWriter(w); writer.AddClass("alert"); if (!string.IsNullOrEmpty(this.Type)) writer.AddClass(this.Type); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute("data-dismiss", "alert"); writer.RenderFullTag(HtmlTextWriterTag.Button, "×", "close"); writer.Write(HttpUtility.UrlDecode(Text)); writer.RenderEndTag(); // div.alert }
protected void RenderPageLink(HtmlWriter writer, int? pageLink, string text, string cssClass, bool addSpan) { writer.AddClass(cssClass); writer.RenderBeginTag(HtmlTextWriterTag.Li); if (pageLink.HasValue) { writer.AddAttribute(HtmlTextWriterAttribute.Title, text); writer.AddAttribute("data-page", pageLink.Value.ToString()); writer.RenderBeginLink(Urls.ReplaceUrlParameter(QueryStringKey.PageNumber, pageLink.Value.ToString())); } else writer.RenderBeginLink("#"); if (addSpan) writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(text); if (addSpan) writer.RenderEndTag(); writer.RenderEndTag(); // a or strong writer.RenderEndTag(); // li }
protected override void Build() { var icon = SystemHelper.IsWindows ? "fa fa-windows fa-3x" : "fa fa-linux fa-3x"; HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "row"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-6 col-md-6 col-lg-6"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "well text-center"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H1); HtmlWriter.RenderTag(HtmlTextWriterTag.I, HtmlTextWriterAttribute.Class, icon, null); HtmlWriter.RenderEndTag(); // </h1> HtmlWriter.RenderTag(HtmlTextWriterTag.H3, Environment.OSVersion.ToString()); HtmlWriter.Write("{0} bits operative system<br>", (Environment.Is64BitOperatingSystem ? "64" : "32")); HtmlWriter.Write("Processor count: {0}<br>", Environment.ProcessorCount); HtmlWriter.Write("System directory: {0}", Environment.SystemDirectory); HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-6 col-md-6 col-lg-6"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "well text-center"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H1); HtmlWriter.RenderTag(HtmlTextWriterTag.I, HtmlTextWriterAttribute.Class, "fa fa-user fa-3x", null); HtmlWriter.RenderEndTag(); // </h1> HtmlWriter.RenderTag(HtmlTextWriterTag.H3, Environment.MachineName); HtmlWriter.Write("Domain Name: {0}<br>", Environment.UserDomainName); HtmlWriter.Write("Login: {0}<br>", Environment.UserName); HtmlWriter.Write("Worker: {0}<br>", Environment.UserName); HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> }
public static void RenderResults(HtmlWriter writer, SearchRecord[] records, bool renderUl = true) { var visibleCategorizations = CategorizationFolder.GetVisibleCategorizations(); var newsListUrl = Urls.GetMainNewsListUrl(); if (renderUl) writer.RenderBeginTag(HtmlTextWriterTag.Ul, "news-list"); foreach (var record in records) { var date = record.GetDate("date"); writer.RenderBeginTag(HtmlTextWriterTag.Li, "clearfix"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Href, record.GetString("url")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.RenderFullTag(HtmlTextWriterTag.H3, record.GetString("title")); writer.RenderEndTag(); // a if (date != null) writer.RenderFullTag(HtmlTextWriterTag.Span, "Publiseret " + record.GetDate("date").Value.ToString("dd-MM-yyyy"), "date"); var categorizations = new IdList(record.GetString("categorizations")); if (categorizations.Any()) { RenderCategorizations(writer, categorizations, visibleCategorizations, newsListUrl); } writer.RenderBeginTag(HtmlTextWriterTag.A); var text = record.GetString("summary"); if (text.Length > 150) text = text.Substring(0, 150); writer.RenderFullTag(HtmlTextWriterTag.P, text); writer.RenderEndTag(); // a writer.RenderEndTag(); // div writer.RenderEndTag(); // li.clearfix } if (renderUl) writer.RenderEndTag(); }
protected override void Build() { if (SystemHelper.IsWindows) { Managers.DeviceManager.Update(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "#"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Device ID"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Description"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Manufacturer"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); var i = 0; foreach (var device in Managers.DeviceManager) { i++; HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "index", i.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "deviceid", device.DeviceID); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "description", device.Description); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "manufacturer", device.Manufacturer); HtmlWriter.RenderEndTag(); // </tr> } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> } else { WriteNotSupportedMsg(); } }
private void RenderOutput(HtmlWriter writer) { var provider = new LinqIt.UmbracoCustomFieldTypes.UmbracoTreeModuleProvider(Request.QueryString["itemId"]); var placeholderData = provider.GetPlaceholderData(); var layout = provider.GetLayout(); var cells = layout.GetPlaceholderCells(); foreach (var placeholder in placeholderData.Keys.Where(k => placeholderData[k].Items.Any())) { writer.AddAttribute("ref", placeholder); writer.RenderBeginTag(HtmlTextWriterTag.Div, "cell"); writer.RenderFullTag(HtmlTextWriterTag.H3, placeholder); foreach (var item in placeholderData[placeholder].Items) { var cell = cells.Where(c => string.Compare(c.Key, placeholder, true) == 0).FirstOrDefault(); writer.AddAttribute("ref", item.Id); writer.AddClass("module"); if (item.IsLocal) writer.AddClass("local"); else writer.AddClass("global"); writer.RenderBeginTag(HtmlTextWriterTag.Div); var gridItem = provider.GetItem(item.Id); writer.RenderFullTag(HtmlTextWriterTag.H4, gridItem.Text); var columnSpan = item.ColumnSpan; var options = provider.GetItemColumnOptions(item.Id); if (cell != null && cell.ColumnSpan < columnSpan) { var validOptions = options.Where(o => o <= cell.ColumnSpan); if (validOptions.Any()) columnSpan = validOptions.Max(); else cell = null; } RenderDropDown(writer, cells, cell, options); writer.RenderBeginTag(HtmlTextWriterTag.Em); //if (cell == null) //{ // writer.RenderFullTag(HtmlTextWriterTag.Span, _removedMessage, "alert"); //} //else if (columnSpan < item.ColumnSpan) //{ // writer.RenderFullTag(HtmlTextWriterTag.Span, string.Format(_resizedMessage, columnSpan), "info"); //} writer.RenderEndTag(); writer.RenderEndTag(); } writer.RenderEndTag(); } }
private static void RenderDropDown(HtmlWriter writer, IEnumerable<GridCell> cells, GridCell selectedCell, IEnumerable<int> validOptions) { writer.RenderBeginTag(HtmlTextWriterTag.Select); writer.AddAttribute("value", ""); if (selectedCell == null) writer.AddAttribute("selected","selected"); writer.RenderFullTag(HtmlTextWriterTag.Option, "None"); foreach (var cell in cells.Where(c => c.ColumnSpan >= validOptions.Min())) { writer.AddAttribute(HtmlTextWriterAttribute.Value, cell.Key); if (cell == selectedCell) writer.AddAttribute("selected", "selected"); writer.RenderFullTag(HtmlTextWriterTag.Option, cell.Key); } writer.RenderEndTag(); }
protected override void Build() { Managers.InstalledProgramManager.Update(); var i = 0; HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "#"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Program"); if (!SystemHelper.IsMacOSX) { HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Version"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Publisher"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, SystemHelper.IsWindows ? "Install Date" : "Description"); } HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); foreach (var program in Managers.InstalledProgramManager) { i++; if (MalwareManager.Instance.Contains(program.Name)) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "danger"); } else if (program.Name.Contains("toolbar", StringComparison.OrdinalIgnoreCase)) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "warning"); } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "index", i.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "program", program.Name); if (!SystemHelper.IsMacOSX) { HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "version", program.Version); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "publisher", program.Publisher); if (SystemHelper.IsWindows) { HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "installdate", program.InstallDate); } else { HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "description", program.Description); } } HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> }
protected override void Build() { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "#"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "PID"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Name"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "File"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Up Time"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Threads"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Memory (MB)"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Peak Memory (MB)"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); ProcessManager.ClearProcessInfoCache(); Managers.ProcessManager.Update(); var i = 0; foreach (var process in Managers.ProcessManager) { i++; try { if (string.IsNullOrEmpty(process.ProcessName) && string.IsNullOrEmpty(process.ExecutablePath)) { continue; } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "index", i.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "pid", process.Id.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "name", process.ProcessName); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "file", process.ExecutablePath); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "uptime", process.UpTimeString); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "threads", process.Threads.Count.ToString()); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "memory"); HtmlWriter.AddAttribute("data-order", process.WorkingSet64.ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write((process.WorkingSet64 / 1024.0 / 1024.0).ToString("#.##")); HtmlWriter.RenderEndTag(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "peakmemory"); HtmlWriter.AddAttribute("data-order", process.PeakWorkingSet64.ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write((process.PeakWorkingSet64 / 1024.0 / 1024.0).ToString("#.##")); HtmlWriter.RenderEndTag(); HtmlWriter.RenderEndTag(); // </tr> } catch (Exception) { // ignored } } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> }
protected override void Build() { if (!Managers.HardwareManager.IsSupported) { WriteNotSupportedMsg(); return; } HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Id, "accordion"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel-group"); HtmlWriter.AddAttribute("role", "tablist"); HtmlWriter.AddAttribute("aria-multiselectable", "true"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-default"); HtmlWriter.AddAttribute("role", "tab"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Id, "headingOne"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel-title"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H4); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Href, "#collapseOne"); HtmlWriter.AddAttribute("data-toggle", "collapse"); HtmlWriter.AddAttribute("data-parent", "#accordion"); HtmlWriter.AddAttribute("aria-expanded", "false"); HtmlWriter.AddAttribute("aria-controls", "collapseOne"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.A); HtmlWriter.RenderTag(HtmlTextWriterTag.I, HtmlTextWriterAttribute.Class, "fa fa-file-text-o", string.Empty); HtmlWriter.Write(" Detailed text report"); HtmlWriter.RenderEndTag(); // </a> HtmlWriter.RenderEndTag(); // </h4> HtmlWriter.RenderEndTag(); // </div> HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Id, "collapseOne"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel-collapse collapse"); HtmlWriter.AddAttribute("role", "tabpanel"); HtmlWriter.AddAttribute("aria-labelledby", "headingOne"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.RenderTag(HtmlTextWriterTag.Div, HtmlTextWriterAttribute.Class, "panel-body padding20", Managers.HardwareManager.GetReport().Replace(Environment.NewLine, string.Format("{0}<br>", Environment.NewLine))); HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "row"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); /*var result = "<div class=\"panel-group\" id=\"accordion\" role=\"tablist\" aria-multiselectable=\"true\">" + * "<div class=\"panel panel-default\">" + * "<div class=\"panel-heading\" role=\"tab\" id=\"headingOne\">" + * "<h4 class=\"panel-title\">" + * "<a data-toggle=\"collapse\" data-parent=\"#accordion\" href=\"#collapseOne\" aria-expanded=\"false\" aria-controls=\"collapseOne\"><i class=\"fa fa-file-text-o\"></i> Detailed text report</a>" + * "</h4>" + * "</div>" + * "<div id=\"collapseOne\" class=\"panel-collapse collapse\" role=\"tabpanel\" aria-labelledby=\"headingOne\">" + * "<div class=\"panel-body padding20\">" + * computer.GetReport().Replace(Environment.NewLine, Environment.NewLine + "<br>") + * "</div>" + * "</div>" + * "</div>" + * "</div>" + * "<div class=\"row\">";*/ RenderHardware(Managers.HardwareManager.Hardware); HtmlWriter.RenderEndTag(); // </div> }
/// <summary> /// Gets a formated string from a collection of <see cref="IHardware"/> /// </summary> /// <param name="ihardware"></param> private void RenderHardware(IEnumerable <IHardware> ihardware) { foreach (var hardware in ihardware) { hardware.Update(); if (hardware.HardwareType == HardwareType.HDD) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, string.Format("col-sm-12 col-md-12 col-lg-6 col-xl-4 hardware_{0}", hardware.HardwareType.ToString().ToLower())); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); } else { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-12"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); } HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "well text-center"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); if (HardwareIcon.ContainsKey(hardware.HardwareType)) { if (HardwareIcon.ContainsKey(hardware.HardwareType)) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H1); HtmlWriter.RenderTag(HtmlTextWriterTag.I, HtmlTextWriterAttribute.Class, HardwareIcon[hardware.HardwareType], string.Empty); HtmlWriter.RenderEndTag(); } } HtmlWriter.RenderTag(HtmlTextWriterTag.H2, hardware.HardwareType.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.H3, hardware.Name); HtmlWriter.RenderTag(HtmlTextWriterTag.P, " "); SensorType?lastSensorType = null; HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "row"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); foreach (var sensor in hardware.Sensors) { if (hardware.Sensors.Length > 3 && lastSensorType.HasValue && lastSensorType.Value != sensor.SensorType) { HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderTag(HtmlTextWriterTag.Div, HtmlTextWriterAttribute.Class, "clearfix", string.Empty); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "row"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); } lastSensorType = sensor.SensorType; if (hardware.HardwareType == HardwareType.HDD) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-6"); } else { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-4 col-md-3 col-lg-2"); } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "well"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); if (SensorIcon.ContainsKey(sensor.SensorType)) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H1); HtmlWriter.RenderTag(HtmlTextWriterTag.I, HtmlTextWriterAttribute.Class, SensorIcon[sensor.SensorType], string.Empty); HtmlWriter.RenderEndTag(); } HtmlWriter.Write("{0} {1} = <strong>{2}{3}</strong>", sensor.Name, sensor.Name.Contains(sensor.SensorType.ToString()) ? string.Empty : sensor.SensorType.ToString(), sensor.Value.HasValue ? sensor.Value.Value.ToString("#.##") : "no value", SensorUnit[sensor.SensorType]); // Print a progress bar for some sensor types. if (sensor.Value.HasValue && (sensor.SensorType == SensorType.Temperature || sensor.SensorType == SensorType.Load || sensor.SensorType == SensorType.Control)) { HtmlWriter.RenderTag(HtmlTextWriterTag.P, string.Empty); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "progress"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); string progressbarType; if (sensor.Value >= 80) { progressbarType = "danger"; } else if (sensor.Value >= 65) { progressbarType = "warning"; } else if (sensor.Value >= 50) { progressbarType = "info"; } else { progressbarType = "success"; } HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "progress-bar"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, string.Format("progress-bar-{0}", progressbarType)); HtmlWriter.AddAttribute("role", "progressbar"); HtmlWriter.AddAttribute("aria-valuenow", ((int)sensor.Value).ToString()); HtmlWriter.AddAttribute("aria-valuemin", "0"); HtmlWriter.AddAttribute("aria-valuemax", "100"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Style, string.Format("width:{0}%", (int)sensor.Value)); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, string.Format("{0}{1}", sensor.Value.Value.ToString("#.##"), SensorUnit[sensor.SensorType])); HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> } HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> } RenderHardware(hardware.SubHardware); if (hardware.HardwareType == HardwareType.HDD && SystemHelper.IsWindows && Managers.HardwareManager.DiskManager.Count > 0) { var disk = Managers.HardwareManager.DiskManager[hardware.Name]; if (!ReferenceEquals(disk, null)) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-12 text-left"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); // Disk Info HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h3>Information</h3>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Property"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Value"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); var props = disk.GetType().GetProperties(); foreach (var propertyInfo in props) { if (propertyInfo.Name.Equals("Attributes")) { continue; } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, propertyInfo.Name); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, propertyInfo.GetValue(disk).ToString()); HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> // Disk SMART HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h3>S.M.A.R.T.</h3>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Attribute"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Current"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Worst"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Threshold"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Raw"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, HtmlTextWriterAttribute.Class, "text-center", "Status"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); foreach (var attribute in disk.Attributes) { if (!attribute.Value.HasData) { continue; } if (!attribute.Value.IsOK) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "danger"); } else { if (attribute.Value.Threshold > 0 && !attribute.Value.AttributeName.Contains("time")) { if (attribute.Value.Raw > 0) { if (attribute.Value.Raw >= attribute.Value.Threshold) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "danger"); } else { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "warning"); } } } else { if (attribute.Value.IsCritical && attribute.Value.Raw > 0) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "warning"); } } } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, (attribute.Value.IsCritical ? "<span class=\"text-danger\">*</span> " : String.Empty) + attribute.Value.AttributeName); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Current.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Worst.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Threshold.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Raw.ToString()); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center isok"); HtmlWriter.AddAttribute("data-order", Convert.ToByte(attribute.Value.IsOK).ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(attribute.Value.IsOK ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>"); HtmlWriter.RenderEndTag(); HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> HtmlWriter.RenderTag(HtmlTextWriterTag.P, "<span class=\"text-danger\">*</span> Potential indicators of imminent electromechanical failure."); if (disk.Status.Equals("Pred Fail")) { HtmlWriter.RenderTag(HtmlTextWriterTag.Div, HtmlTextWriterAttribute.Class, "alert alert-danger", "<strong>This drive is failing and/or in bad condition! Consider making a backup of whole disk or your critical data and replace this disk.<br>" + "If the health keeps declining you will not be able to recover the disk at some point.</strong>"); } HtmlWriter.RenderEndTag(); // </div> } } HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> } }
protected override void Build() { var i = 0; foreach (var specialFile in Managers.SpecialFileManager) { i++; HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-success"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H2); HtmlWriter.RenderTag(HtmlTextWriterTag.Div, HtmlTextWriterAttribute.Class, "pull-right", string.Format("<span class=\"badge\" style=\"font-size:34px;\">{0}</span>", i)); HtmlWriter.Write("<i class=\"fa fa-file-o\"></i> {0}", specialFile.Filename); HtmlWriter.RenderEndTag(); // </h2> HtmlWriter.RenderTag(HtmlTextWriterTag.Span, specialFile.FullPath); HtmlWriter.RenderEndTag(); // </div> HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.RenderTag(HtmlTextWriterTag.Pre, specialFile.Content.ToString()); HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> } /*HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); * HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); * * HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); * HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); * * HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "#"); * HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Program"); * HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Version"); * HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Publisher"); * HtmlWriter.RenderTag(HtmlTextWriterTag.Th, SystemHelper.IsWindows ? "Install Date" : "Description"); * * HtmlWriter.RenderEndTag(); // </tr> * HtmlWriter.RenderEndTag(); // </thead> * * HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); * * foreach (var program in programManager) * { * i++; * if (MalwareManager.Instance.Contains(program.Name)) * { * HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "danger"); * } * else if (program.Name.Contains("toolbar", StringComparison.OrdinalIgnoreCase)) * { * HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "warning"); * } * * HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); * * HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "index", i.ToString()); * HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "program", program.Name); * HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "version", program.Version); * HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "publisher", program.Publisher); * * if(SystemHelper.IsWindows) * HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "installdate", program.InstallDate); * else * HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "description", program.Description); * * HtmlWriter.RenderEndTag(); * * } * * HtmlWriter.RenderEndTag(); // </tbody> * HtmlWriter.RenderEndTag(); // </table>*/ }
protected override void Build() { var networks = NetworkInterface.GetAllNetworkInterfaces().ToList().OrderBy(@interface => @interface.OperationalStatus); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h2>Network Interfaces</h2>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "#"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Device ID"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Name / Description"); //HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Description"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Properties"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Statistics"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, HtmlTextWriterAttribute.Class, "text-center", "Status"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); var i = 0; foreach (var adapter in networks) { var properties = adapter.GetIPProperties(); var statistics = adapter.GetIPv4Statistics(); i++; HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "index", i.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "deviceid", string.Format("{0}<br>" + "MAC Address: {1}<br>Type: {2}", adapter.Id, string.Join(":", adapter.GetPhysicalAddress().GetAddressBytes().Select(b => b.ToString("X2"))), adapter.NetworkInterfaceType)); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "name", string.Format("<strong>Name:</strong> {0}<br><strong>Description:</strong> {1}", adapter.Name, adapter.Description)); //HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "description", adapter.Description); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "properties"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, "Unicast Addresses:"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Ol); foreach (var address in properties.UnicastAddresses) { HtmlWriter.RenderTag(HtmlTextWriterTag.Li, address.Address.ToString()); } HtmlWriter.RenderEndTag(); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, "DHCP Server Addresses:"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Ol); foreach (var address in properties.DhcpServerAddresses) { HtmlWriter.RenderTag(HtmlTextWriterTag.Li, address.ToString()); } HtmlWriter.RenderEndTag(); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, "Gateway Addresses:"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Ol); foreach (var address in properties.GatewayAddresses) { HtmlWriter.RenderTag(HtmlTextWriterTag.Li, address.Address.ToString()); } HtmlWriter.RenderEndTag(); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, "DNS Addresses:"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Ol); foreach (var address in properties.DnsAddresses) { HtmlWriter.RenderTag(HtmlTextWriterTag.Li, address.ToString()); } HtmlWriter.RenderEndTag(); HtmlWriter.RenderEndTag(); // </td> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, "Megabytes Received:"); HtmlWriter.Write(" {0} MB<br>", (statistics.BytesReceived / 1024 / 1024)); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, "Megabytes Sent:"); HtmlWriter.Write(" {0} MB<br>", (statistics.BytesSent / 1024 / 1024)); HtmlWriter.RenderEndTag(); // </td> HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "status text-center"); switch (adapter.OperationalStatus) { case OperationalStatus.Up: HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-success"); break; case OperationalStatus.Down: HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-danger"); break; default: HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-warning"); break; } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(adapter.OperationalStatus); HtmlWriter.RenderEndTag(); // </td> HtmlWriter.RenderEndTag(); // </tr> } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties(); /* * Global Statistics */ try { var ipv4GlobalStatistics = ipGlobalProperties.GetIPv4GlobalStatistics(); var ipv6GlobalStatistics = ipGlobalProperties.GetIPv6GlobalStatistics(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h2>Global Statistics</h2>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Statistic Name"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "IPv4 Value"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "IPv6 Value"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); foreach (var prop in ipv4GlobalStatistics.GetType().GetProperties()) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "name", prop.Name.SpaceCamelCase()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "ipv4value", prop.GetValue(ipv4GlobalStatistics).ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "ipv6value", prop.GetValue(ipv6GlobalStatistics).ToString()); HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> } catch { // ignored } //HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "row"); //HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); //HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-6"); //HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); /* * ICMP Statistics */ try { var icmpv4Statistics = ipGlobalProperties.GetIcmpV4Statistics(); var icmpv4StatisticsProps = ipGlobalProperties.GetIcmpV4Statistics().GetType().GetProperties(); var icmpv6Statistics = ipGlobalProperties.GetIcmpV6Statistics(); var icmpv6StatisticsProps = ipGlobalProperties.GetIcmpV6Statistics().GetType().GetProperties(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h2>ICMP Statistics</h2>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "ICMPv4 Statistic Name"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "ICMPv4 Value"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "ICMPv6 Statistic Name"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "ICMPv6 Value"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); for (var x = 0; x < Math.Max(icmpv4StatisticsProps.Length, icmpv6StatisticsProps.Length); x++) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); if (x < icmpv4StatisticsProps.Length) { HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv4name", icmpv4StatisticsProps[x].Name.SpaceCamelCase()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv4value", icmpv4StatisticsProps[x].GetValue(icmpv4Statistics).ToString()); } else { HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv4name", string.Empty); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv4value", string.Empty); } if (x < icmpv6StatisticsProps.Length) { HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv6name", icmpv6StatisticsProps[x].Name.SpaceCamelCase()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv6value", icmpv6StatisticsProps[x].GetValue(icmpv6Statistics).ToString()); } else { HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv6name", string.Empty); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "icmpv6value", string.Empty); } HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> } catch { // ignored } try { /* * TCP Statistics */ var ipv4Statistics = ipGlobalProperties.GetTcpIPv4Statistics(); var ipv6Statistics = ipGlobalProperties.GetTcpIPv6Statistics(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h2>TCP Statistics</h2>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Statistic Name"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "TCPv4 Value"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "TCPv6 Value"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); foreach (var prop in ipv4Statistics.GetType().GetProperties()) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "name", prop.Name.SpaceCamelCase()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "tcp4value", prop.GetValue(ipv4Statistics).ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "tcpv6value", prop.GetValue(ipv6Statistics).ToString()); HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> } catch { // ignored } try { /* * UDP Statistics */ var udp4Statistics = ipGlobalProperties.GetUdpIPv4Statistics(); var udp6Statistics = ipGlobalProperties.GetUdpIPv6Statistics(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h2>UDP Statistics</h2>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Statistic Name"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "UDPv4 Value"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "UDPv6 Value"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); foreach (var prop in udp4Statistics.GetType().GetProperties()) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "name", prop.Name.SpaceCamelCase()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "udp4value", prop.GetValue(udp4Statistics).ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "udpv6value", prop.GetValue(udp6Statistics).ToString()); HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> } catch { // ignored } HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h2>TCP and UDP Connections</h2>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Protocol"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Local Address"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Local Port"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Remote Address"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Remote Port"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "State"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); try { /** * Active TCP Connections */ var activeTcpConnections = ipGlobalProperties.GetActiveTcpConnections(); foreach (var con in activeTcpConnections) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "protocol", con.LocalEndPoint.Address.ToString().Contains("::") ? "TCPv6" : "TCP"); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "localip", con.LocalEndPoint.Address.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "localport", con.LocalEndPoint.Port.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "remoteip", con.RemoteEndPoint.Address.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "remoteport", con.RemoteEndPoint.Port.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "State", con.State.ToString()); HtmlWriter.RenderEndTag(); } } catch { // ignored } try { /** * Active TCP Listeners */ var activeTcpListeners = ipGlobalProperties.GetActiveTcpListeners(); foreach (var con in activeTcpListeners) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "protocol", con.Address.ToString().Contains(":") ? "TCPv6" : "TCP"); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "localip", con.Address.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "localport", con.Port.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "remoteip", con.Address.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "remoteport", "0"); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "State", "Listening"); HtmlWriter.RenderEndTag(); } } catch { // ignored } try { /** * Active UDP Listeners */ var activeUdpListeners = ipGlobalProperties.GetActiveUdpListeners(); foreach (var con in activeUdpListeners) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "protocol", con.Address.ToString().Contains(":") ? "UDPv6" : "UDP"); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "localip", con.Address.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "localport", con.Port.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "remoteip", "*"); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "remoteport", "*"); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "State", "Listening"); HtmlWriter.RenderEndTag(); } } catch { // ignored } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> }
protected override void Build() { if (SystemHelper.IsWindows) { var services = ServiceController.GetServices().OrderBy(controller => - (int)controller.Status).ThenBy(controller => controller.DisplayName); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "#"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Display Name"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Service Name"); //HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Service Type"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Width, "180"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Th); HtmlWriter.Write("Can Pause/Continue"); HtmlWriter.RenderEndTag(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Width, "180"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Th); HtmlWriter.Write("Can Shutdown"); HtmlWriter.RenderEndTag(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Width, "180"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Th); HtmlWriter.Write("Can Stop"); HtmlWriter.RenderEndTag(); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Status"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); var i = 0; // try to find service name foreach (var service in services) { i++; HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "index", i.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "displayname", service.DisplayName); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "displayname", service.ServiceName); //HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "servicetype", service.ServiceType.ToString()); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center canpause"); HtmlWriter.AddAttribute("data-order" + "", Convert.ToByte(service.CanPauseAndContinue).ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(service.CanPauseAndContinue ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>"); HtmlWriter.RenderEndTag(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center canshutdown"); HtmlWriter.AddAttribute("data-order", Convert.ToByte(service.CanShutdown).ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(service.CanShutdown ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>"); HtmlWriter.RenderEndTag(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center canstop"); HtmlWriter.AddAttribute("data-order", Convert.ToByte(service.CanStop).ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(service.CanStop ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>"); HtmlWriter.RenderEndTag(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "status"); /*result += "<tr>" + * "<td class=\"index\">" + i + "</td>" + * "<td class=\"displayname\">" + service.DisplayName + "</td>" + * "<td class=\"servicename\">" + service.ServiceName + "</td>" + * "<td>" + service.ServiceType + "</td>" + * //"<td>" + service.MachineName + "</td>" + * "<td class=\"text-center canpause\" data-order=\"" + Convert.ToByte(service.CanPauseAndContinue) + "\">" + (service.CanPauseAndContinue ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>") + "</td>" + * "<td class=\"text-center canshutdown\" data-order=\"" + Convert.ToByte(service.CanShutdown) + "\">" + (service.CanShutdown ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>") + "</td>" + * "<td class=\"text-center canstop\" data-order=\"" + Convert.ToByte(service.CanStop) + "\">" + (service.CanStop ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>") + "</td>" + * "<td class=\"";*/ switch (service.Status) { case ServiceControllerStatus.Paused: HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-warning"); break; case ServiceControllerStatus.StartPending: HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-primary"); break; case ServiceControllerStatus.Running: HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-success"); break; case ServiceControllerStatus.Stopped: HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-danger"); break; } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(service.Status); HtmlWriter.RenderEndTag(); HtmlWriter.RenderEndTag(); // </tr> //result += " status\">" + service.Status + "</td>" + // "</tr>"; } //result += "</tbody></table>"; HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> } else { WriteNotSupportedMsg(); } }
// OLD BUILD /*protected override void Build() * { * var result = "<table data-sortable class=\"table table-striped table-bordered table-responsive table-hover sortable-theme-bootstrap\">" + * "<thead>" + * "<tr>" + * "<th>#</th>" + * "<th>Key</th>" + * "<th>Program</th>" + * "<th>File</th>" + * "</tr>" + * "</thead>" + * "<tbody>"; * var i = 0; * var autoruns = Autorun.GetAutoruns(); * foreach (var autorun in autoruns) * { * i++; * result += "<tr>" + * "<td class=\"index\">" + i + "</td>" + * "<td class=\"key\">" + autorun.Key + "</td>" + * "<td class=\"program\">" + autorun.Program + "</td>" + * "<td class=\"file\">" + autorun.Path + "</td>" + * "</tr>"; * } * * * result += "</tbody></table>"; * Html = result; * }*/ protected override void Build() { if (SystemHelper.IsWindows) { var icons = new Dictionary <string, string> { { "Logon", "fa fa-sign-in" }, { "Explorer", "fa fa-folder" }, { "Internet Explorer", "fa fa-globe" }, { "Tasks", "fa fa-clock-o" }, { "Services", "fa fa-cogs" }, { "Drivers", "fa fa-desktop" }, { "Codecs", "fa fa-play-circle" }, { "Boot Execute", "" }, { "Hijacks", "" }, { "Known DLLs", "fa fa-file-o" }, { "Winlogon", "" }, { "Print Monitors", "fa fa-print" }, { "LSA Providers", "fa fa-shield" }, { "Network Providers", "fa fa-wifi" }, { "WDM", "" }, { "WMI", "" }, { "Sidebar Gadgets", "" }, }; Managers.AutorunManager.Update(); var autorunsDict = Managers.AutorunManager.GetAsDictionary(); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "nav nav-tabs"); HtmlWriter.AddAttribute("role", "tablist"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Ul); //result = "<ul class=\"nav nav-tabs\" role=\"tablist\">"; foreach (var autorunDict in autorunsDict) { if (autorunDict.Key.Equals("Logon")) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "active"); } HtmlWriter.AddAttribute("role", "presentation"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Li); var id = autorunDict.Key.Replace(" ", string.Empty); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Href, string.Format("#autorun_{0}", id)); HtmlWriter.AddAttribute("aria-controls", id); HtmlWriter.AddAttribute("role", "tab"); HtmlWriter.AddAttribute("data-toggle", "tab"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.A); if (icons.ContainsKey(autorunDict.Key)) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, icons[autorunDict.Key]); } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.I); HtmlWriter.RenderEndTag(); // </i> HtmlWriter.Write(" {0} ({1})", autorunDict.Key, autorunDict.Value.Count); HtmlWriter.RenderEndTag(); // </a> HtmlWriter.RenderEndTag(); // </li> } HtmlWriter.RenderEndTag(); // </ul> HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "tab-content"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); foreach (var autorunDict in autorunsDict) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Id, string.Format("autorun_{0}", autorunDict.Key.Replace(" ", string.Empty))); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "tab-pane"); if (autorunDict.Key.Equals("Logon")) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "active"); } HtmlWriter.AddAttribute("role", "tabpanel"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); if (autorunDict.Value.Count == 0) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.P); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Strong); HtmlWriter.Write("No autorun entries under this category."); HtmlWriter.RenderEndTag(); // </strong> HtmlWriter.RenderEndTag(); // </p> continue; } HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "#"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, HtmlTextWriterAttribute.Width, "100", "Enabled"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Entry"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Description"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Publisher"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Image Path"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); var i = 0; foreach (var autorunEntry in autorunDict.Value.OrderBy(item => !item.Enabled).ThenBy(item => item.Entry)) { i++; if (!autorunEntry.IsValidFile) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "warning"); } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "index", i.ToString()); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center enabled"); HtmlWriter.AddAttribute("data-order", Convert.ToByte(autorunEntry.Enabled).ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(autorunEntry.Enabled ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>"); HtmlWriter.RenderEndTag(); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "entry", autorunEntry.Entry); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "description", autorunEntry.Description); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "publisher", autorunEntry.Publisher); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, HtmlTextWriterAttribute.Class, "imagepath", autorunEntry.ImagePath); HtmlWriter.RenderEndTag(); // </tr> } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> HtmlWriter.RenderEndTag(); // </div> } HtmlWriter.RenderEndTag(); // </div> } else { WriteNotSupportedMsg(); } }