Exemplo n.º 1
0
    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();
    }
Exemplo n.º 2
0
    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));
        }
    }