public void RaiseCallbackEvent(string eventArg)
    {
        string sResultado = "";

        //1º Si hubiera argumentos, se recogen y tratan.
        //string MisArg = eventArg;
        string[] aArgs = Regex.Split(eventArg, "@#@");
        sResultado = aArgs[0] + @"@#@"; if (Session["GVT_IDRED"] == null)
        {
            _callbackResultado = aArgs[0] + @"@#@Error@#@SESIONCADUCADA"; return;
        }
        ;

        //2º Aquí realizaríamos el acceso a BD, etc,...
        switch (aArgs[0])
        {
        case ("tramitar"):
            try
            {
                sResultado += "OK@#@" + NuevoBonoTransporte.TramitarBono(aArgs[1], aArgs[2], aArgs[3], aArgs[4], aArgs[5], aArgs[6],
                                                                         aArgs[7], aArgs[8], aArgs[9], aArgs[10], aArgs[11], aArgs[12]);
            }
            catch (Exception ex)
            {
                //sResultado += "Error@#@" + Errores.mostrarError("Error al tramitar el bono de transporte.", ex);
                string[] aMsg = Regex.Split(ex.Message, "##EC##");

                if (aMsg[0] == "ErrorControlado")
                {
                    sResultado += "Error@#@" + aMsg[1];
                }
                else
                {
                    sResultado += "Error@#@" + Errores.mostrarError("Error al tramitar el bono de transporte.", ex);
                }
            }
            break;

        case ("bono"):
            try
            {
                sResultado += "OK@#@" + NuevoBonoTransporte.obtenerDatosIniciales(aArgs[3], aArgs[1]) + "@#@" + NuevoBonoTransporte.obtenerCabeceraGVBono(aArgs[2], aArgs[3], aArgs[1].Substring(aArgs[1].Length - 2, 2));
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al obtener los datos de los bonos.", ex);
            }
            break;

        case ("getOtrosDatos"):
            try
            {
                sResultado += "OK@#@" + NuevoBonoTransporte.ObtenerHistorial(aArgs[2]) + "///" + NuevoBonoTransporte.obtenerCabeceraGVBono(aArgs[2], aArgs[3], aArgs[1]);
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al obtener el historial.", ex);
            }
            break;

        case ("aprobar"):
            try
            {
                CABECERAGV.Aprobar(aArgs[1]);
                sResultado += "OK@#@";
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al aprobar la solicitud.", ex);
            }
            break;

        case ("noaprobar"):
            try
            {
                sResultado += "OK@#@" + CABECERAGV.NoAprobar(int.Parse(aArgs[1]), aArgs[2]).ToString();
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al no aprobar la solicitud estándar.", ex);
            }
            break;

        case ("aceptar"):
            try
            {
                CABECERAGV.Aceptar(aArgs[1]);
                sResultado += "OK@#@";
            }
            catch (Exception ex)
            {
                //sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar la solicitud.", ex);
                string[] aMsg = Regex.Split(ex.Message, "##EC##");

                if (aMsg[0] == "ErrorControlado")
                {
                    sResultado += "Error@#@" + aMsg[1];
                }
                else
                {
                    sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar la solicitud.", ex);
                }
            }
            break;

        case ("noaceptar"):
            try
            {
                sResultado += "OK@#@" + CABECERAGV.NoAceptar(int.Parse(aArgs[1]), aArgs[2]).ToString();
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al no aceptar la solicitud estándar.", ex);
            }
            break;

        case ("anular"):
            try
            {
                sResultado += "OK@#@" + CABECERAGV.Anular(int.Parse(aArgs[1]), aArgs[2]).ToString();
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al anular la solicitud estándar.", ex);
            }
            break;

        case ("getHistoria"):
            try
            {
                sResultado += "OK@#@" + CABECERAGV.ObtenerHistorial(int.Parse(aArgs[1]));
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al obtener el historial.", ex);
            }
            break;

        case ("getDatosBeneficiario"):
            try
            {
                sResultado += "OK@#@" + ObtenerDatosBeneficiario(int.Parse(aArgs[1]));
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al obtener los datos del beneficiario.", ex);
            }
            break;

        case ("getCCMotivo"):
            try
            {
                sResultado += "OK@#@" + CABECERAGV.ObtenerCentroCosteMotivo(aArgs[1], aArgs[2], aArgs[3]);
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al obtener los datos del beneficiario.", ex);
            }
            break;
        }

        //3º Damos contenido a la variable que se envía de vuelta al cliente.
        _callbackResultado = sResultado;
    }
    public void RaiseCallbackEvent(string eventArg)
    {
        string sResultado = "";

        //1º Si hubiera argumentos, se recogen y tratan.
        //string MisArg = eventArg;
        string[] aArgs = Regex.Split(eventArg, "@#@");
        sResultado = aArgs[0] + @"@#@"; if (Session["GVT_IDRED"] == null)
        {
            _callbackResultado = aArgs[0] + @"@#@Error@#@SESIONCADUCADA"; return;
        }
        ;

        //2º Aquí realizaríamos el acceso a BD, etc,...
        switch (aArgs[0])
        {
        case ("aprobar"):
            try
            {
                Session["GVT_ACCPENDIENTE"] = "APROBAR";
                CABECERAGV.Aprobar(aArgs[1]);
                int[] nDesgloseNotasPendientes = Profesional.nDesgloseNotasPendientes((int)Session["GVT_IDFICEPI"]);
                nNotasPendientesAprobar = nDesgloseNotasPendientes[1];
                nNotasPendientesAceptar = nDesgloseNotasPendientes[2];

                sResultado += "OK@#@" + nNotasPendientesAprobar.ToString() + "@#@" + nNotasPendientesAceptar.ToString();
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al aprobar las solicitudes marcadas.", ex);
            }
            break;

        case ("aceptar"):
            try
            {
                Session["GVT_ACCPENDIENTE"] = "ACEPTAR";
                CABECERAGV.Aceptar(aArgs[1]);
                int[] nDesgloseNotasPendientes = Profesional.nDesgloseNotasPendientes((int)Session["GVT_IDFICEPI"]);
                nNotasPendientesAprobar = nDesgloseNotasPendientes[1];
                nNotasPendientesAceptar = nDesgloseNotasPendientes[2];
                sResultado += "OK@#@" + nNotasPendientesAprobar.ToString() + "@#@" + nNotasPendientesAceptar.ToString();
            }
            catch (Exception ex)
            {
                //sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar las solicitudes marcadas.", ex);
                string[] aMsg = Regex.Split(ex.Message, "##EC##");

                if (aMsg[0] == "ErrorControlado")
                {
                    sResultado += "Error@#@" + aMsg[1];
                }
                else
                {
                    sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar las solicitudes marcadas.", ex);
                }
            }
            break;

        case ("getPendientes"):
            try
            {
                Session["GVT_ACCPENDIENTE"] = aArgs[1];
                int[] nDesgloseNotasPendientes = Profesional.nDesgloseNotasPendientes((int)Session["GVT_IDFICEPI"]);
                nNotasPendientesAprobar = nDesgloseNotasPendientes[1];
                nNotasPendientesAceptar = nDesgloseNotasPendientes[2];

                sResultado += "OK@#@" + nNotasPendientesAprobar.ToString() + "@#@" + nNotasPendientesAceptar.ToString() + "@#@" + CABECERAGV.ObtenerNotasPendientesAprobarAceptar(aArgs[1], (int)Session["GVT_IDFICEPI"]);
            }
            catch (Exception ex)
            {
                sResultado += "Error@#@" + Errores.mostrarError("Error al aceptar las solicitudes marcadas.", ex);
            }
            break;
        }

        //3º Damos contenido a la variable que se envía de vuelta al cliente.
        _callbackResultado = sResultado;
    }