public MachineStatusService(DeltaConnection conn, HttpContext e) : base(conn, e) { packagesTable = new HTMLTableGenerator <NetManagerPackage>( new List <string>() { "Name", "Latest Version", "Actions" }, (NetManagerPackage s) => { string name = s.name; string latestVersion = s.latest_version; string actions = GenerateFormBtnHtml("add_version", "Update", new KeyValuePair <string, string>("package_name", s.name)) + " " + GenerateFormBtnHtml("add_instance", "New Instance", new KeyValuePair <string, string>("package_name", s.name), new KeyValuePair <string, string>("count", "1")); return(new List <string>() { name, latestVersion, actions }); }); versionsTable = new HTMLTableGenerator <NetManagerVersion>( new List <string>() { "ID", "Package Name", "Time", "Uses", "Actions" }, (NetManagerVersion s) => { string id = s.id; string packageName = s.package_name; DateTime timeLocal = ConvertUtcToLocal(s.time); string time = timeLocal.ToShortDateString() + " " + timeLocal.ToLongTimeString(); string actions = GenerateFormBtnHtml("delete_version", "Delete", new KeyValuePair <string, string>("version_id", id)); //Count uses int usesCount = 0; foreach (var i in instanceList) { if (i.version_id == s.id) { usesCount++; } } string uses = usesCount == 0 ? "<span style=\"color:red;\">0</span>" : usesCount.ToString(); return(new List <string>() { id, packageName, time, uses, actions }); }); instancesTable = new HTMLTableGenerator <NetManagerInstance>( new List <string>() { "ID", "Package Name", "Version", "Site", "Status", "Actions" }, (NetManagerInstance s) => { string id = s.id.ToString(); string packageName = s.package_name; string versionId = s.version_id; string status = $"<div style=\"height:21px;width:150px;position:relative;\"><div style=\"font-size:13px;text-align:center;color:gray;line-height:21px;\">PINGING...</div><iframe scrolling=\"no\" src=\"ping_instance?instance_id={s.id}\" style=\"border:0;padding:0;margin:0;height:21px;width:150px;position:absolute;top:0;left:0;\"></iframe></div>"; //Check if this is outdated bool isOutdated = false; foreach (var p in packageList) { if (p.name == packageName) { isOutdated = isOutdated || !(p.latest_version == s.version_id); } } if (isOutdated) { versionId += " " + GenerateBubbleHtml("#ffb94f", "Outdated"); } //Generate sites list string sites; if (s.ports.Length == 0) { sites = "<i style=\"color:gray;\">No Ports Allocated</i>"; } else { sites = $"<form method=\"post\" action=\"assign_site\" style=\"margin:0;\"><input type=\"hidden\" value=\"{s.id}\" name=\"instance_id\"><select name=\"site_id\" onchange=\"this.parentElement.submit();\">"; foreach (var si in sitesList) { if (si.id == s.site_id) { sites += $"<option value=\"{si.id}\">{si.site_domain}</option>"; } } sites += $"<option value=\"\"><i>No Assigned Site</i></option>"; foreach (var si in sitesList) { if (si.id != s.site_id) { sites += $"<option value=\"{si.id}\">{si.site_domain}</option>"; } } sites += "</select><noscript><input type=\"submit\" value=\"Update\"></noscript></form>"; } //Generate string actions = GenerateFormBtnHtml("update_instance", "Upgrade", !isOutdated, new KeyValuePair <string, string>("instance_id", id)) + " " + GenerateFormBtnHtml("reboot_instance", "Reboot", new KeyValuePair <string, string>("instance_id", id)) + " " + GenerateFormBtnHtml("destroy_instance", "Remove", new KeyValuePair <string, string>("instance_id", id)) + " " + GenerateFormBtnHtml("instances/" + id, "Manage", new KeyValuePair <string, string>()); return(new List <string>() { id, packageName, versionId, sites, status, actions }); }); sitesTable = new HTMLTableGenerator <NetManagerSite>( new List <string>() { "Domain", "Proxies", "SSL Expires In", "Instances", "Actions" }, (NetManagerSite s) => { //string name = s.name; //string latestVersion = s.latest_version; //string actions = GenerateFormBtnHtml("add_version", "Update", new KeyValuePair<string, string>("package_name", s.name)) + " " + GenerateFormBtnHtml("add_instance", "New Instance", new KeyValuePair<string, string>("package_name", s.name), new KeyValuePair<string, string>("count", "1")); //Count uses int usesCount = 0; foreach (var i in instanceList) { if (i.site_id == s.id) { usesCount++; } } return(new List <string>() { s.site_domain, s.proxies.Length.ToString(), Math.Floor((s.cert_expiry - DateTime.UtcNow).TotalDays) + " days", usesCount == 0 ? "<span style=\"color:red;\">0</span>" : usesCount.ToString(), "" }); }); }
public AdditionalValuesForm(CorrelationCalc calc) { InitializeComponent(); htmlPanel = new TheArtOfDev.HtmlRenderer.WinForms.HtmlPanel(); var table = calc.Table; var gen = new HTMLTableGenerator(); HTMLTableRow row; //Создание шапки row = gen.AddRow(); row.AddCell("Границы и середины интервалов для y", 1, 4); row.AddCell("Vj", 1, 3); row.AddCell("Границы и середины интервалов для x", table.Width, 1); row.AddCell("Nj", 1, 4); row.AddCell("NjVj", 1, 4); row.AddCell("NjVj^2", 1, 4); row = gen.AddRow(); foreach (var x in table.XHeaders) { row.AddCell(range_to_string(x), "#B2DFDB"); } row = gen.AddRow(); //row.AddCell("Ui", table.Width, 1); row = gen.AddRow(); row.AddCell("Ui ->"); foreach (var x in calc.Ui) { row.AddCell(x.ToString("N2")); } //Создание таблицы for (int y = 0; y < table.Height; y++) { row = gen.AddRow(); row.AddCell(range_to_string(table.YHeaders[y]), "#B2DFDB"); row.AddCell(calc.Vj[y].ToString("N2")); //Значения for (int x = 0; x < table.Width; x++) { row.AddCell(table[x, y].ToString("N2"), "#B2DFDB"); } row.AddCell(calc.Nj[y].ToString("N2")); row.AddCell((calc.Nj[y] * calc.Vj[y]).ToString("N2")); row.AddCell((calc.Nj[y] * calc.Vj[y] * calc.Vj[y]).ToString("N2")); } //Нижние строки //Ni row = gen.AddRow(); row.AddCell("Ni", 2, 1); foreach (var x in calc.Ni) { row.AddCell(x.ToString("N2")); } row.AddCell("Сумма: " + calc.N.ToString("N2")); row.AddCell("Сумма: " + calc.NjVj.ToString("N2")); row.AddCell("Сумма: " + calc.NjVj2.ToString("N2")); //NiUi row = gen.AddRow(); row.AddCell("NiUi", 2, 1); for (int i = 0; i < table.Width; i++) { row.AddCell((calc.Ni[i] * calc.Ui[i]).ToString("N2")); } row.AddCell("Сумма: " + calc.NiUi.ToString("N2")); //NiUi2 row = gen.AddRow(); row.AddCell("NiUi^2", 2, 1); for (int i = 0; i < table.Width; i++) { row.AddCell((calc.Ni[i] * calc.Ui[i] * calc.Ui[i]).ToString("N2")); } row.AddCell("Сумма: " + calc.NiUi2.ToString("N2")); /*var str = gen.GetHTML(); * using (var sw = new StreamWriter("D:\\index.html")) * { * sw.WriteLine(str); * }*/ htmlPanel.Text = gen.GetHTML(); htmlPanel.Dock = DockStyle.Fill; Controls.Add(htmlPanel); htmlPanel.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; htmlPanel.Width = this.Width; htmlPanel.Height = this.ClientSize.Height - groupBox1.Height - 10; txtQu.Text = calc.Qu.ToString("N4"); txtQv.Text = calc.Qv.ToString("N4"); txtQuv.Text = calc.Quv.ToString("N4"); }