Exemple #1
0
    public static List <int> validaEvalProgress(List <int> listaid, int t001_idevalprogress)
    {
        IB.Progress.BLL.Profesional pro = null;
        try
        {
            IB.Progress.Models.Profesional profesionales = null;
            pro = new IB.Progress.BLL.Profesional();

            List <int> valido = new List <int>();

            foreach (int idficepi in listaid)
            {
                profesionales = pro.validaProgress(idficepi, t001_idevalprogress);

                if (profesionales.validoEvalProgress == false)
                {
                    valido.Add(idficepi);
                }
            }

            pro.Dispose();
            return(valido);
        }

        catch (Exception)
        {
            if (pro != null)
            {
                pro.Dispose();
            }
            throw;
        }
    }
    public static bool validaEvalProgress(int idficepi_interesado, int idrespdestino)
    {
        IB.Progress.BLL.Profesional pro = null;
        if (idrespdestino != 0)
        {
            try
            {
                IB.Progress.Models.Profesional profesionales = null;
                pro = new IB.Progress.BLL.Profesional();

                profesionales = pro.validaProgress(idficepi_interesado, idrespdestino);
                pro.Dispose();

                return(profesionales.validoEvalProgress);
            }


            catch (Exception)
            {
                if (pro != null)
                {
                    pro.Dispose();
                }
                throw;
            }
        }

        else
        {
            return(false);
        }
    }
Exemple #3
0
    public static void establecerVariableSesion(string[] datos)
    {
        //datos[0] = nombre
        //datos[1] = codred
        BLL.Profesional cProfesional = new BLL.Profesional();

        try
        {
            Models.Profesional oProfesional = cProfesional.Obtener(datos[1]);
            if (oProfesional.bIdentificado)
            {
                cProfesional.CargarRoles(oProfesional);

                //Dejo todo el objeto el la variable de sesión PROFESIONAL
                HttpContext.Current.Session["PROFESIONAL"] = oProfesional;
            }
            else
            {
                throw new Exception("No se ha podido autenticar al usuario.");
            }
        }
        catch (Exception ex)
        {
            throw new Exception("Ocurrió un error autenticando al usuario");
        }
        finally
        {
            cProfesional.Dispose();
        }
    }
    public static void NoAprobacionAceptada(List <IB.Progress.Models.TramitacionCambioRol> oProfesional)
    {
        try
        {
            IB.Progress.BLL.TramitacionCambioRol solicitud = new IB.Progress.BLL.TramitacionCambioRol();

            StringBuilder sbPromotor         = null;
            StringBuilder sbAprobador        = null;
            StringBuilder sbOtrosEvaluadores = null;

            solicitud.CambioEstadoSolicitudROL(oProfesional);
            solicitud.Dispose();

            //Envío de correos
            foreach (IB.Progress.Models.TramitacionCambioRol item in oProfesional)
            {
                sbPromotor  = new StringBuilder();
                sbAprobador = new StringBuilder();

                //CORREO AL APROBADOR
                sbAprobador.Append(item.nomCortoAprobador + ", no has aprobado el cambio de rol solicitado por " + item.nombre_promotor + " para " + item.nombre_interesado + ".</br></br>");
                sbAprobador.Append("Rol actual: " + item.t940_desrolActual + "</br>");
                sbAprobador.Append("Rol no aprobado: " + item.t940_desrolPropuesto + "</br></br>");
                sbAprobador.Append("Motivo: </br> " + item.t940_motivorechazo + "</br>");

                Correo.Enviar("PROGRESS: Cambio de rol no aprobado", sbAprobador.ToString(), item.CorreoAprobador);

                //CORREO AL PROMOTOR
                sbPromotor.Append(item.nomCortoPromotor + ", el cambio de rol que solicitaste para " + item.nombre_interesado + ", no ha sido aprobado por " + item.aprobador + ".</br></br>");
                sbPromotor.Append("Rol actual: " + item.t940_desrolActual + "</br>");
                sbPromotor.Append("Rol no aprobado: " + item.t940_desrolPropuesto + "</br></br>");
                sbPromotor.Append("Motivo: </br> " + item.t940_motivorechazo + "</br>");
                Correo.Enviar("PROGRESS: Cambio de rol no aprobado", sbPromotor.ToString(), item.CorreoPromotor);

                //CORREO A LOS EVALUADORES INTERMEDIOS
                IB.Progress.BLL.Profesional bllProfesional = new IB.Progress.BLL.Profesional();
                List <Profesional>          lstEvaluadores = bllProfesional.getAscendientesHastaAprobador(item.t001_idficepi_promotor);

                for (int i = 0; i < lstEvaluadores.Count; i++)
                {
                    sbOtrosEvaluadores = new StringBuilder();
                    sbOtrosEvaluadores.Append(lstEvaluadores[i].nombre + ", el cambio de rol solicitado por " + item.nombre_promotor + " para " + item.nombre_interesado + ", no ha sido aprobado por " + item.aprobador + ".</br></br>");
                    sbOtrosEvaluadores.Append("Rol actual: " + item.t940_desrolActual + "</br>");
                    sbOtrosEvaluadores.Append("Rol no aprobado: " + item.t940_desrolPropuesto + "</br></br>");
                    sbOtrosEvaluadores.Append("Motivo: </br> " + item.t940_motivorechazo + "</br>");

                    if (lstEvaluadores[i].Correo != "")
                    {
                        Correo.Enviar("PROGRESS: Información sobre cambio de rol no aprobado", sbOtrosEvaluadores.ToString(), lstEvaluadores[i].Correo);
                    }
                }

                bllProfesional.Dispose();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public static List <IB.Progress.Models.Profesional> getEvaluadores(int t001_idficepi, string perfilApl, string t001_apellido1, string t001_apellido2, string t001_nombre)
    {
        List <IB.Progress.Models.Profesional> evaluadores = null;

        IB.Progress.BLL.Profesional pro = new IB.Progress.BLL.Profesional();
        evaluadores = pro.getEvaluadoresEstadisticas(t001_idficepi, perfilApl, t001_apellido1, t001_apellido2, t001_nombre);
        pro.Dispose();
        return(evaluadores);
    }
    public static List <IB.Progress.Models.Profesional> getEvaluadores(string t001_apellido1, string t001_apellido2, string t001_nombre)
    {
        List <IB.Progress.Models.Profesional> evaluadores = null;

        IB.Progress.BLL.Profesional pro = new IB.Progress.BLL.Profesional();
        evaluadores = pro.getFic(t001_apellido1, t001_apellido2, t001_nombre);
        pro.Dispose();
        return(evaluadores);
    }
    public static string insert(TRAMITACIONCAMBIOROL_INS tcr_i, string nombreapellidosinteresado, string rolactual, string rolpropuesto, string motivo, string nombreaprobador, string correoaprobador, string nombreapellidosaprobador)
    {
        try
        {
            //Añado al objto el idpromotor
            tcr_i.t001_idficepi_promotor = ((Profesional)HttpContext.Current.Session["PROFESIONAL"]).t001_idficepi;
            IB.Progress.BLL.TramitacionCambioRol blltcr_i = new IB.Progress.BLL.TramitacionCambioRol();
            string result = blltcr_i.Insert(tcr_i);
            blltcr_i.Dispose();


            //Correo para el aprobador
            StringBuilder sb = new StringBuilder();

            sb.Append(nombreaprobador + ", " + ((IB.Progress.Models.Profesional)HttpContext.Current.Session["PROFESIONAL"]).nombrelargo.ToString() + " ha solicitado un cambio de rol para " + nombreapellidosinteresado + ". </br> Debes acceder a PROGRESS para aprobar, o no,  dicho cambio, explicando el motivo de tu decisión.</br></br>");

            sb.Append("Rol actual: " + rolactual + "</br>");
            sb.Append("Rol propuesto: " + rolpropuesto + "</br></br>");
            sb.Append("Motivo de la propuesta: </br></br>" + motivo);
            sb.Append("</br></br></br></br>Si te encuentras en las oficinas de IBERMÁTICA, puedes acceder directamente pulsando <a href=" + ConfigurationManager.AppSettings["UrlInterna"] + "/Default.aspx?APROL=true>aquí</a>");
            sb.Append("</br>Si estás fuera, puedes acceder pulsando <a href=" + ConfigurationManager.AppSettings["UrlExterna"] + "/Default.aspx?APROL=true>aquí</a>");

            if (correoaprobador != "")
            {
                Correo.Enviar("PROGRESS: Solicitud de cambio de rol", sb.ToString(), correoaprobador);
            }

            //Correo a los evaluadores intermedios
            IB.Progress.BLL.Profesional bllProfesional = new IB.Progress.BLL.Profesional();
            List <Profesional>          lstEvaluadores = bllProfesional.getAscendientesHastaAprobador(((Profesional)HttpContext.Current.Session["PROFESIONAL"]).t001_idficepi);

            StringBuilder sbEvaluadores = new StringBuilder();

            for (int i = 0; i < lstEvaluadores.Count; i++)
            {
                sbEvaluadores.Append(lstEvaluadores[i].nombre + ", " + ((IB.Progress.Models.Profesional)HttpContext.Current.Session["PROFESIONAL"]).nombrelargo.ToString() + " ha solicitado un cambio de rol para " + nombreapellidosinteresado + ", que gestionará " + nombreapellidosaprobador + ".</br></br>");
                sbEvaluadores.Append("Rol actual: " + rolactual + "</br>");
                sbEvaluadores.Append("Rol propuesto: " + rolpropuesto + "</br></br>");
                sbEvaluadores.Append("Motivo del cambio: </br></br>" + motivo);

                if (lstEvaluadores[i].Correo != "")
                {
                    Correo.Enviar("PROGRESS: Información sobre solicitud de cambio de rol", sbEvaluadores.ToString(), lstEvaluadores[i].Correo);
                }
            }

            bllProfesional.Dispose();

            return(result);
        }
        catch (Exception ex)
        {
            Smtp.SendSMTP("Error al solicitar cambio de rol", ex.ToString());
            throw ex;
        }
    }
    public static List <IB.Progress.Models.Profesional> getEvaluadoresDescendientes(int idficepi)
    {
        List <IB.Progress.Models.Profesional> evaluadores = null;

        IB.Progress.BLL.Profesional pro = new IB.Progress.BLL.Profesional();

        evaluadores = pro.getEvaluadoresDescendientes(idficepi);
        pro.Dispose();
        return(evaluadores);
    }
 public static List <IB.Progress.Models.Profesional> getFicepi(string t001_apellido1, string t001_apellido2, string t001_nombre)
 {
     IB.Progress.BLL.Profesional pro = null;
     try
     {
         List <IB.Progress.Models.Profesional> profesionales = null;
         pro           = new IB.Progress.BLL.Profesional();
         profesionales = pro.getFicepi(t001_apellido1, t001_apellido2, t001_nombre);
         pro.Dispose();
         return(profesionales);
     }
     catch (Exception)
     {
         if (pro != null)
         {
             pro.Dispose();
         }
         throw;
     }
 }
Exemple #10
0
 public static List <IB.Progress.Models.Profesional> getEvaluadoresArbol(int idficepi, string t001_apellido1, string t001_apellido2, string t001_nombre)
 {
     IB.Progress.BLL.Profesional pro = null;
     try
     {
         List <IB.Progress.Models.Profesional> evaluadores = null;
         pro         = new IB.Progress.BLL.Profesional();
         evaluadores = pro.EvaluadoresArbol(idficepi, t001_apellido1, t001_apellido2, t001_nombre);
         pro.Dispose();
         return(evaluadores);
     }
     catch (Exception ex)
     {
         if (pro != null)
         {
             pro.Dispose();
         }
         IB.Progress.Shared.Smtp.SendSMTP("Error al obtener los profesionales que dependen de un ficepi. (Árbol de dependencias)", ex.Message);
         throw ex;
     }
 }
 public static List <IB.Progress.Models.Profesional> getEvaluadores(string t001_apellido1, string t001_apellido2, string t001_nombre)
 {
     IB.Progress.BLL.Profesional pro = null;
     try
     {
         List <IB.Progress.Models.Profesional> evaluadores = null;
         pro         = new IB.Progress.BLL.Profesional();
         evaluadores = pro.getFicProfesionales(t001_apellido1, t001_apellido2, t001_nombre);
         pro.Dispose();
         return(evaluadores);
     }
     catch (Exception ex)
     {
         if (pro != null)
         {
             pro.Dispose();
         }
         IB.Progress.Shared.Smtp.SendSMTP("Error al obtener evaluadores", ex.Message);
         throw;
     }
 }
    public static List <IB.Progress.Models.Profesional> getDescendientes(int t001_idficepi, string perfilApl, string t001_apellido1, string t001_apellido2, string t001_nombre, string figura)
    {
        List <IB.Progress.Models.Profesional> evaluadores = null;
        short evaluadoroevaluado = short.Parse(figura.ToString());


        //PASAR evaluadoroevaluado
        IB.Progress.BLL.Profesional pro = new IB.Progress.BLL.Profesional();
        evaluadores = pro.getDescendientes(t001_idficepi, perfilApl, t001_apellido1, t001_apellido2, t001_nombre, evaluadoroevaluado);

        pro.Dispose();
        return(evaluadores);
    }
    public static List <IB.Progress.Models.Profesional> getProfesionales(int t001_idficepi_visualizador)
    {
        IB.Progress.BLL.Profesional pro = null;
        try
        {
            List <IB.Progress.Models.Profesional> profesionales = null;
            pro           = new IB.Progress.BLL.Profesional();
            profesionales = pro.getProfesionalesVisualizadores2(t001_idficepi_visualizador);
            pro.Dispose();

            return(profesionales);
        }
        catch (Exception ex)
        {
            if (pro != null)
            {
                pro.Dispose();
            }
            IB.Progress.Shared.Smtp.SendSMTP("Error al obtener profesionales", ex.Message);
            throw;
        }
    }
Exemple #14
0
    public static List <IB.Progress.Models.Profesional> getFicepi(int idficepiinteresado, string t001_apellido1, string t001_apellido2, string t001_nombre)
    {
        IB.Progress.BLL.Profesional pro = null;
        try
        {
            List <IB.Progress.Models.Profesional> profesionales = null;
            pro           = new IB.Progress.BLL.Profesional();
            profesionales = pro.getFicepi_Evaluadordestino(idficepiinteresado, ((IB.Progress.Models.Profesional)HttpContext.Current.Session["PROFESIONAL"]).t001_idficepi, t001_apellido1, t001_apellido2, t001_nombre);

            pro.Dispose();
            return(profesionales);
        }
        catch (Exception ex)
        {
            if (pro != null)
            {
                pro.Dispose();
            }
            Smtp.SendSMTP("Error al cargar los profesionales. (Tramitar salidas)", ex.Message);
            throw ex;
        }
    }
 public static List <IB.Progress.Models.Profesional> getSeleccionarEvaluador(int t001_evaluado_actual, int t001_evaluador_actual, string t001_apellido1, string t001_apellido2, string t001_nombre)
 {
     try
     {
         List <IB.Progress.Models.Profesional> evaluadores = null;
         IB.Progress.BLL.Profesional           pro         = new IB.Progress.BLL.Profesional();
         evaluadores = pro.getSeleccionarEvaluador(t001_evaluado_actual, t001_evaluador_actual, t001_apellido1, t001_apellido2, t001_nombre);
         pro.Dispose();
         return(evaluadores);
     }
     catch (Exception ex)
     {
         IB.Progress.Shared.Smtp.SendSMTP("Error al obtener el catálogo de evaluadores. (Gestión cambio de responsable)", ex.Message);
         throw ex;
     }
 }
    public static IB.Progress.Models.Profesional validaEvalProgress(int idficepi, int t001_idevalprogress)
    {
        try
        {
            IB.Progress.Models.Profesional profesionales = null;
            IB.Progress.BLL.Profesional    pro           = new IB.Progress.BLL.Profesional();

            profesionales = pro.validaProgress(idficepi, t001_idevalprogress);

            pro.Dispose();
            return(profesionales);
        }
        catch (Exception)
        {
            throw;
        }
    }
    public static void AceptarPropuesta(List <IB.Progress.Models.TramitacionCambioRol> oProfesional)
    {
        IB.Progress.BLL.TramitacionCambioRol solicitud = new IB.Progress.BLL.TramitacionCambioRol();

        List <IB.Progress.Models.TramitacionCambioRol> oProfbyID = null;

        StringBuilder sbPromotor         = null;
        StringBuilder sbOtrosEvaluadores = null;
        StringBuilder sbInteresado       = null;
        StringBuilder sbAprobador        = null;

        try
        {
            //Update de cambio de Rol
            solicitud.AceptarCambioRol(oProfesional);
            solicitud.Dispose();

            oProfbyID = new List <TramitacionCambioRol>();

            //Linq.. Devuelve los id promotor distintos
            //var oProfbyID2 = (from e in oProfesional
            //                  select e.t001_idficepi_promotor
            //              ).Distinct().ToList();

            //Agrupa por id promotor y select profesionales
            //var result = oProfesional.GroupBy(objeto => objeto.t001_idficepi_promotor)
            //       .Select(grp => grp.First())
            //       .ToList();

            //var newList = oProfesional.GroupBy(x => x.t001_idficepi_promotor)
            //                                      .Select(group => new { GroupID = group.Key, Profesionales = group.ToList() })
            //                                      .ToList();

            //Envío de Correos
            foreach (IB.Progress.Models.TramitacionCambioRol item in oProfesional)
            {
                //ENVIAR CORREO AL PROMOTOR
                sbPromotor = new StringBuilder();
                sbPromotor.Append(item.nomCortoPromotor + ", el cambio de rol que solicitaste para " + item.nombre_interesado + ", se ha producido y comunicado al profesional. </br></br>");

                sbPromotor.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                sbPromotor.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");

                if (item.CorreoPromotor != "")
                {
                    Correo.Enviar("PROGRESS: Cambio de rol confirmado", sbPromotor.ToString(), item.CorreoPromotor);
                }


                //ENVIAR CORREO AL INTERESADO
                sbInteresado = new StringBuilder();

                sbInteresado.Append(item.nomCortoInteresado + ", el cambio de rol solicitado por " + item.nombre_promotor + " para tí, ya es efectivo.</br></br>");

                sbInteresado.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                sbInteresado.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");

                if (item.correointeresado != "")
                {
                    Correo.Enviar("PROGRESS: Cambio de rol confirmado", sbInteresado.ToString(), item.correointeresado);
                }


                //ENVIAR CORREO AL APROBADOR
                sbAprobador = new StringBuilder();

                sbAprobador.Append(item.nomCortoAprobador + ", el cambio de rol solicitado por " + item.nombre_promotor + " para " + item.nombre_interesado + ", se ha producido y comunicado al profesional.</br></br>");

                sbAprobador.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                sbAprobador.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");

                if (item.CorreoAprobador != "")
                {
                    Correo.Enviar("PROGRESS: Cambio de rol confirmado", sbAprobador.ToString(), item.CorreoAprobador);
                }

                //ENVIAR CORREO A LOS EVALUADORES INTERMEDIOS
                IB.Progress.BLL.Profesional bllProfesional = new IB.Progress.BLL.Profesional();
                List <Profesional>          lstEvaluadores = bllProfesional.getAscendientesHastaAprobador(item.t001_idficepi_promotor);

                for (int i = 0; i < lstEvaluadores.Count; i++)
                {
                    sbOtrosEvaluadores = new StringBuilder();
                    sbOtrosEvaluadores.Append(lstEvaluadores[i].nombre + ", el cambio de rol solicitado por " + item.nombre_promotor + " para " + item.nombre_interesado + ", se ha producido y comunicado al profesional.</br></br>");
                    sbOtrosEvaluadores.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                    sbOtrosEvaluadores.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");
                    if (lstEvaluadores[i].Correo != "")
                    {
                        Correo.Enviar("PROGRESS: Información sobre cambio de rol confirmado", sbOtrosEvaluadores.ToString(), lstEvaluadores[i].Correo);
                    }
                }

                bllProfesional.Dispose();
            }
        }
        catch (Exception ex)
        {
            if (solicitud != null)
            {
                solicitud.Dispose();
            }
            throw ex;
        }
    }
    public static void AceptarCambioRol(List <IB.Progress.Models.TramitacionCambioRol> oProfesional)
    {
        IB.Progress.BLL.TramitacionCambioRol solicitud = new IB.Progress.BLL.TramitacionCambioRol();
        StringBuilder sbPromotor         = null;
        StringBuilder sbOtrosEvaluadores = null;
        StringBuilder sbInteresado       = null;
        StringBuilder sbAprobador        = null;

        try
        {
            //Update de cambio de Rol
            solicitud.AceptarCambioRol(oProfesional);
            solicitud.Dispose();

            //Envío de Correos
            foreach (IB.Progress.Models.TramitacionCambioRol item in oProfesional)
            {
                sbPromotor = new StringBuilder();

                //ENVIAR CORREO AL PROMOTOR
                sbPromotor.Append(item.nomCortoPromotor + ", el cambio de rol que solicitaste para " + item.nombre_interesado + ", se ha producido y comunicado al profesional. </br></br>");

                sbPromotor.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                sbPromotor.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");

                if (item.CorreoPromotor != "")
                {
                    Correo.Enviar("PROGRESS: Cambio de rol confirmado", sbPromotor.ToString(), item.CorreoPromotor);
                }


                //ENVIAR CORREO AL INTERESADO
                sbInteresado = new StringBuilder();

                sbInteresado.Append(item.nomCortoInteresado + ", el cambio de rol solicitado por " + item.nombre_promotor + " para ti, ya es efectivo.</br></br>");

                sbInteresado.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                sbInteresado.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");

                if (item.correointeresado != "")
                {
                    Correo.Enviar("PROGRESS: Cambio de rol confirmado", sbInteresado.ToString(), item.correointeresado);
                }


                //ENVIAR CORREO AL APROBADOR
                sbAprobador = new StringBuilder();

                sbAprobador.Append(item.nomCortoAprobador + ", el cambio de rol solicitado por " + item.nombre_promotor + " para " + item.nombre_interesado + ", se ha producido y comunicado al profesional.</br></br>");

                sbAprobador.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                sbAprobador.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");

                if (item.CorreoAprobador != "")
                {
                    Correo.Enviar("PROGRESS: Cambio de rol confirmado", sbAprobador.ToString(), item.CorreoAprobador);
                }

                //ENVIAR CORREO A LOS EVALUADORES INTERMEDIOS
                IB.Progress.BLL.Profesional bllProfesional = new IB.Progress.BLL.Profesional();
                List <Profesional>          lstEvaluadores = bllProfesional.getAscendientesHastaAprobador(item.t001_idficepi_promotor);

                for (int i = 0; i < lstEvaluadores.Count; i++)
                {
                    sbOtrosEvaluadores = new StringBuilder();
                    sbOtrosEvaluadores.Append(lstEvaluadores[i].nombre + ", el cambio de rol solicitado por " + item.nombre_promotor + " para " + item.nombre_interesado + ", se ha producido y comunicado al profesional.</br></br>");
                    sbOtrosEvaluadores.Append("Rol anterior: " + item.t940_desrolActual + "</br>");
                    sbOtrosEvaluadores.Append("Rol nuevo: " + item.t940_desrolPropuesto + "</br>");
                    if (lstEvaluadores[i].Correo != "")
                    {
                        Correo.Enviar("PROGRESS: Información sobre cambio de rol confirmado", sbOtrosEvaluadores.ToString(), lstEvaluadores[i].Correo);
                    }
                }

                bllProfesional.Dispose();
            }
        }
        catch (Exception ex)
        {
            if (solicitud != null)
            {
                solicitud.Dispose();
            }
            throw ex;
        }
    }
Exemple #19
0
    public static string[] loginUser()
    {
        string[] result = new string[2];

        DbConn dbconn = null;

        IB.Progress.BLL.Profesional cProfesional = null;
        try
        {
            //Abro conexión
            dbconn = new DbConn();
            IB.Progress.Models.Profesional oProfesional = new IB.Progress.Models.Profesional();
            cProfesional = new IB.Progress.BLL.Profesional(dbconn.dblibclass);

            IB.Progress.Models.Aplicacion oAplicacion = new IB.Progress.Models.Aplicacion();

            oAplicacion = cProfesional.Acceso();

            //Comprobamos el estado de la aplicación
            if (!oAplicacion.Estado)
            {
                result[0] = "1";
                result[1] = oAplicacion.Motivo.ToString();
                return(result);
            }


            //Esta variable de sesión la usamos para no dejar acceder a ninguna página cuando la web está en mantenimiento.
            HttpContext.Current.Session["ACCESO"] = 1;

            oProfesional = cProfesional.Obtener(HttpContext.Current.Session["IDRED"].ToString());
            if (oProfesional.bIdentificado)
            {
                cProfesional.CargarRoles(oProfesional);

                //Dejo todo el objeto el la variable de sesión PROFESIONAL
                HttpContext.Current.Session["PROFESIONAL"]         = oProfesional;
                HttpContext.Current.Session["PROFESIONAL_ENTRADA"] = oProfesional;
            }
            else
            {
                //Muestro el contenedor de usuario no autorizado.
                result[0] = "2";
                result[1] = "";
                return(result);
            }

            //Destruyo la conexión
            //Destruyo las clases
            if (cProfesional != null)
            {
                cProfesional.Dispose();
            }
            dbconn.Dispose();

            result[0] = "0";
            result[1] = "";
            return(result);
        }
        catch (Exception)
        {
            //Destruyo la conexión
            if (cProfesional != null)
            {
                cProfesional.Dispose();
            }
            dbconn.Dispose();
            throw;
        }
    }