public static QuincusResponse GetGeoCodeReponseFromQuincus(QuincusGeoCodeDataRequest quincusGeoCodeDataRequest) { QuincusResponse quincusReponse = QuincusProxy.GetQuincusResponse(quincusGeoCodeDataRequest); return(quincusReponse); }
public static QuincusResponse GetQuincusResponse(QuincusGeoCodeDataRequest quincusGeoCodeDataRequest, decimal shipmentsCount) { bool retryflag = true; int retryCount = 0; QuincusResponse quincusResponse = new QuincusResponse(); HttpWebResponse httpResponse = null; int sleepTime = 5000; int maxRetryCount = Convert.ToInt32(Math.Round(shipmentsCount / 1.5m)); try { while (retryflag && retryCount <= maxRetryCount) { HttpRequestCachePolicy requestCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default); HttpWebRequest.DefaultCachePolicy = requestCachePolicy; var httpWebRequest = (HttpWebRequest)WebRequest.Create( quincusGeoCodeDataRequest.endpoint + quincusGeoCodeDataRequest.id + "/"); HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); httpWebRequest.CachePolicy = noCachePolicy; if (string.Equals(MapProxy.WebProxyEnable, true.ToString(), StringComparison.OrdinalIgnoreCase)) { WebProxy myProxy = new WebProxy(MapProxy.webProxyURI, false, null, new NetworkCredential(MapProxy.webProxyUsername, MapProxy.webProxyPassword)); httpWebRequest.Proxy = myProxy; } httpWebRequest.ContentType = "application/json"; httpWebRequest.Headers.Add("AUTHORIZATION", "JWT " + quincusGeoCodeDataRequest.quincusTokenData.token); httpWebRequest.Method = "GET"; httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); if (string.Equals(httpResponse.StatusDescription, "No Content", StringComparison.OrdinalIgnoreCase)) { retryCount++; //if (retryCount == maxRetryCount) //{ sleepTime = Convert.ToInt32(Math.Round(1000m * 1.8m * shipmentsCount)); //} System.Threading.Thread.Sleep(sleepTime); } else { retryflag = false; } } string response; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { response = streamReader.ReadToEnd(); } if (!string.IsNullOrEmpty(response)) { quincusResponse.QuincusReponseData = Newtonsoft.Json.JsonConvert.DeserializeObject <QuincusReponseData>(response); quincusResponse.ResponseStatus = true; } } catch (Exception exception) { quincusResponse.Exception = exception; } return(quincusResponse); }
public static QuincusResponse GetGeoCodeReponseFromQuincus(QuincusGeoCodeDataRequest quincusGeoCodeDataRequest, decimal shipmentsCount = 30) { QuincusResponse quincusReponse = QuincusProxy.GetQuincusResponse(quincusGeoCodeDataRequest, shipmentsCount); return(quincusReponse); }
public static QuincusResponse GetQuincusResponse(QuincusGeoCodeDataRequest quincusGeoCodeDataRequest) { QuincusResponse quincusResponse = new QuincusResponse(); HttpWebResponse httpResponse = null; quincusResponse.QuincusReponseDataList = new List <QuincusReponseData>(); try { List <string> webRequestURLS = new List <string>(); quincusGeoCodeDataRequest.batchIDList.ForEach(requestID => { webRequestURLS.Add(quincusGeoCodeDataRequest.endpoint + requestID); }); //Parallel.ForEach(webRequestURLS, urls => // { // var httpWebRequest = (HttpWebRequest)WebRequest.Create(urls); // HttpRequestCachePolicy noCachePolicy = // new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); // httpWebRequest.CachePolicy = noCachePolicy; // if (string.Equals(MapProxy.WebProxyEnable, true.ToString(), StringComparison.OrdinalIgnoreCase)) // { // WebProxy myProxy = new WebProxy(MapProxy.webProxyURI, false, null, new NetworkCredential(MapProxy.webProxyUsername, MapProxy.webProxyPassword)); // httpWebRequest.Proxy = myProxy; // } // httpWebRequest.ContentType = "application/json"; // httpWebRequest.Headers.Add("AUTHORIZATION", "JWT " + quincusGeoCodeDataRequest.quincusTokenData.token); // httpWebRequest.Method = "GET"; // httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); // string response; // using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) // { // response = streamReader.ReadToEnd(); // streamReader.Close(); // } // if (!string.IsNullOrEmpty(response)) // { // quincusResponse.QuincusReponseDataList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<QuincusReponseData>(response)); // quincusResponse.ResponseStatus = true; // } // httpResponse.Close(); // }); //var intermediateResponse = quincusResponse.QuincusReponseDataList; quincusGeoCodeDataRequest.batchIDList.ForEach(requestData => { System.Threading.Thread.Sleep(5000); HttpRequestCachePolicy requestCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default); HttpWebRequest.DefaultCachePolicy = requestCachePolicy; var httpWebRequest = (HttpWebRequest)WebRequest.Create( quincusGeoCodeDataRequest.endpoint + requestData + "/"); HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); httpWebRequest.CachePolicy = noCachePolicy; if (string.Equals(MapProxy.WebProxyEnable, true.ToString(), StringComparison.OrdinalIgnoreCase)) { WebProxy myProxy = new WebProxy(MapProxy.webProxyURI, false, null, new NetworkCredential(MapProxy.webProxyUsername, MapProxy.webProxyPassword)); httpWebRequest.Proxy = myProxy; } httpWebRequest.ContentType = "application/json"; httpWebRequest.Headers.Add("AUTHORIZATION", "JWT " + quincusGeoCodeDataRequest.quincusTokenData.token); httpWebRequest.Method = "GET"; httpWebRequest.Timeout = 60000; httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); string response; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { response = streamReader.ReadToEnd(); streamReader.Close(); } if (!string.IsNullOrEmpty(response)) { quincusResponse.QuincusReponseDataList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject <QuincusReponseData>(response)); quincusResponse.ResponseStatus = true; } httpResponse.Close(); httpResponse.Dispose(); httpWebRequest.Abort(); Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel() { dateTime = DateTime.Now, apiTypes = DataObjects.LogData.APITypes.QuincusAPI_Batch, apiType = "QuincusAPI_Batch", LogInformation = new DataObjects.LogData.LogInformation() { LogResponse = response, LogRequest = JsonConvert.SerializeObject(quincusGeoCodeDataRequest.batchIDList), LogException = null } })); }); } catch (Exception exception) { quincusResponse.Exception = exception; Task.Run(() => AuditEventEntry.LogEntry(new DataObjects.LogData.LogDataModel() { dateTime = DateTime.Now, apiTypes = DataObjects.LogData.APITypes.QuincusAPI_Batch, apiType = "QuincusAPI_Batch", LogInformation = new DataObjects.LogData.LogInformation() { LogResponse = null, LogRequest = JsonConvert.SerializeObject(quincusGeoCodeDataRequest.batchIDList), LogException = exception.InnerException.ToString() } })); } return(quincusResponse); }