/// <summary> /// Método que se encarga de invocar al servicio utilizando la configuración sXML del archivo de configuración del Hilo. /// </summary> /// <returns>El resultado de la invocación al servicio </returns> internal static ResponseApi InvokeServiceWrite(string pstrBatchPathFile, ServiceConfigTPVCOFO.ServicioWeb pSW, bool pbolObjectArray = true) { #region Vars // ILION- Se comentara el signature y el timestamp para la invocacion. string strData; //string strTimeStamp; //string strSignature; string strJsonName; ResponseApi objReponseApi; ServiceConfigTPVCOFO.ServicioWeb SW; string strMsg; #endregion //Vars #region Var Initialization //strTimeStamp = DateTime.UtcNow.ToString("yyyyMMdd HH:mm:ss"); objReponseApi = new ResponseApi(); strMsg = string.Empty; #endregion //Var Initialization try { SW = pSW; if (File.Exists(pstrBatchPathFile)) { strJsonName = SW.JsonName; using (StreamReader sr = new StreamReader(pstrBatchPathFile)) { strData = sr.ReadToEnd(); if (strData.Length > 0) { strData = strData.Remove(strData.Length - 1, 1); if (pbolObjectArray) { strData = "{\"" + strJsonName + "\":[" + strData + "]" + "}"; } else { strData = strData + "}"; } } } if (strData.Length > 20) { //object objGenerico = Generic.fnGenerateClasstoJsonName(strData, strJsonName); //strSignature = GenericHelper.GeneratedSignature(objGenerico, strTimeStamp); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(SW.EndPoint); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "application/json"; request.ContentLength = strData.Length; request.KeepAlive = true; request.SendChunked = true; //request.Headers.Add("Signature", strSignature); //request.Headers.Add("TimeStamp", strTimeStamp); try { using (Stream webStream = request.GetRequestStream()) using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII)) { requestWriter.Write(strData); } using (HttpWebResponse webResponse = request.GetResponse() as HttpWebResponse) { using (Stream webStream = webResponse.GetResponseStream()) { using (StreamReader responseReader = new StreamReader(webStream)) { string response = responseReader.ReadToEnd(); //Console.Out.WriteLine(response); if (SW.BitSaveResponse) { objReponseApi = JsonConvert.DeserializeObject <ResponseApi>(response); } else { objReponseApi = JsonConvert.DeserializeObject <ResponseApi>(response); } } } } } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { strMsg += "\r\n" + " ILION- Error Peticion: " + SW.EndPoint + "\n Detalle Consulta: " + reader.ReadToEnd(); ServiceLogTPVCOFO.Instance.WriteLine(strMsg + "\r\n" + "---------------------------------------------------"); objReponseApi.Message = strMsg; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; return(objReponseApi); } } catch (Exception e) { strMsg += "\r\n" + "Check " + SW.EndPoint + ", Error WS: " + e.Message + e.StackTrace + "COnsulta Error" + SW.EndPoint + "Detalle Consulta: " + SW.XML; ServiceLogTPVCOFO.Instance.WriteLine(strMsg + "\r\n" + "---------------------------------------------------"); objReponseApi.Message = strMsg; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; return(objReponseApi); } } else { objReponseApi.Message = "Archivo con formato json vacío o inválido"; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; } } else { objReponseApi.Message = "Archivo no Encontrado."; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; } } catch (Exception ex) { objReponseApi.Message = ex.Message; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; } return(objReponseApi); }
/// <summary> /// ILION Método que se encarga de invocar al servicio. /// </summary> /// <returns>El resultado de la invocación al servicio </returns> internal static ResponseApi InvokeServiceWriteParams(string pstrBatchPathFile, ServiceConfigTPVCOFO.ServicioWeb pSW, bool pbolObjectArray = true) { #region Vars // ILION- Se comentara el signature y el timestamp para la invocacion. string strData; string strJsonName; ResponseApi objReponseApi; ServiceConfigTPVCOFO.ServicioWeb SW; string strMsg; #endregion //Vars #region Var Initialization objReponseApi = new ResponseApi(); strMsg = string.Empty; #endregion //Var Initialization try { SW = pSW; if (File.Exists(pstrBatchPathFile)) { strJsonName = SW.JsonName; using (StreamReader sr = new StreamReader(pstrBatchPathFile)) { strData = sr.ReadToEnd(); if (strData.Length > 0) { strData = strData.Remove(strData.Length - 1, 1); if (pbolObjectArray) { strData = "{\"" + strJsonName + "\":[" + strData + "]" + "}"; } else { strData = strData + "}"; } } } if (strData.Length > 20) { Dictionary <string, string> paramaters = new Dictionary <string, string>() { { "request", strData } }; string postData = ""; foreach (string key in paramaters.Keys) { postData += "?" + HttpUtility.UrlEncode(key) + "=" + HttpUtility.UrlEncode(paramaters[key]); } HttpWebRequest request = (HttpWebRequest)WebRequest.Create(SW.EndPoint + postData); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = strData.Length; try { using (Stream webStream = request.GetRequestStream()) using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII)) { requestWriter.Write(strData); } using (HttpWebResponse webResponse = request.GetResponse() as HttpWebResponse) { using (Stream webStream = webResponse.GetResponseStream()) { using (StreamReader responseReader = new StreamReader(webStream)) { string response = responseReader.ReadToEnd(); if (SW.BitSaveResponse) { objReponseApi = JsonConvert.DeserializeObject <ResponseApi>(response); } else { objReponseApi = JsonConvert.DeserializeObject <ResponseApi>(response); } } } } } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { strMsg += "\r\n" + " ILION- Error Peticion: " + SW.EndPoint + "\n Detalle Consulta: " + reader.ReadToEnd(); ServiceLogTPVCOFO.Instance.WriteLine(strMsg + "\r\n" + "---------------------------------------------------"); objReponseApi.Message = strMsg; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; return(objReponseApi); } } catch (Exception e) { strMsg += "\r\n" + "Check " + SW.EndPoint + ", Error WS: " + e.Message + e.StackTrace + "COnsulta Error" + SW.EndPoint + "Detalle Consulta: " + SW.XML; ServiceLogTPVCOFO.Instance.WriteLine(strMsg + "\r\n" + "---------------------------------------------------"); objReponseApi.Message = strMsg; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; return(objReponseApi); } } else { objReponseApi.Message = "Archivo con formato json vacío o inválido"; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; } } else { objReponseApi.Message = "Archivo no Encontrado."; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; } } catch (Exception ex) { objReponseApi.Message = ex.Message; objReponseApi.Status = (int)ApiResponseStatuses.BadRequest; } return(objReponseApi); }