Пример #1
0
        public static ResponseRestDM <TResultado> InvocaServicioRest <TResultado>
            (string url, string element)
        {
            var respuesta = new ResponseRestDM <TResultado>()
            {
            };
            TResultado  resultado = default(TResultado);
            string      sMessage  = "";
            CashdroEnum sCode     = 0;

            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
            HttpWebRequest request   = (HttpWebRequest)WebRequest.Create(url);
            var            responses = (HttpWebResponse)request.GetResponse();
            var            response  = new StreamReader(responses.GetResponseStream()).ReadToEnd();
            dynamic        resul     = JsonConvert.DeserializeObject <dynamic>(response);

            sCode    = (CashdroEnum)resul["code"];
            sMessage = "";

            if (sCode != CashdroEnum.OK)
            {
                sMessage = resul["data"];
            }
            else
            {
                //Este devuelve un Newtonsoft.Json.Linq.JObject
                //var test = JsonConvert.DeserializeObject<dynamic>(response);
                //TResultado result = test.ToObject<TResultado>();

                //Este devuelve un Newtonsoft.Json.Linq.JToken
                var test2 = Newtonsoft.Json.Linq.JToken.Parse((string)resul["data"]);
                //Resultados para un solo elemento

                //Necesito validar acá el tipo de valor para aplicar varios tipo de conversión dependiendo
                //si es un objeto complejo o no
                if (test2.GetType() == typeof(Newtonsoft.Json.Linq.JValue))
                {
                    //Respuestas simples como un id
                    var obj = JsonConvert.DeserializeObject <dynamic>(response);
                    resultado = obj.ToObject <TResultado>();
                }
                else
                {
                    //Respuesta para un JSON complejo
                    if (((Newtonsoft.Json.Linq.JContainer)test2).Count == 1)
                    {
                        resultado = test2[element].ToObject <TResultado>();
                    }
                }
            }
            respuesta.Codigo  = sCode;
            respuesta.Mensaje = sMessage;
            respuesta.Data    = resultado;
            return(respuesta);
        }
Пример #2
0
        public static ResponseListRestDM <TResultado> InvocaServicioListRest <TResultado>
            (string url, string element)
        {
            var respuesta = new ResponseListRestDM <TResultado>()
            {
            };
            List <TResultado> resultadoLst = new List <TResultado>();
            string            sMessage     = "";
            CashdroEnum       sCode        = 0;

            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
            HttpWebRequest request   = (HttpWebRequest)WebRequest.Create(url);
            var            responses = (HttpWebResponse)request.GetResponse();
            var            response  = new StreamReader(responses.GetResponseStream()).ReadToEnd();
            dynamic        resul     = JsonConvert.DeserializeObject <dynamic>(response);

            sCode    = (CashdroEnum)resul["code"];
            sMessage = "";

            if (sCode != CashdroEnum.OK)
            {
                sMessage = resul["data"];
            }
            else
            {
                //Este devuelve un Newtonsoft.Json.Linq.JObject
                //var test = JsonConvert.DeserializeObject<dynamic>(response);
                //TResultado result = test.ToObject<TResultado>();

                //Este devuelve un Newtonsoft.Json.Linq.JToken
                var test2 = Newtonsoft.Json.Linq.JToken.Parse((string)resul["data"]);
                //Resultados para un solo elemento
                if (((Newtonsoft.Json.Linq.JContainer)test2).Count > 1)
                {
                    resultadoLst = test2[element].ToObject <List <TResultado> >();
                }
            }

            respuesta.Codigo  = sCode;
            respuesta.Mensaje = sMessage;
            respuesta.Data    = resultadoLst;
            return(respuesta);
        }
Пример #3
0
 /// <summary>
 /// Constructor para respuestas con código explícito (ej.: error/fatal).
 /// </summary>
 public ResponseRestDM(CashdroEnum codigo, string mensaje, TData data = default(TData), string idOperacion = "0")
 {
     Codigo  = codigo;
     Mensaje = mensaje;
     Data    = data;
 }
Пример #4
0
 /// <summary>
 /// Constructor para respuestas con código explícito (ej.: error/fatal).
 /// </summary>
 public ResponseListRestDM(CashdroEnum codigo, string mensaje, List <TData> data = default(List <TData>), string idOperacion = "0")
 {
     Codigo  = codigo;
     Mensaje = mensaje;
     Data    = data;
 }