/// <summary> /// Remotes the mandar parametros. /// </summary> /// <returns>The mandar parametros.</returns> /// <param name="url">URL.</param> /// <param name="metodo">Metodo.</param> /// <param name="segmentos">Segmentos.</param> /// <param name="parametros">Parametros.</param> //public async Task<RequestResponse> RemoteMandarParametros(string url, MetodoHTTP metodo, Dictionary<string, string> segmentos, Dictionary<string, string> parametros) //{ // RequestResponse resultado = new RequestResponse(); // await Task.Factory.StartNew(() => // { // RestRequest request = new RestRequest(url, GetMetodo(metodo)); // if (segmentos != null) // { // foreach (var x in segmentos.ToArray()) // { // request.AddUrlSegment(x.Key, x.Value); // } // } // if (parametros != null) // { // foreach (var x in parametros.ToArray()) // { // request.Parameters.Add(new Parameter() { Name = x.Key, Type = RestSharp.ParameterType.QueryString, Value = x.Value }); // } // } // return Config.ServicioRest.Execute(request); // }).ContinueWith(t => // { // if (t.IsFaulted) // { // throw t.Exception; // } // else // { // switch (t.Result.StatusCode) // { // case HttpStatusCode.OK: // if (ValidarJSON<RequestResponse>(t.Result)) // { // resultado = new JsonDeserializer().Deserialize<RequestResponse>(t.Result); // } // break; // default: // if (string.IsNullOrEmpty(t.Result.Content)) // { // resultado.message = mensajeConexion; // resultado.status = -1; // } // else // { // //JsonObject respuesta = SimpleJson.DeserializeObject<JsonObject>(t.Result.Content); // resultado = new JsonDeserializer().Deserialize<RequestResponse>(t.Result); // } // break; // } // } // }, Config.Sincronizacion); // return resultado; //} /// <summary> /// Remotes the mandar json. /// </summary> /// <returns>The mandar json.</returns> /// <param name="url">URL.</param> /// <param name="metodo">Metodo.</param> /// <param name="segmentos">Segmentos.</param> /// <param name="parametros">Parametros.</param> public async Task <RequestResponse <S> > RemoteMandarJSON <S>(string url, MetodoHTTP metodo, Dictionary <string, string> segmentos, Object parametros) where S : class { RequestResponse <S> resultado = new RequestResponse <S>(); await Task.Factory.StartNew(() => { RestRequest request = new RestRequest(url, GetMetodo(metodo)); if (segmentos != null) { foreach (var x in segmentos.ToArray()) { request.AddUrlSegment(x.Key, x.Value); } } if (parametros != null) { request.AddJsonBody(parametros); } return(Config.ServicioRest.Execute(request)); }).ContinueWith(t => { if (t.IsFaulted) { throw t.Exception; } else { switch (t.Result.StatusCode) { case HttpStatusCode.OK: if (ValidarJSON <RequestResponse <S> >(t.Result)) { resultado = new JsonDeserializer().Deserialize <RequestResponse <S> >(t.Result); } break; default: if (string.IsNullOrEmpty(t.Result.Content)) { resultado.message = mensajeConexion; resultado.status = -1; } else { resultado = new JsonDeserializer().Deserialize <RequestResponse <S> >(t.Result); } break; } } }, Config.Sincronizacion); return(resultado); }
/// <summary> /// Gets the metodo. /// </summary> /// <returns>The metodo.</returns> /// <param name="metodo">Metodo.</param> private Method GetMetodo(MetodoHTTP metodo) { switch (metodo) { case MetodoHTTP.POST: return(Method.POST); case MetodoHTTP.GET: return(Method.GET); case MetodoHTTP.PUT: return(Method.PUT); case MetodoHTTP.DELETE: return(Method.DELETE); default: return(Method.GET); } }