public AjaxWS() { this.backEndService = new WSViaticos.WSViaticosSoapClient(); this.usuarioLogueado = ((WSViaticos.Usuario)Session[ConstantesDeSesion.USUARIO]); //Eliminar la marca de comentario de la línea siguiente si utiliza los componentes diseñados //InitializeComponent(); }
public string EjecutarEnBackend(string nombre_metodo, String[] argumentos_json) { System.Reflection.MethodInfo metodo = backEndService.GetType().GetMethods().ToList().Find(m => m.Name == nombre_metodo); if (metodo == null) { throw new Exception("Error: No se encontró el método " + nombre_metodo + " en el WEB SERVICE"); } var argumentos_esperados = metodo.GetParameters(); var argumentos_a_enviar = new List <Object>(); for (int i = 0; i < argumentos_json.Count(); i++) { var arg_esperado = argumentos_esperados[i]; var arg_json = argumentos_json[i]; if (arg_esperado.ParameterType == typeof(String)) { argumentos_a_enviar.Add(arg_json); } else { argumentos_a_enviar.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(arg_json, arg_esperado.ParameterType)); } } if (argumentos_esperados.Any(a => a.Name == "usuario")) { try { if (usuarioLogueado.GetType().Name == "UsuarioNulo") { throw new Exception("Error: Debe estar logueado para acceder a esta funcionalidad"); } argumentos_a_enviar.Add(usuarioLogueado); } catch (Exception) { return(Newtonsoft.Json.JsonConvert.SerializeObject("")); } } try { var respuesta = metodo.Invoke(backEndService, argumentos_a_enviar.ToArray()); if ((nombre_metodo == "ModificarMiMail") || (nombre_metodo == "ModificarMailRegistro")) { this.usuarioLogueado = backEndService.GetUsuarioPorId(this.usuarioLogueado.Id); Session[ConstantesDeSesion.USUARIO] = this.usuarioLogueado; } return(Newtonsoft.Json.JsonConvert.SerializeObject(respuesta)); } catch (Exception e) { return(Newtonsoft.Json.JsonConvert.SerializeObject(e)); } }