public Models.SierraModel GetPatronInfoFromLibraryCardNumberOrPersonnummer(string barcode, string pnr) { var ret = new Models.SierraModel(); var rgx = new Regex("[^a-zA-Z0-9]"); var pnrWithoutDash = rgx.Replace(pnr, ""); var pnrWithDash = pnrWithoutDash.Length == 10 ? pnrWithoutDash.Insert(6, "-") : pnrWithoutDash; // Only search on first barcode if there are multiple. Only search on exact pnr with or without dash. var query = "barcode:" + rgx.Replace(barcode, "") + "* OR pnum:(*" + pnrWithoutDash + "* OR *" + pnrWithDash + "*)"; try { HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(ConfigurationManager.AppSettings["patronCacheSolrQueryUrl"] + query + "&wt=json"); if (!String.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["patronCacheSolrBasicAuthUsername"]) && !String.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["patronCacheSolrBasicAuthPassword"])) { fileReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(ConfigurationManager.AppSettings["patronCacheSolrBasicAuthUsername"] + ":" + ConfigurationManager.AppSettings["patronCacheSolrBasicAuthPassword"]))); } fileReq.CookieContainer = new CookieContainer(); fileReq.AllowAutoRedirect = true; HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse(); var outputStream = fileResp.GetResponseStream(); var sr = new StreamReader(outputStream); var json = JsonConvert.DeserializeObject <dynamic>(sr.ReadToEnd()); if (json.response.numFound == 1) { FillInSierraModelFromSolrData(json.response.docs[0], ret); } } catch (Exception) { // NOP } return(ret); }
public SierraModel GetPatronInfoFromSierraId(string sierraId) { var ret = new Models.SierraModel(); try { var query = "recordnum:" + sierraId; HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(ConfigurationManager.AppSettings["patronCacheSolrQueryUrl"] + query + "&wt=json"); if (!String.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["patronCacheSolrBasicAuthUsername"]) && !String.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["patronCacheSolrBasicAuthPassword"])) { fileReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(ConfigurationManager.AppSettings["patronCacheSolrBasicAuthUsername"] + ":" + ConfigurationManager.AppSettings["patronCacheSolrBasicAuthPassword"]))); } fileReq.CookieContainer = new CookieContainer(); fileReq.AllowAutoRedirect = true; HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse(); var outputStream = fileResp.GetResponseStream(); var sr = new StreamReader(outputStream); var json = JsonConvert.DeserializeObject <dynamic>(sr.ReadToEnd()); if (json.response.numFound == 1) { FillInSierraModelFromSolrData(json.response.docs[0], ret); } } catch (Exception) { // NOP } return(ret); }