Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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());
        }