コード例 #1
0
 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
 }
コード例 #2
0
ファイル: AlertMacro.cs プロジェクト: cdrewery/Umbraco-Public
 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
 }
コード例 #3
0
        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
        }
コード例 #4
0
        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>
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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();
            }
        }
コード例 #7
0
        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();
            }
        }
コード例 #8
0
 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();
 }
コード例 #9
0
        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>
        }
コード例 #10
0
        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>
        }
コード例 #11
0
        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>
        }
コード例 #12
0
        /// <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, "&nbsp;");

                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>
            }
        }
コード例 #13
0
        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>*/
        }
コード例 #14
0
        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>
        }
コード例 #15
0
        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();
            }
        }
コード例 #16
0
        // 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();
            }
        }