private void PrintCompany(CompanyAdverisment adv, int companyNum) { var tableHeader = GetHeader(); var rows = GetRows(adv); var result = string.Format("<html>" + "<body>" + "<head>" + "<style>" + "table {{ border-collapse:collapse; width:800px; margin: auto; }}" + "TD, TH {{border:1px solid black; padding: 15px;}}" + ".bold {{ font-weight: bold; }}" + ".group {{ background-color: #93B4BF; }}" + ".green {{ background-color: #71ba77; }}" + ".odd {{ background-color: #e5e5e5; }}" + "</style>" + "</head>" + "<table>" + "{0}{1}" + "</table></body>" + "</html>", tableHeader, rows); var dirPath = Path.Combine(_reportDir, "Companies"); var path = Path.Combine(dirPath, string.Format("{0}-{1}.html", companyNum, adv.CompanyName)); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } File.WriteAllText(path, result); }
private string GetRows(CompanyAdverisment adv) { var sb = new StringBuilder(); for (int i = 1; i <= _yaPages.Count; i++) { sb.AppendLine(GetRow(_yaPages[i - 1], adv, i)); } return(sb.ToString()); }
private void PrintCompany(CompanyAdverisment adv, int companyNum) { var rows = GetRows(adv); var dirPath = Path.Combine(_reportDir, "Companies"); var path = Path.Combine(dirPath, string.Format("{0}-{1}.html", companyNum, adv.CompanyName)); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } var result = _htmlRootTemplate.Replace("{Rows}", rows); File.WriteAllText(path, result); }
private string GetRows(CompanyAdverisment adv) { var sb = new StringBuilder(); // страницы на которых (не)присутствуют объявление компании var yaPagesWithAdvertisment = _yaPages.Where(p => adv.Advertisments.ContainsKey(p.Query)).ToList(); var yaPagesWithOutAdvertisment = _yaPages.Where(p => !adv.Advertisments.ContainsKey(p.Query)).ToList(); // в листе сперва идут элементы с объявлениями. Потом - пустые var unionYaList = yaPagesWithAdvertisment.Concat(yaPagesWithOutAdvertisment).ToList(); for (int i = 1; i <= unionYaList.Count; i++) { sb.AppendLine(GetRow(unionYaList[i - 1], adv, i)); } return(sb.ToString()); }
private string GetRow(YandexPage yaPage, CompanyAdverisment company, int rowNum) { var result = _htmlRowTemplate.ToString(); ReplaceMarker(ref result, "RowNum", rowNum.ToString()); ReplaceMarker(ref result, "QueryText", yaPage.Query); ReplaceMarker(ref result, "Region", _region != null ? _region.Region : ""); ReplaceMarker(ref result, "Frequency", yaPage.Frequency); ReplaceMarker(ref result, "CompanyName", company.CompanyName); var adv = company.Advertisments.ContainsKey(yaPage.Query) ? company.Advertisments[yaPage.Query] : null; if (adv != null) { ReplaceMarker(ref result, "TitleLink", adv.TitleLink); ReplaceMarker(ref result, "TitleLinkLength", adv.TitleLinkWithoutCompanyUrl.Length.ToString()); ReplaceMarker(ref result, "TextAdvertisment", adv.TextAdvertisment); ReplaceMarker(ref result, "TextAdvertismentLength", adv.TextAdvertisment.Length.ToString()); for (int i = 0; i < 4; i++) { var isLinkExists = adv.FastLinks.Count > i; var linknum = i + 1; ReplaceMarker(ref result, "FastLink" + linknum, isLinkExists ? adv.FastLinks[i] : ""); ReplaceMarker(ref result, "FastLinkLength" + linknum, isLinkExists ? adv.FastLinks[i].Length.ToString() : ""); } ReplaceMarker(ref result, "FastLinkTotal", adv.FastLinks.Sum(_ => _.Length).ToString()); var graySpecifications = string.Join(" | ", adv.GraySpecifications.ToArray()); var graySpecificationsLengths = string.Join(" | ", adv.GraySpecifications.Select(s => s.Length).ToArray()); var graySpecificationsTotal = adv.GraySpecifications.Sum(_ => _.Length); ReplaceMarker(ref result, "GraySpecifications", graySpecifications); ReplaceMarker(ref result, "GraySpecificationsLengths", graySpecificationsLengths); ReplaceMarker(ref result, "GraySpecificationsTotal", graySpecificationsTotal.ToString()); ReplaceMarker(ref result, "YandexBuisenessCard", adv.YandexBuisenessCard ? "Да" : "Нет"); ReplaceMarker(ref result, "GreenUrl", adv.GreenUrl ? "Да(" + adv.TitleUrl + ")" : "Нет"); ReplaceMarker(ref result, "IsUtm", adv.IsUtm); ReplaceMarker(ref result, "YandexMarket", adv.YandexMarket); } else { ReplaceMarker(ref result, "TitleLink", ""); ReplaceMarker(ref result, "TitleLinkLength", ""); ReplaceMarker(ref result, "TextAdvertisment", ""); ReplaceMarker(ref result, "TextAdvertismentLength", ""); for (int i = 0; i < 4; i++) { var linknum = i + 1; ReplaceMarker(ref result, "FastLink" + linknum, ""); ReplaceMarker(ref result, "FastLinkLength" + linknum, ""); } ReplaceMarker(ref result, "FastLinkTotal", ""); ReplaceMarker(ref result, "GraySpecifications", ""); ReplaceMarker(ref result, "GraySpecificationsLengths", ""); ReplaceMarker(ref result, "GraySpecificationsTotal", ""); ReplaceMarker(ref result, "YandexBuisenessCard", ""); ReplaceMarker(ref result, "GreenUrl", ""); ReplaceMarker(ref result, "IsUtm", ""); ReplaceMarker(ref result, "YandexMarket", ""); } return(result); }
private string GetRow(YandexPage yaPage, CompanyAdverisment company, int rowNum) { var sb = new StringBuilder(); sb.AppendLine("<tr class='green'>"); sb.AppendFormat("<td>{0}</td>", rowNum); sb.AppendFormat("<td>{0}</td>", yaPage.Query); sb.AppendFormat("<td>{0}</td>", ""); sb.AppendFormat("<td>{0}</td>", yaPage.Frequency); sb.AppendFormat("<td>{0}</td>", company.CompanyName); sb.AppendLine("</tr>"); //colspan="3"> var adv = company.Advertisments.ContainsKey(yaPage.Query) ? company.Advertisments[yaPage.Query] : null; if (adv != null) { sb.AppendFormat("<tr><td colspan='5' class='bold'>Объявления</td></tr>"); sb.AppendFormat("<tr><td colspan='4'>{0}</td><td colspan='1'>{1}</td></tr>", adv.TitleLink, adv.TitleLink.Length); sb.AppendFormat("<tr><td colspan='4'>{0}</td><td colspan='1'>{1}</td></tr>", adv.TextAdvertisment, adv.TextAdvertisment.Length); sb.AppendFormat("<tr><td colspan='5' class='bold'>Быстрые ссылки. С1(30). Всего(66)</td></tr>"); if (adv.FastLinks.Count == 0) { sb.AppendFormat("<tr><td colspan='5'>Быстрых ссылок нет</td></tr>"); } else { foreach (var fastLink in adv.FastLinks) { sb.AppendFormat("<tr><td colspan='4'>{0}</td><td colspan='1'>{1}</td></tr>", fastLink, fastLink.Length); } sb.AppendFormat("<tr><td colspan='4'>Всего(66)</td><td colspan='1'>{0}</td></tr>", adv.FastLinks.Sum(_ => _.Length)); } sb.AppendFormat("<tr><td colspan='5' class='bold'>Уточнения. У1(25). Всего(66)</td></tr>"); if (adv.GraySpecifications.Count == 0) { sb.AppendFormat("<tr><td colspan='5'>уточнений нет</td></tr>"); } else { foreach (var spec in adv.GraySpecifications) { sb.AppendFormat("<tr><td colspan='4'>{0}</td><td colspan='1'>{1}</td></tr>", spec, spec.Length); } sb.AppendFormat("<tr><td colspan='4'>Всего(66)</td><td colspan='1'>{0}</td></tr>", adv.GraySpecifications.Sum(_ => _.Length)); } sb.AppendFormat("<tr><td colspan='4'>Наличие Яндекс визитки</td><td colspan='1'>{0}</td></tr>", adv.YandexBuisenessCard ? "Да" : "Нет"); sb.AppendFormat("<tr><td colspan='4'>Наличие отображаемой ссылки</td><td colspan='1'>{0}</td></tr>", adv.GreenUrl ? "Да(" + adv.TitleUrl + ")" : "Нет"); sb.AppendFormat("<tr><td colspan='4'>Наличие отображаемой ссылки</td><td colspan='1'>{0}</td></tr>", adv.GreenUrl ? "Да(" + adv.TitleUrl + ")" : "Нет"); sb.AppendFormat("<tr><td colspan='4'>Наличие yclid и utm</td><td colspan='1'>{0}</td></tr>", adv.IsUtm); sb.AppendFormat("<tr><td colspan='4'>YandexMarket</td><td colspan='1'>{0}</td></tr>", adv.YandexMarket); } else { sb.AppendFormat("<tr><td colspan='5' class='bold'>Предложений нет</td></tr>"); } return(sb.ToString()); }