private HtmlTable CreateBioTable() { var htmlTable = new HtmlTable { CellSpacing = 0, CellPadding = 0, Border = 0 }.AddCssClasses( "bioTable"); // Age // var tr = new HtmlTableRow().AddTo(htmlTable, "trPoliticianInfoContact trPoliticianInfoContactAge"); var td = new HtmlTableCell().AddTo(tr, "tdPoliticianInfoContactHeading"); new HtmlSpan { InnerHtml = "Age:" }.AddTo(td); new HtmlTableCell { InnerHtml = _PoliticianInfo.Age() }.AddTo(tr, "tdPoliticianInfoContactDetail"); // Party // tr = new HtmlTableRow().AddTo(htmlTable, "trPoliticianInfoContact"); td = new HtmlTableCell().AddTo(tr, "tdPoliticianInfoContactHeading"); new HtmlSpan { InnerHtml = "Party:" }.AddTo(td); td = new HtmlTableCell().AddTo(tr, "tdPoliticianInfoContactDetail"); CreatePartyAnchor() .AddTo(td); // Phone // tr = new HtmlTableRow().AddTo(htmlTable, "trPoliticianInfoContact"); td = new HtmlTableCell().AddTo(tr, "tdPoliticianInfoContactHeading"); new HtmlSpan { InnerHtml = "Phone:" }.AddTo(td); var phone = _PoliticianInfo.PublicPhone(); new HtmlTableCell { InnerHtml = string.IsNullOrWhiteSpace(phone) ? "n/a" : phone }.AddTo(tr, "tdPoliticianInfoContactDetail"); // Address // tr = new HtmlTableRow().AddTo(htmlTable, "trPoliticianInfoContact"); td = new HtmlTableCell().AddTo(tr, "tdPoliticianInfoContactHeading"); new HtmlSpan { InnerHtml = "Address:" }.AddTo(td); var address = _PoliticianInfo.PublicAddress(); if (!string.IsNullOrWhiteSpace(address)) { address += "<br />"; } address += _PoliticianInfo.PublicCityStateZip(); new HtmlTableCell { InnerHtml = string.IsNullOrWhiteSpace(address) ? "n/a" : address }.AddTo( tr, "tdPoliticianInfoContactDetail"); // Social media // tr = new HtmlTableRow().AddTo(htmlTable, "trPoliticianInfoContact"); td = new HtmlTableCell().AddTo(tr, "tdPoliticianInfoContactHeading"); new HtmlSpan { InnerHtml = " " }.AddTo(td); var webUrl = _PoliticianInfo.PublicWebAddress(); td = new HtmlTableCell().AddTo(tr, "tdPoliticianInfoContactDetail socialMedia"); new HtmlBreak(2).AddTo(td); if (!string.IsNullOrWhiteSpace(webUrl)) { var span = new HtmlSpan().AddTo(td, "TWebsite"); var title = Politicians.FormatName(_PoliticianInfo) + "'s Website"; new HtmlAnchor { HRef = VotePage.NormalizeUrl(webUrl), Title = title, Target = "view", InnerHtml = "Website" }.AddTo(span); new HtmlBreak(2).AddTo(td); } SocialMedia.GetAnchors(_PoliticianInfo) .AddTo(td); return(htmlTable); }
protected void FormatPoliticianRow(DataRow row) { var politicianKey = row.PoliticianKey(); var tr = new HtmlTableRow().AddTo(CurrentHtmlTable, "trReportDetail"); CreatePoliticianImageTag(politicianKey, ImageSize100).AddTo( new HtmlTableCell().AddTo(tr, "tdReportDetailLargeBold")); // Information We Have //var infoLines = new List<string>(); var tdInfo = new HtmlTableCell().AddTo(tr, "tdReportDetailSmall"); // Age, Phone, Address, Social Media var politicianAge = row.Age(); if (IsNullOrWhiteSpace(politicianAge)) { AddItem(tdInfo, "No DOB to compute age", Options.Strong | Options.Em); new HtmlBreak().AddTo(tdInfo); } else { AddItem(tdInfo, "Age " + politicianAge); } new HtmlBreak().AddTo(tdInfo); var politicianPhone = row.PublicPhone(); if (IsNullOrWhiteSpace(politicianPhone)) { AddItem(tdInfo, "No Phone", Options.Strong); } else { AddItem(tdInfo, politicianPhone.NormalizePhoneNumber(), Options.NoBreak); } new HtmlBreak().AddTo(tdInfo); var politicianAddress = row.PublicAddress(); if (IsNullOrWhiteSpace(politicianAddress)) { AddItem(tdInfo, "No Address", Options.Strong); } else { AddItem(tdInfo, politicianAddress); new HtmlBreak().AddTo(tdInfo); AddItem(tdInfo, row.PublicCityStateZip()); } var socialMediaAnchors = SocialMedia.GetAnchors(row, out var socialMediaCount); new HtmlBreak(2).AddTo(tdInfo); if (socialMediaCount == 0) { AddItem(tdInfo, "No social media links or email address", Options.Strong | Options.Em); new HtmlBreak().AddTo(tdInfo); } else { socialMediaAnchors.AddTo(tdInfo); } // Web address new HtmlBreak().AddTo(tdInfo); var webAddress = row.PublicWebAddress(); if (IsNullOrWhiteSpace(webAddress)) { AddItem(tdInfo, "No web address", Options.Strong | Options.Em); } else { new HtmlAnchor { HRef = VotePage.NormalizeUrl(webAddress), Target = "website", InnerHtml = "Have web address" } }.AddTo(tdInfo);
private HtmlControl ReportCandidate(DataRow candidate) { var info = new HtmlDiv().AddCssClasses("info"); var name = new HtmlP().AddTo(info, "name"); var isPrimary = Elections.IsPrimaryElection(candidate.ElectionKey()); var isNonPartisan = Elections.GetNationalPartyCode(candidate.ElectionKey()) == "X"; FormatCandidate(candidate, true, (!isPrimary || isNonPartisan) && !candidate.IsRunningMate()) .AddTo(name); if (candidate.IsWinner() && !candidate.IsRunningMate()) { info.AddCssClasses("winner"); new HtmlDiv() .Attribute("title", "Winner") .AddTo(info, "winner-icon"); } new HtmlImage { Src = VotePage.GetPoliticianImageUrl(candidate.PoliticianKey(), 75) }.AddTo( info, "rounded-border headshot"); var rightSide = new HtmlDiv().AddTo(info, "right-side"); FormatCandidatePhone(candidate) .AddTo(rightSide); FormatCandidateWebsite(candidate) .AddTo(rightSide); SocialMedia.GetAnchors(candidate) .AddCssClasses("social") .AddTo(rightSide); var address = candidate.PublicAddress(); var cityStateZip = candidate.PublicCityStateZip(); if (!string.IsNullOrWhiteSpace(address) && !string.IsNullOrWhiteSpace(cityStateZip)) { var addressTag = new HtmlDiv().AddTo(rightSide, "address"); new HtmlP { InnerText = address }.AddTo(addressTag); new HtmlP { InnerText = cityStateZip }.AddTo(addressTag); } var age = candidate.Age(); if (!string.IsNullOrWhiteSpace(age)) { var ageTag = new HtmlDiv().AddTo(rightSide, "age"); new HtmlSpan { InnerText = "Age: " }.AddTo(ageTag); new LiteralControl(age).AddTo(ageTag); } ClearBoth() .AddTo(info); return(info); }