private SmeDoc CreateSmeDoc(SpDocumentModel docInfo, string searchText) { if (docInfo.DocLanguageId != -1) { var docText = this.dbHelper.GetDocumentTextByDocLangId(docInfo.DocLanguageId); if (this.IsBlob(docText, out string fileName)) { var smeDoc = new SmeDoc(); smeDoc.Meta = DocConverter.GetSmeDocMeta(docText); smeDoc.Meta.ShortTitle = smeDoc.Meta.ShortTitle; //must change when ShortTitle column is available in database this.FillMetaFromDocRecord(smeDoc, docInfo); smeDoc.Meta.IsBlob = true; var filePath = $@"{this.pathsProvider.PdfPath}\{smeDoc.Meta.Idenitifier}\{fileName}"; if (System.IO.File.Exists(filePath)) { smeDoc.Items = new List <SmeDocItem>(); var fileExt = System.IO.Path.GetExtension(filePath).ToLower(); if (fileExt == ".html") { var docContent = System.IO.File.ReadAllText(filePath); smeDoc.Meta.IsBlob = false; smeDoc.Items.Add(new SmeDocItem { Text = docContent, Type = SmeDocItemType.Text }); } else { smeDoc.Items.Add(new SmeDocItem { Text = fileName, Type = SmeDocItemType.Text }); } } return(smeDoc); } else { var html = AkomaNtosoPreProcessor.ConvertToHtml(docText, new AkomaNtosoPreProcessorConfig()); html = this.ReplaceImgUrls(html); if (!string.IsNullOrEmpty(searchText)) { html = this.ColorizeSearch(searchText, html, docInfo.LangId); } html = DocumentLinkRewrite.ReplaceNationalLegislation(html); var res = this.CreateSmeDoc(html, docText, docInfo); return(res); } } else { return(null); } }
private SmeDoc CreateSmeDoc(string html, string pt, SpDocumentModel docInfo) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(html); var res = DocConverter.DoDocConvert(htmlDoc, pt); if (res.Meta.IsConsolidatedEuLegislation && res.HasRecitals() == false) { var preambleWithRecitals = this.dbHelper.GetRecitalsPreambleForConsVersion(docInfo.DocLanguageId); if (String.IsNullOrEmpty(preambleWithRecitals) == false) { var preambleWithRecitalsHtml = AkomaNtosoPreProcessor.ConvertToHtml(preambleWithRecitals, new AkomaNtosoPreProcessorConfig()); InsertRecitalsAtPreambleEnd(htmlDoc, preambleWithRecitalsHtml); res = DocConverter.DoDocConvert(htmlDoc, pt); } } this.FillMetaFromDocRecord(res, docInfo); var filePath = @".\data\smedata.css"; if (!string.IsNullOrEmpty(this.pathsProvider.BasePath)) { filePath = System.IO.Path.Combine(this.pathsProvider.BasePath, filePath); } res.Head += System.IO.File.ReadAllText(filePath); return(res); }
public HttpResponseMessage Cite(int langId, string docNumber, CiteType citeType, String domain = "") { var response = this.Request.CreateResponse(HttpStatusCode.OK); ChangeLangCulture(langId); var data = new CiteData { DocType = 1, Text = Resources.Resources.ApiDocCiteNotFound }; if (domain.IsIn(StringComparison.InvariantCultureIgnoreCase, "bgcite")) { var parts = docNumber.Split('_'); data.Text = WebApisRequest.Cite(code: parts[1], @base: parts[0], citeType: citeType); } else { Document doc = Doc.GetDocByDocNumber(docNumber, langId, null); if (doc != null) { string docXml = Doc.GetDocText(doc.DocLangId, doc.DocType, 1, true); // this is temporary if (citeType == CiteType.LongCite) { data.Text = AkomaNtosoPreProcessor.GetLongCitation(docXml); } else { data.Text = AkomaNtosoPreProcessor.GetShortCitation(docXml); } } } response.Headers.Remove("Access-Control-Allow-Origin"); response.Headers.Remove("Access-Control-Allow-Methods"); response.Headers.Remove("Access-Control-Allow-Headers"); response.Headers.Add("Access-Control-Allow-Origin", "*"); response.Headers.Add("Access-Control-Allow-Methods", "GET"); response.Headers.Add("Access-Control-Allow-Headers", "*"); response.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(data), Encoding.UTF8, "text/html"); return(response); }
public async Task <String> ConvertToHtmlAsync(int documentType /* 1 - case; 2 - meta */, String interlexJsonContent) { if (String.IsNullOrEmpty(interlexJsonContent)) { return(null); } using (var httpClient = new HttpClient()) { var httpResponse = await httpClient.PostAsJsonAsync(convertApiUrl, new { documentType = documentType, jsonContent = interlexJsonContent }); var jsonStr = await httpResponse.EnsureSuccessStatusCode().Content.ReadAsStringAsync(); var jsonDict = (JObject)JsonConvert.DeserializeObject(jsonStr); var aknXml = jsonDict["akomaNtosoXml"].Value <String>(); var html = AkomaNtosoPreProcessor.ConvertToFragments(aknXml, new AkomaNtosoPreProcessorConfig()).OverAll; return(html); } }