/// <summary> /// Determs if the summary text/html is valid. A valid summary is any text containing atleast one letter. /// </summary> /// <param name="summary"></param> /// <returns></returns> public static bool IsValidSummaryForDocumentListVisualization(String summary) { String trimmedSummary = (summary == null ? String.Empty : summary).Trim(); String taglessSummary = ApisStringHelper.StripTags(trimmedSummary); bool isValidSummary = taglessSummary != null; isValidSummary &= !String.IsNullOrEmpty(taglessSummary.Trim()); isValidSummary &= taglessSummary.Any(Char.IsLetter); return(isValidSummary); }
private string DocLinks2Html(IReadOnlyCollection <LinksToHtmlModel> linksToHtmls, string title, String subTitle, int limit, string baseUrl, bool addHtmlHeader) { var sb = new StringBuilder(); if (addHtmlHeader) { var tagFreeTitle = ApisStringHelper.StripTags(title.Replace("<br/>", " ")); sb.Append("<html><head><title>" + tagFreeTitle + "</title>"); sb.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"); sb.Append("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + baseUrl + "/Content/Styles/docapi.css\"></link>"); sb.Append("</head><body>"); } var eurocasesLogoUrl = "http://eurocases.eu"; var apisLogoUrl = "http://apis.bg"; var headerContent = $@" <table> <tr> <td width='20%'> <div id='DivLogo'><a target='_blank' href='{eurocasesLogoUrl}'><img src='{baseUrl + "/Content/Images/logo.svg'"} /></a></div> <div id='DivLogoApis'><a target='_blank' href='{apisLogoUrl}'><img src='{baseUrl + "/Content/Images/logo_apis.jpg'"} /></a></div> </td> </tr> <tr><td></td></tr> <tr><td><div id='DivHeader'><p>{title}</p></div></td></tr> <tr><td><div id='DivHeader'><p>{subTitle}</p></div></td></tr> </table> "; sb.Append($"<div id='DivTopTop'></div>"); sb.Append(headerContent); //sb.Append("<div id=\"DivTopTop\"></div>"); //sb.Append("<div id=\"DivLogo\"><img src=\"" + baseUrl + "/Content/Images/logo.svg\" alt=\"\"/></div>"); //sb.Append("<div> </div>"); // sb.Append("<div id=\"DivHeader\"><p>" + title + "</p></div>"); sb.Append("<div id=\"Content\">"); var hasTwoTables = linksToHtmls.HasAtleastItems(2); foreach (var linksToHtml in linksToHtmls) { var links = linksToHtml.Links; var totalCount = linksToHtml.TotalCount; var allLinksUrl = linksToHtml.AllLinksUrl; // var limit = linksToHtml.Limit; var sourceName = linksToHtml.SourceName; var classToAppend = "DivSingleContent"; if (hasTwoTables) { classToAppend = "DivMultiContent"; } sb.Append($"<div class='DivLinksTableWrapper {classToAppend}'>"); if (!String.IsNullOrEmpty(sourceName)) { sb.Append($"<div class='DivSource'>{sourceName}</div>"); } var countContent = totalCount.ToString() + " " + Resources.Resources.UI_DocumentsFound; if (!String.IsNullOrEmpty(allLinksUrl)) { countContent = $"{countContent}<a class='AnchorAllLinks' target='_blank' href='{allLinksUrl}'> ({Resources.Resources.UI_All}) </a>"; } sb.Append($"<div class=\"DivNumber\"><p>{countContent}</p></div>"); sb.Append("<table cellpadding='10'>"); sb.Append("<tr><td class=\"TdHeader\"></td><td class=\"TdHeader\">" + Resources.Resources.UI_Title + "</td>"); sb.Append("</tr>"); int rowNumber = 0; foreach (DocumentLink l in links) { rowNumber++; var imageName = String.Empty; if (l.IsCase()) { imageName = "icon-cases-big.png"; } else if (l.IsLegislation()) { imageName = "icon-law-big.png"; } else { imageName = "icon-law-other-big.png"; } sb.Append("<tr>"); sb.Append("<td class=\"TdImage\"><img src=\"" + baseUrl + "/Content/Images/" + imageName + "\" alt=\"\"/></td>"); sb.Append("<td><a href=\"" + l.GetUrl() + "\" target=\"_blank\">" + l.Title + "</a></td>"); } sb.Append("</table>"); sb.Append("</div>"); } sb.Append("</div>"); sb.Append("<div class=\"DivNumber\"><p>" + Resources.Resources.UI_ListFirstDocsDesc.Replace("{limit}", limit.ToString()) + "</p></div>"); if (addHtmlHeader) { sb.Append("</body></html>"); } return(sb.ToString()); }