Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }