public String bloquear(string usuario_tb)
        {
            ManejadorXML manej = new ManejadorXML();

            usuario_tb = usuario_tb.Trim();

            System.Diagnostics.Debug.WriteLine("ESTE es el SessionID " + Session.SessionID);

            //check the IsNewSession value, this will tell us if the session has been reset
            if (Session.IsNewSession)
            {
                //now we know it's a new session, so we check to see if a cookie is present
                string cookie = HttpContext.Current.Request.Headers["Cookie"];
                //now we determine if there is a cookie does it contains what we're looking for
                if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                {
                    //since it's a new session but a ASP.Net cookie exist we know
                    //the session has expired so we need to redirect them
                    System.Diagnostics.Debug.WriteLine("Error 503");
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("503"));
                }
            }

            Usuario usuarioInput = new Usuario(usuario_tb);

            System.Diagnostics.Debug.WriteLine("Error 3");
            //Invocar método que coloque bloqueado = 1
            usuarioInput.setBloqueadoTrue(usuario_tb);
            //Creamos un hilo que espera a que
            //que transcurra el tiempo para poner en 0 nuevamente el campo
            //bloqueado
            Thread th1 = new Thread(new ThreadStart(usuarioInput.esperaDesbloquear));
            th1.Start();
            return manej.codificarXmlAEnviar(manej.envioMensajeError("3"));
        }
        public String cerrarSesion()
        {
            ManejadorXML manej = new ManejadorXML();

            System.Diagnostics.Debug.WriteLine("En cierre de sesion ESTE es el SessionID " + Session.SessionID);

            if (Context.Session != null)
            {
                //check the IsNewSession value, this will tell us if the session has been reset
                if (Session.IsNewSession)
                {
                    //now we know it's a new session, so we check to see if a cookie is present
                    string cookie = HttpContext.Current.Request.Headers["Cookie"];
                    //now we determine if there is a cookie does it contains what we're looking for
                    if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                    {
                        //since it's a new session but a ASP.Net cookie exist we know
                        //the session has expired so we need to redirect them
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("505"));
                    }
                    else
                    {
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                    }
                }
                else
                {
                    if (Session["Loggedin"] != null)
                    {
                        if (Session["Loggedin"].Equals("yes"))
                        {
                            Session.Abandon();
                            System.Diagnostics.Debug.WriteLine("Cerre Sesion");
                        }
                    }
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                }
            }
            else
                return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
        }
        public String listFianzas(string medico_tb)
        {
            ManejadorXML manej = new ManejadorXML();
            medico_tb = medico_tb.Trim();

            System.Diagnostics.Debug.WriteLine("En listado de fianzas ESTE es el SessionID " + Session.SessionID);

            if (Context.Session != null)
            {
                //check the IsNewSession value, this will tell us if the session has been reset
                if (Session.IsNewSession)
                {
                    //now we know it's a new session, so we check to see if a cookie is present
                    string cookie = HttpContext.Current.Request.Headers["Cookie"];
                    //now we determine if there is a cookie does it contains what we're looking for
                    if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                    {
                        //since it's a new session but a ASP.Net cookie exist we know
                        //the session has expired so we need to redirect them
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("505"));
                    }
                    else
                    {
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                    }
                }
                else
                {
                    if (Session["Loggedin"] != null)
                    {
                        if (Session["Loggedin"].Equals("yes"))
                        {
                            if (CodValido(medico_tb))
                            {
                                DateTime x = DateTime.Now;
                                DateTime y = (DateTime)Session["UltimaConsulta"];
                                TimeSpan z = x.Subtract(y);

                                System.Diagnostics.Debug.WriteLine(x.ToString("yyyyMMdd HH:mm:ss"));
                                System.Diagnostics.Debug.WriteLine(y.ToString("yyyyMMdd HH:mm:ss"));
                                System.Diagnostics.Debug.WriteLine("Diferencia " + z.TotalMinutes);

                                if (z.TotalMinutes < 10)
                                {
                                    Session["UltimaConsulta"] = x;

                                    //Creamos una instancia de HistoricoPagos con los datos de entrada (medico_tb, fechaI, fechaF)
                                    ListadoFianzas fianzas = new ListadoFianzas(medico_tb);

                                    //Verificamos si la base de datos está disponible
                                    bool disponible = fianzas.DisponibleBD();
                                    if (disponible == false)
                                        return manej.codificarXmlAEnviar(manej.envioMensajeError("600"));
                                    else
                                    {
                                        //Consultamos el listado de pagos generados para el médico en el rango de fechas
                                        fianzas.ConsultarListadoFianzas();

                                        if (fianzas.SinFianzas == true)
                                            return manej.codificarXmlAEnviar(manej.envioMensajeError("0"));
                                        else
                                            return manej.codificarXmlAEnviar(manej.creacionRespuestaListadoFianzas(fianzas.Fianzas));
                                    }

                                }
                                else
                                {
                                    return manej.codificarXmlAEnviar(manej.envioMensajeError("500"));
                                }
                            }
                            else return manej.codificarXmlAEnviar(manej.envioMensajeError("14"));
                        }
                        else
                            return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                    }
                    else
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                }
            }
            else
                return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
        }
        public String InicioSesion(string usuario_tb, string clave_tb)
        {
            ManejadorXML manej = new ManejadorXML();

            usuario_tb = usuario_tb.Trim();
            clave_tb = clave_tb.Trim();

            System.Diagnostics.Debug.WriteLine("ESTE es el SessionID " + Session.SessionID);

            //check the IsNewSession value, this will tell us if the session has been reset
            if (Session.IsNewSession)
            {
                //now we know it's a new session, so we check to see if a cookie is present
                string cookie = HttpContext.Current.Request.Headers["Cookie"];
                //now we determine if there is a cookie does it contains what we're looking for
                if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                {
                    //since it's a new session but a ASP.Net cookie exist we know
                    //the session has expired so we need to redirect them
                    System.Diagnostics.Debug.WriteLine("Error 502");
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("502"));
                }
                else
                {
                    Session.Add("Loggedin", "");
                }
            }

            //Creamos una instancia de usuario con los datos que fueron introducidos por pantalla (Pantalla de Inicio de Sesión)
            Usuario usuarioInput = new Usuario(usuario_tb, clave_tb);

            //Verificamos si la base de datos está disponible
            usuarioInput.DisponibleBD();
            if (usuarioInput.Disponible == false)
                return manej.codificarXmlAEnviar(manej.envioMensajeError("600"));

            //Verificamos si el usuario ingresado existe en la base de datos
            usuarioInput.ExisteUsuario();
            if (usuarioInput.Valido == false)
            {
                System.Diagnostics.Debug.WriteLine("Error 1");
                return manej.codificarXmlAEnviar(manej.envioMensajeError("1"));
            }
            else
            {
                //Verificamos si el usuario está bloqueado
                if (usuarioInput.estaBloqueado(usuario_tb))
                {
                    System.Diagnostics.Debug.WriteLine("Error 4");
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("4"));
                }
                else
                {
                    //Como el usuario es válido creamos su count de intentos fallidos (en caso de que no exista)
                    //if (Session[usuario_tb] == null)
                      //  Session.Add(usuario_tb, 0);
                    //System.Diagnostics.Debug.WriteLine("Count de " + usuario_tb + " " + (int)Session[usuario_tb]);

                    //Verificamos que se introdujo bien la contraseña
                    String codigo = usuarioInput.ConsultarUsuario();
                    if (usuarioInput.Valido == false)
                    {
                        //Session[usuario_tb] = (int)Session[usuario_tb] + 1;
                        //if ((int)Session[usuario_tb] == 3)
                        /*{
                            System.Diagnostics.Debug.WriteLine("Error 3");
                            //Invocar método que coloque bloqueado = 1
                            usuarioInput.setBloqueadoTrue(usuario_tb);
                            //Creamos un hilo que espera a que
                            //que transcurra el tiempo para poner en 0 nuevamente el campo
                            //bloqueado
                            Thread th1 = new Thread(new ThreadStart(usuarioInput.esperaDesbloquear));
                            th1.Start();
                            //Reiniciamos el count
                            Session.Remove(usuario_tb);
                            return manej.codificarXmlAEnviar(manej.envioMensajeError("3"));
                        }
                        else
                        {*/
                            System.Diagnostics.Debug.WriteLine("Error 0");
                            return manej.codificarXmlAEnviar(manej.envioMensajeError("0"));
                        //}
                    }
                    else
                    {
                        //Los datos introducidos son correctos. Inicio de sesión exitoso
                        usuarioInput.ConsultarCodigosPago(codigo);
                        usuarioInput.ConsultarFechaAdmin();

                        Session["Loggedin"] = "yes";
                        Session.Add("UltimaConsulta", DateTime.Now);
                        Session["codigosPago"] = usuarioInput.CodigosPago;
                        return manej.codificarXmlAEnviar(manej.creacionRespuestaInicioSesion(usuarioInput));
                    }
                }
            }

            /*VERSION VIEJA
            ManejadorXML manej = new ManejadorXML();
            DataSet ds = new DataSet();

            usuario_tb = usuario_tb.Trim();
            clave_tb = clave_tb.Trim();

            //LOGIN USUARIO//
            System.Diagnostics.Debug.WriteLine("ESTE es el SessionID " + Session.SessionID);
            Session.Add("Loggedin", "");

            //Creamos una instancia de usuario con los datos que fueron introducidos por pantalla (Pantalla de Inicio de Sesión)
            Usuario usuarioInput = new Usuario(usuario_tb, clave_tb);

            //Verificamos si el usuario ingresado existe en la base de datos
            ds = usuarioInput.ExisteUsuario(usuarioInput);
            if (ds.Tables[0].Rows.Count == 0)
            {
                //Los datos no corresponden a un usuario de la Base de datos
                return manej.codificarXmlAEnviar(manej.envioMensajeError("1"));
            }
            else
            {
                ds = usuarioInput.ConsultarUsuario(usuarioInput);
                if (ds.Tables[0].Rows.Count == 0)
                {
                    //La contraseña es incorrecta
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("0"));
                }
                else
                {
                    //Los datos introducidos son correctos
                    //Del DataSet devuelto tomo los datos del usuario
                    string nombre = ds.Tables[0].Rows[0].ItemArray.ElementAt(0).ToString();
                    string apellido = ds.Tables[0].Rows[0].ItemArray.ElementAt(1).ToString();
                    string codigo = ds.Tables[0].Rows[0].ItemArray.ElementAt(2).ToString();
                    string nombreUsuario = ds.Tables[0].Rows[0].ItemArray.ElementAt(3).ToString();
                    Session["Loggedin"] = "yes";
                    return manej.codificarXmlAEnviar(manej.creacionRespuestaInicioSesion(nombre, apellido, codigo, nombreUsuario));
                }
            }*/
        }
        public String edoCtaAntiguedadSaldo(string medico_tb)
        {
            ManejadorXML manej = new ManejadorXML();

            medico_tb = medico_tb.Trim();

            System.Diagnostics.Debug.WriteLine("En Estado de cuenta ESTE es el SessionID " + Session.SessionID);

            //check to see if the Session is null (doesnt exist)
            if (Context.Session != null)
            {
                //check the IsNewSession value, this will tell us if the session has been reset
                if (Session.IsNewSession)
                {
                    //now we know it's a new session, so we check to see if a cookie is present
                    string cookie = HttpContext.Current.Request.Headers["Cookie"];
                    //now we determine if there is a cookie does it contains what we're looking for
                    if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                    {
                        //since it's a new session but a ASP.Net cookie exist we know
                        //the session has expired so we need to redirect them
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("505"));
                    }
                    else
                    {
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                    }
                }
                else
                {
                    if (Session["Loggedin"] != null)
                    {
                        if (Session["Loggedin"].Equals("yes"))
                        {

                            if (CodValido(medico_tb))
                            {
                                DateTime x = DateTime.Now;
                                DateTime y = (DateTime)Session["UltimaConsulta"];
                                TimeSpan z = x.Subtract(y);

                                System.Diagnostics.Debug.WriteLine(x.ToString("yyyyMMdd HH:mm:ss"));
                                System.Diagnostics.Debug.WriteLine(y.ToString("yyyyMMdd HH:mm:ss"));
                                System.Diagnostics.Debug.WriteLine("Diferencia " + z.TotalMinutes);

                                if (z.TotalMinutes < 10)
                                {
                                    Session["UltimaConsulta"] = x;

                                    //Creamos una instancia de EstadoDeCuenta con los datos de entrada (medico_tb)
                                    EstadoDeCuenta edoCta = new EstadoDeCuenta(medico_tb);

                                    //Verificamos si la base de datos está disponible
                                    bool disponible = edoCta.DisponibleBD();
                                    if (disponible == false)
                                        return manej.codificarXmlAEnviar(manej.envioMensajeError("600"));
                                    else
                                    {
                                        //Consultamos el estado de cuenta por antiguedad de saldo
                                        edoCta.ConsultarEstadoDeCuentaAS();
                                        if (edoCta.sinDeuda == true)
                                            return manej.codificarXmlAEnviar(manej.envioMensajeError("0"));
                                        else
                                            return manej.codificarXmlAEnviar(manej.creacionRespuestaEdoCtaAS(edoCta));
                                    }
                                }
                                else
                                {
                                    return manej.codificarXmlAEnviar(manej.envioMensajeError("500"));
                                }
                            }
                            else return manej.codificarXmlAEnviar(manej.envioMensajeError("14"));
                        }
                        else
                            return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                    }
                    else
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                }
            }
            else
                return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
        }
        public String ConsultarHonorariosFacturados(string medico_tb, string fechaI_tb, string fechaF_tb)
        {
            ManejadorXML manej = new ManejadorXML();
            medico_tb = medico_tb.Trim();
            String fechaI = " ";
            String fechaF = " ";
            try
            {
                fechaI = String.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(fechaI_tb));
                fechaF = String.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(fechaF_tb));
            }
            catch (System.FormatException)
            {
                //Si la fecha ingresada por el usuario está en un formato inválido
                return manej.codificarXmlAEnviar(manej.envioMensajeError("15"));
            }
            System.Diagnostics.Debug.WriteLine("fechaI: " + fechaI + "fechaF: " + fechaF);

            System.Diagnostics.Debug.WriteLine("En Facturado ESTE es el SessionID " + Session.SessionID);

            if (Context.Session != null)
            {
                //check the IsNewSession value, this will tell us if the session has been reset
                if (Session.IsNewSession)
                {
                    //now we know it's a new session, so we check to see if a cookie is present
                    string cookie = HttpContext.Current.Request.Headers["Cookie"];
                    //now we determine if there is a cookie does it contains what we're looking for
                    if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                    {
                        //since it's a new session but a ASP.Net cookie exist we know
                        //the session has expired so we need to redirect them
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("505"));
                    }
                    else
                    {
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                    }
                }
                else
                {
                    if (Session["Loggedin"] !=null)
                    {
                        if (Session["Loggedin"].Equals("yes"))
                        {
                            if (CodValido(medico_tb))
                            {
                                DateTime x = DateTime.Now;
                                DateTime y = (DateTime)Session["UltimaConsulta"];
                                TimeSpan z = x.Subtract(y);

                                System.Diagnostics.Debug.WriteLine(x.ToString("yyyyMMdd HH:mm:ss"));
                                System.Diagnostics.Debug.WriteLine(y.ToString("yyyyMMdd HH:mm:ss"));
                                System.Diagnostics.Debug.WriteLine("Diferencia " + z.TotalMinutes);

                                if (z.TotalMinutes < 10)
                                {
                                    Session["UltimaConsulta"] = x;

                                    //Creamos una instancia de HistoricoPagos con los datos de entrada (medico_tb, fechaI, fechaF)
                                    FacturadoUDN facturado = new FacturadoUDN(medico_tb, fechaI, fechaF);

                                    //Verificamos si la base de datos está disponible
                                    bool disponible = facturado.DisponibleBD();
                                    if (disponible == false)
                                        return manej.codificarXmlAEnviar(manej.envioMensajeError("600"));
                                    else
                                    {
                                        //Consultamos el listado de pagos generados para el médico en el rango de fechas
                                        facturado.consultarHonorariosFacturados();
                                        if (facturado.SinFacturado == true)
                                            return manej.codificarXmlAEnviar(manej.envioMensajeError("0"));
                                        else
                                            return manej.codificarXmlAEnviar(manej.creacionRespuestaHonorariosFacturados(facturado.FactPorUdn, facturado.MontoTotal));
                                    }
                                }
                                else
                                {
                                    return manej.codificarXmlAEnviar(manej.envioMensajeError("500"));
                                }
                            }
                            else return manej.codificarXmlAEnviar(manej.envioMensajeError("14"));
                        }
                        else
                            return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                    }
                    else
                        return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
                }
            }
             else
                 return manej.codificarXmlAEnviar(manej.envioMensajeError("13"));
        }