Ejemplo n.º 1
0
        private static LinksToHtmlModel CreateApisNationalHtmlModel(String docNumber, String toPar, String domain, int limit, out String documentTitle, out String documentLink)
        {
            documentTitle = String.Empty;
            documentLink  = String.Empty;

            // request web.apis.bg for links related to bg legislation or case law

            LinksToHtmlModel result = null;
            var parts = docNumber.Split('_');

            if (parts.Length == 2) // only when the base and the code are provider (by convention they are splited with '_')
            {
                var apisResponse = WebApisRequest.GetDocLinks(domain: domain, limit: limit, code: parts[1], @base: parts[0], toPar: toPar);
                // var apisResponse = WebApisRequest.TestData();

                if (apisResponse != null)
                {
                    documentTitle = apisResponse.Caption;
                    if (!String.IsNullOrEmpty(toPar))
                    {
                        documentTitle = AppendToPartTitleFromCelexAndToPar(documentTitle, "fake number", toPar, 1, String.Empty);
                    }

                    documentLink = WebApisDocumentLink.CreateApisUrl(code: parts[1], @base: parts[0]);

                    result = LinksToHtmlModel.Create(
                        links: apisResponse.Links,
                        totalCount: apisResponse.Full_Count,
                        limit: limit,
                        allLinksUrl: apisResponse.All_Url,
                        sourceName: "Apis Web");
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        public HttpResponseMessage ParHint(int langId, int siteLangId, string docNumber, string toPar = "", string domain = "")
        {
            var baseUrl = HttpContext.Current.Request.Url.AbsoluteUri;

            baseUrl = baseUrl.Substring(0, baseUrl.IndexOf("/api"));

            var response = this.Request.CreateResponse(HttpStatusCode.OK);

            var content = String.Empty;

            if (domain.IsIn(StringComparison.InvariantCultureIgnoreCase, "bgtooltip"))
            {
                ChangeLangCulture(langId);

                var parts = docNumber.Split('_');

                content = WebApisRequest.Hint(code: parts[1], @base: parts[0], toPar: toPar);
                if (String.IsNullOrEmpty(content))
                {
                    content = WebApisDocumentLink.CreateApisUrl(code: parts[1], @base: parts[0]);
                }
            }
            else
            {
                var actualLanguageId = GetAvailableLanguageIdForDocument(docNumber, langId);

                ChangeLangCulture(actualLanguageId);

                var d = Doc.GetParText(
                    "celex",
                    docNumber,
                    toPar,
                    actualLanguageId,
                    null,
                    actualLanguageId,
                    false,
                    false,
                    true,
                    true);

                content = d.Text;
                content = RedirectCelexAnchorsToEurocases(content, baseUrl, actualLanguageId);
                if (!String.IsNullOrEmpty(content))
                {
                    content = $"<div class='eurocases-hint-wrapper'><p class='hint-header'>InterLex</p>{content}</div>";
                }

                if (String.IsNullOrEmpty(content))
                {
                    content = Doc.CreateEurLexLink(docNumber, actualLanguageId);
                }
            }

            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(content, Encoding.UTF8, "text/html");

            return(response);
        }