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); }
internal static String Cite(String code, String @base, CiteType citeType) { try { var citate = citeType == CiteType.LongCite ? "long" : "short"; var url = $"{webapisdomain}/euLinksChecker.php?cite=1&citeType={citate}&code={code}&base={@base}"; var content = GetAsString(url); // use anonymous template for deserializtion purpouse. the result does not fit well in 'link_wrapper_json_friendly' var template = new { links = new List <link_json_friendly>() }; var jsonWrapper = JsonConvert.DeserializeAnonymousType(content, template); var result = jsonWrapper.links?.FirstOrDefault()?.title; return(result); } catch (Exception e) { return(null); } }