/// <summary>
        /// Método que se encarga de actualizar los datos del grafico y de la tabla
        /// </summary>

        private void actualizarDatos()
        {
            try
            {
                _controlador     = new ControladorPEUL();
                _controlador     = new ControladorPEUL();
                _usoLaboratorios = _controlador.calcularUsoActual(); //Obtener los datos del uso de los laboratorios
                if (_usoLaboratorios.Count > 0)                      //Revisa que se hayan obtenido los datos del uso de los laboratorios
                {
                    cargarDatos(_usoLaboratorios);
                }
                else
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                    _lblMensaje.Text     = "Se ha producido un error al obtener los datos del uso de los laboratorios.";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                }
            }
            catch (Exception ex)
            {
                _controlador = new ControladorPEUL();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }
Beispiel #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         _sesion       = new Sesion();
         _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
         if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
         {
             Response.Redirect("../Autentificacion/Login.aspx"); //
         }
         else                                                    // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
         {
             Response.SetCookie(_cookieActual);
         }
         _controladorPEUL = new ControladorPEUL();                 // Inicializar el controlador
         String grupoUsuario = _sesion.obtenerGrupoUsuario(_cookieActual);
         if ((grupoUsuario.Equals("prof")) || (grupoUsuario.Equals("users")) || (grupoUsuario.Equals("ests")) ||
             (grupoUsuario.Equals("operadores")))
         {
             Notificacion notificacion = new Notificacion();
             notificacion.enviarCorreo("Se ha intentado realizar un acceso no permitido por parte del usuario " + _sesion.obtenerLoginUsuario(_cookieActual) + " a la página de GestionLugar.aspx", "*****@*****.**", "Violación de Seguridad");
             Response.Redirect("../Compartido/AccesoDenegado.aspx");
         }
         _listaTipoLugar = _controladorPEUL.consultarTipoLugar();
         for (int i = 0; i < _listaTipoLugar.Count; i++)                 // Llenar el drop down de tipos de lugar
         {
             _ddlTipoLugar.Items.Add(_listaTipoLugar.ElementAt(i).ElementAt(1).ToString());
         }
         llenarTablaLugares();                 // Llenar el grid de lugares
     }
 }
Beispiel #3
0
        /// <summary>
        /// Método que se encarga de manejar el evento al crear un nuevo lugar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        protected void _btnCrearLugar_Click(object sender, EventArgs e)
        {
            _sesion          = new Sesion();
            _controladorPEUL = new ControladorPEUL();
            _cookieActual    = _sesion.verificarValidez(Request.Cookies["PS"]);
            if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
            {
                Response.Redirect("../Autentificacion/Login.aspx"); //
            }
            else                                                    // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
            {
                Response.SetCookie(_cookieActual);
            }
            if ((_txtCapacidad.Text.Equals("")) || (_txtDescripcion.Text.Equals("")) || (_txtLoginEncargado.Text.Equals("")) ||
                (_txtNombreLugar.Text.Equals("")) || (_ddlTipoLugar.SelectedIndex == 0))                 // Verificar que todos los campos han sido especificados
            {
                _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                _lblMensaje.Text     = "Debe especificar todos los campos del formulario";
                _imgMensaje.Visible  = true;
                _lblMensaje.Visible  = true;
            }
            else             // Intentar crea el nuevo lugar
            {
                int resultadoCreacion = _controladorPEUL.crearLugar(_txtNombreLugar.Text, _txtLoginEncargado.Text, _txtCapacidad.Text, _txtDescripcion.Text, Convert.ToInt32(_listaTipoLugar.ElementAt(_ddlTipoLugar.SelectedIndex - 1).ElementAt(0)), _sesion.obtenerLoginUsuario(_cookieActual));
                if (resultadoCreacion == 1)                 // Si se pudo crear el lugar
                {
                    _imgMensaje.ImageUrl        = "~/Imagenes/ok.png";
                    _lblMensaje.Text            = "Se ha creado con éxito el lugar";
                    _imgMensaje.Visible         = true;
                    _lblMensaje.Visible         = true;
                    _txtDescripcion.Text        = "";
                    _txtCapacidad.Text          = "";
                    _txtLoginEncargado.Text     = "";
                    _txtNombreLugar.Text        = "";
                    _ddlTipoLugar.SelectedIndex = 0;
                    llenarTablaLugares();
                }
                else if (resultadoCreacion == 0) // Hubo error al crear el lugar
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                    _lblMensaje.Text     = "Ha habido un error al crear el lugar";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                }
                else // Si el login que se especifica no es encontrado en el LDAP
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                    _lblMensaje.Text     = "No hay ningún usuario registrado con el login proporcionado";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                }
            }
        }
Beispiel #4
0
        private int _errorCarga;                               // Para manejo de errores en el tiempo de carga de la página
        // 0: No se cargaron laboratorios
        // 1: No se cargaron los estados (Comentarios predefinidos)
        // 2: No se han cargado ni estados ni laboratorios
        // 3: No se obtuvieron datos del uso de los laboratorios
        // 4: No se pudo cargar ninguno de los elementos de la pagina
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack) // Solo cargar los datos la primera vez que la página ha sido cargada
                {
                    _sesion       = new Sesion();
                    _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                    if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                    {
                        Response.Redirect("../Autentificacion/Login.aspx"); //
                    }
                    else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                    {
                        Response.SetCookie(_cookieActual);
                    }
                    _errorCarga      = -1;
                    _controlador     = new ControladorPEUL();
                    _usoLaboratorios = _controlador.calcularUsoActual();    //Obtener los datos del uso de los laboratorios
                    if (_usoLaboratorios != null)
                    {
                        cargarDatos(_usoLaboratorios);  //Llama al método que se encarga de cargar los datos en el grid y en el grafico
                    }
                    else
                    {
                        if (_errorCarga == 2)
                        {
                            _errorCarga = 4;
                        }
                        else
                        {
                            _errorCarga = 3;
                        }
                    }

                    switch (_errorCarga)    //Verificar si hubo algun error
                    {
                    case 3:
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Text     = "No hay registro del uso de los laboratorios.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                _controlador = new ControladorPEUL();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }
Beispiel #5
0
        /// <summary>
        /// Método que se encarga de manejar el evento del botón de consultar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        protected void _btnConsultar_Click(object sender, EventArgs e)
        {
            _controladorPEUL = new ControladorPEUL();
            _sesion          = new Sesion();
            _cookieActual    = _sesion.verificarValidez(Request.Cookies["PS"]);
            if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
            {
                Response.Redirect("../Autentificacion/Login.aspx"); //
            }
            else                                                    // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
            {
                Response.SetCookie(_cookieActual);
            }
            if ((_ddlLaboratorios.SelectedIndex == 0) || (_txtFechaInicio.Text.Equals("")) || (_txtFechaFinal.Text.Equals("")))
            {
                _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                _lblMensaje.Text     = "Debe especificar todos los campos del formulario.";
                _imgMensaje.Visible  = true;
                _lblMensaje.Visible  = true;
            }
            else // Buscar los reportes
            {
                _tablaReportes = _controladorPEUL.consultarReportesUso(_listaLaboratorios.ElementAt(_ddlLaboratorios.SelectedIndex - 1).ElementAt(0).ToString(), _txtFechaInicio.Text, _txtFechaFinal.Text);
                if (_tablaReportes == null)
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                    _lblMensaje.Text     = "Ha habido un error al encontrar los reportes de uso de laboratorio.";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                }
                else if (_tablaReportes.Rows.Count == 0)
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                    _lblMensaje.Text     = "No hay reportes disponibles.";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                    _gvwRegistro.Visible = false;
                }
                else // Llenar la tabla
                {
                    _imgMensaje.Visible     = false;
                    _lblMensaje.Visible     = false;
                    _gvwRegistro.Visible    = true;
                    _gvwRegistro.DataSource = _tablaReportes;
                    _gvwRegistro.DataBind();
                }
            }
        }
        /// <summary>
        /// Método que se encarga de cargar los datos en el grid y en el grafico
        /// </summary>
        /// <param name="datosUso">Recibe una lista de listas de objetos con todos los datos del uso de los laboratorios</param>

        private void cargarDatos(List <List <object> > datosUso)
        {
            try
            {
                // Crear el data table utilizado por el grafico
                _dtGrafico = new DataTable("Datos");
                _dtGrafico.Columns.Add(new DataColumn("Computadoras"));
                _dtGrafico.Columns.Add(new DataColumn("Laptops"));
                _dtGrafico.Columns.Add(new DataColumn("Laboratorio"));

                //Crear el datatable utilizado por el grid
                _dtDatosUso = new DataTable("Datos");
                _dtDatosUso.Columns.Add(new DataColumn("Laboratorio"));
                _dtDatosUso.Columns.Add(new DataColumn("Operador"));
                _dtDatosUso.Columns.Add(new DataColumn("UltimoRegistro"));
                _dtDatosUso.Columns.Add(new DataColumn("Porcentaje"));
                _dtDatosUso.Columns.Add(new DataColumn("Comentario"));

                // Cargar los datatable que utiliza el grid con los datos del uso de los laboratorios y el datatable que utiliza el grafico
                foreach (List <object> datos in datosUso)
                {
                    //Llenar datatable utilizado por el grafico
                    _dtGrafico.Rows.Add(datos[4], datos[5], datos[0]);
                    //Llenar datatable utilizado por el grid
                    _dtDatosUso.Rows.Add(datos[0], datos[1], datos[2], Convert.ToInt32(datos[6]) + "%", datos[3]);
                }
                //Cargar los datos de la base en el grid
                _gridUsoLaboratorio.DataSource = _dtDatosUso;
                _gridUsoLaboratorio.DataBind();

                //Cargar los datos de la base en el grafico y definir ejes X y Y
                _chtUsoLaboratorio.DataSource = _dtGrafico;
                _chtUsoLaboratorio.Series["Computadoras"].XValueMember  = "Laboratorio";
                _chtUsoLaboratorio.Series["Computadoras"].YValueMembers = "Computadoras";
                _chtUsoLaboratorio.Series["Laptops"].XValueMember       = "Laboratorio";
                _chtUsoLaboratorio.Series["Laptops"].YValueMembers      = "Laptops";
                _chtUsoLaboratorio.DataBind();
            }
            catch (Exception ex)
            {
                _controlador = new ControladorPEUL();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }
Beispiel #7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         _sesion       = new Sesion();
         _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
         if (_cookieActual == null)                 // Si la cookie expira redirecciona a la pantalla de Login
         {
             Response.Redirect("../Autentificacion/Login.aspx");
         }
         else                 // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
         {
             Response.SetCookie(_cookieActual);
         }
         _controladorPEUL = new ControladorPEUL();
         String grupoUsuario = _sesion.obtenerGrupoUsuario(_cookieActual);
         if ((grupoUsuario.Equals("prof")) || (grupoUsuario.Equals("users")) || (grupoUsuario.Equals("ests")) ||
             (grupoUsuario.Equals("operadores")))                             // Reportar si un usuario autenticado intenta hacer ingreso a una página que no tiene permiso
         {
             Notificacion notificacion = new Notificacion();
             notificacion.enviarCorreo("Se ha intentado realizar un acceso no permitido por parte del usuario " + _sesion.obtenerLoginUsuario(_cookieActual) + " a la página de ConsultarReporteUso.aspx", "*****@*****.**", "Violación de Seguridad");
             Response.Redirect("../Compartido/AccesoDenegado.aspx");
         }
         _listaLaboratorios = _controladorPEUL.obtenerLaboratorios(); // Obtener laboratorios
         if (_listaLaboratorios != null)
         {
             _ddlLaboratorios.Items.Add("Seleccionar");
             for (int i = 0; i < _listaLaboratorios.Count; i++)
             {
                 _ddlLaboratorios.Items.Add(_listaLaboratorios.ElementAt(i).ElementAt(1).ToString()); // Llenar el _ddlLaboratorios con los nombres de los labs
             }
         }
         else
         {
             _ddlLaboratorios.Items.Clear();
             _ddlLaboratorios.Items.Add("No hay laboratorios disponibles");
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Text     = "Se ha producido un error al obtener los laboratorios.";
             _imgMensaje.Visible  = true;
             _lblMensaje.Visible  = true;
         }
     }
 }
Beispiel #8
0
        /// <summary>
        /// Método que se encarga de llenar el grid de lugares
        /// </summary>

        private void llenarTablaLugares()
        {
            _controladorPEUL   = new ControladorPEUL();
            _tablaDatosLugares = _controladorPEUL.obtenerDatosLugares();
            if (_tablaDatosLugares == null)
            {
                _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                _lblMensaje.Text     = "Los datos de lugares no han podido ser cargados";
                _imgMensaje.Visible  = true;
                _lblMensaje.Visible  = true;
            }
            else if (_tablaDatosLugares.Rows.Count == 0)
            {
                _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                _lblMensaje.Text     = "No hay lugares registrados en el sistema.";
                _imgMensaje.Visible  = true;
                _lblMensaje.Visible  = true;
            }
            else
            {
                _gvwLugares.DataSource = _tablaDatosLugares;
                _gvwLugares.DataBind();
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) // Solo cargar los datos la primera vez que la página ha sido cargada
            {
                _sesion       = new Sesion();
                _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                {
                    Response.Redirect("../Autentificacion/Login.aspx"); //
                }
                else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                {
                    Response.SetCookie(_cookieActual);
                }
                _controlador = new ControladorPEUL();
                string grupoUsuario = _sesion.obtenerGrupoUsuario(_cookieActual);
                string loginUsuario = _sesion.obtenerLoginUsuario(_cookieActual);
                if ((grupoUsuario.Equals("prof")) || (grupoUsuario.Equals("users")) || (grupoUsuario.Equals("ests")) ||
                    (grupoUsuario.Equals("operadores")))
                {
                    _controlador.insertarBitacoraError("Se ha intentado realizar un acceso no permitido por parte del usuario " + loginUsuario + " a la página de GenerarEstadisticaUso.aspx", "");
                    Response.Redirect("../Compartido/AccesoDenegado.aspx");
                }
                _laboratorios = _controlador.obtenerLaboratorios();
                _Semestres    = _controlador.obtenerSemestres();
                var _errores = new int[2];
                _errores[0] = 0;           //Error al cargar Laboratorios
                _errores[1] = 0;           //Error al cargar Semestres

                if (_laboratorios != null) // Llenar _ddlLaboratorios si se encontraton datos
                {
                    for (int i = 0; i < _laboratorios.Count; i++)
                    {
                        var item = new ListItem(_laboratorios.ElementAt(i).ElementAt(1).ToString(), Convert.ToString(_laboratorios.ElementAt(i).ElementAt(0)));
                        _ddlLaboratorios.Items.Add(item); // Obtiene los nombres de los laboratorios encontrados
                    }
                }
                else // No se encontraron laboratorios
                {
                    _errores [0] = 1;
                }

                if (_Semestres != null) // Llenar _ddlSemestreInicio y final si se encontraton datos
                {
                    for (int i = 0; i < _Semestres.Count; i++)
                    {
                        var item = new ListItem(_Semestres.ElementAt(i).ElementAt(1).ToString(), _Semestres.ElementAt(i).ElementAt(2).ToString());
                        _ddlSemestreInicio.Items.Add(item);
                        // Obtiene los nombres de los Semestres encontrados
                        item = new ListItem(_Semestres.ElementAt(i).ElementAt(1).ToString(), _Semestres.ElementAt(i).ElementAt(3).ToString());
                        _ddlSemestreFinal.Items.Add(item);
                    }
                }
                else // No se encontraron semestres
                {
                    _errores[1] = 1;
                }

                if (_errores[0] == 1) // Detectar errores
                {
                    if (_errores[1] == 1)
                    {
                        _ddlLaboratorios.Items.Clear();
                        _ddlSemestreFinal.Items.Clear();
                        _ddlSemestreInicio.Items.Clear();
                        _ddlLaboratorios.Items.Add("No hay laboratorios disponibles");
                        _ddlSemestreInicio.Items.Add("No hay semestres disponibles");
                        _ddlSemestreFinal.Items.Add("No hay semestres disponibles");

                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Text     = "Error al cargar los de semestres y laboratorios";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                    }
                    else
                    {
                        _ddlLaboratorios.Items.Clear();
                        _ddlLaboratorios.Items.Add("No hay laboratorios disponibles");

                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Text     = "Error al cargar los laboratorios.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                    }
                }
                if (_errores[1] == 1) // Detectar errores
                {
                    if (_errores[0] == 1)
                    {
                        _ddlLaboratorios.Items.Clear();
                        _ddlSemestreFinal.Items.Clear();
                        _ddlSemestreInicio.Items.Clear();
                        _ddlLaboratorios.Items.Add("No hay laboratorios disponibles");
                        _ddlSemestreInicio.Items.Add("No hay semestres disponibles");
                        _ddlSemestreFinal.Items.Add("No hay semestres disponibles");

                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Text     = "Error al cargar los de semestres y laboratorios";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                    }
                    else
                    {
                        _ddlLaboratorios.Items.Clear();
                        _ddlLaboratorios.Items.Add("No hay semestres disponibles");

                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Text     = "Erro al cargar los semestres";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                    }
                }

                var dt = new DataTable("Datos");
                dt.Columns.Add(new DataColumn("Uso"));
                dt.Columns.Add(new DataColumn("Periodos"));

                dt.Rows.Add(15, "Enero-2010");
                dt.Rows.Add(10, "Febrero-2010");
                dt.Rows.Add(5, "Marzo-2010");
                dt.Rows.Add(35, "Abril-2010");
                dt.Rows.Add(90, "Mayo-2010");
                dt.Rows.Add(50, "Junio-2010");

                //Cargar los datos de la base y define ejes X y Y
                _chtEstadisticas.DataSource = dt;
                _chtEstadisticas.Series["_serieUso"].XValueMember  = "Periodos";
                _chtEstadisticas.Series["_serieUso"].YValueMembers = "Uso";
                _chtEstadisticas.DataBind();

                _chtEstadisticas.Series["_serieUso"]["ShowMarkerLines"]           = "True";
                _chtEstadisticas.ChartAreas["_chartAreaEstadisticas"].AxisX.Title = "Fechas";
                _chtEstadisticas.ChartAreas["_chartAreaEstadisticas"].AxisY.Title = "Porcentaje de uso";

                dt = new DataTable("Datos");
                dt.Columns.Add(new DataColumn("Uso"));
                dt.Columns.Add(new DataColumn("Periodos"));

                dt.Rows.Add(8, "Enero-2010");
                dt.Rows.Add(2, "Febrero-2010");
                dt.Rows.Add(6, "Marzo-2010");
                dt.Rows.Add(5, "Abril-2010");
                dt.Rows.Add(15, "Mayo-2010");
                dt.Rows.Add(10, "Junio-2010");

                //Cargar los datos de la base y define ejes X y Y
                _chtEstadisticasLaptops.DataSource = dt;
                _chtEstadisticasLaptops.Series["_serieUsoLaptop"].XValueMember  = "Periodos";
                _chtEstadisticasLaptops.Series["_serieUsoLaptop"].YValueMembers = "Uso";
                _chtEstadisticasLaptops.DataBind();

                _chtEstadisticasLaptops.Series["_serieUsoLaptop"]["ShowMarkerLines"]            = "True";
                _chtEstadisticasLaptops.ChartAreas["_chartAreaEstadisticasLaptops"].AxisX.Title = "Fechas";
                _chtEstadisticasLaptops.ChartAreas["_chartAreaEstadisticasLaptops"].AxisY.Title = "Cantidad de laptops";

                UpdatePanel.Update();
            }
        }
Beispiel #10
0
        protected void _btnGuardar_Click(object sender, EventArgs e)
        {
            _sesion          = new Sesion();
            _controladorPEUL = new ControladorPEUL();
            _cookieActual    = _sesion.verificarValidez(Request.Cookies["PS"]);
            if (_cookieActual == null)             // Si la cookie expira redirecciona a la pantalla de Login
            {
                Response.Redirect("../Autentificacion/Login.aspx");
            }
            else             // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
            {
                Response.SetCookie(_cookieActual);
            }
            String       pkLugar        = ((Label)_gvwLugares.Rows[(int)ViewState["filaSeleccionada"]].FindControl("_lblPKLugar")).Text; // PK del lugar que se está editando puesto en una columna oculta
            String       nombreLugar    = ((TextBox)_gvwLugares.Rows[(int)ViewState["filaSeleccionada"]].Cells[1].FindControl("_txtLugares")).Text;
            String       capacidad      = ((TextBox)_gvwLugares.Rows[(int)ViewState["filaSeleccionada"]].FindControl("_txtCapacidad")).Text;
            String       descripcion    = ((TextBox)_gvwLugares.Rows[(int)ViewState["filaSeleccionada"]].FindControl("_txtDescripcion")).Text;
            String       loginEncargado = ((TextBox)_gvwLugares.Rows[(int)ViewState["filaSeleccionada"]].FindControl("_txtLogin")).Text;
            DropDownList tipo           = (DropDownList)_gvwLugares.Rows[(int)ViewState["filaSeleccionada"]].FindControl("_ddlTipo");
            DropDownList activo         = (DropDownList)_gvwLugares.Rows[(int)ViewState["filaSeleccionada"]].FindControl("_ddlestado");
            Boolean      activoLugar;        // Indica si el lugar esta habilitado o no

            if ((tipo.SelectedIndex != 0) && (!nombreLugar.Equals("")) && (!capacidad.Equals("")) && (!descripcion.Equals("")) &&
                (!loginEncargado.Equals("")) && (activo.SelectedIndex != 0))
            {
                if (activo.SelectedIndex == 1)
                {
                    activoLugar = true; // El lugar esta habilitado
                }
                else
                {
                    activoLugar = false; // El lugar esta inhabilitado
                }
                int resultado = _controladorPEUL.modificarLugar(pkLugar, nombreLugar, loginEncargado, capacidad, descripcion, activoLugar, Convert.ToInt32(_listaTipoLugar.ElementAt(tipo.SelectedIndex - 1).ElementAt(0)), _sesion.obtenerLoginUsuario(_cookieActual));
                if (resultado == 1)
                {
                    _imgMensaje.ImageUrl  = "~/Imagenes/ok.png";
                    _lblMensaje.Text      = "Se han modificado los datos del lugar con éxito";
                    _imgMensaje.Visible   = true;
                    _lblMensaje.Visible   = true;
                    _gvwLugares.EditIndex = -1;
                    llenarTablaLugares();
                    _btnCancelar.Enabled           = false;
                    _btnGuardar.Enabled            = false;
                    _gvwLugares.Columns[7].Visible = true;
                }
                else if (resultado == 0)
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                    _lblMensaje.Text     = "Ha habido un error al intentar modificar los datos del lugar";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                }
                else
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                    _lblMensaje.Text     = "El login proporcionado no corresponde a ningún usuario del sistema";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                }
            }
            else
            {
                _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                _lblMensaje.Text     = "Debe especificar todos los campos del formulario";
                _imgMensaje.Visible  = true;
                _lblMensaje.Visible  = true;
            }
        }
        private int _errorCarga;                            // Para manejo de errores en el tiempo de carga de la página
        // 0: No se cargaron laboratorios
        // 1: No se cargaron los estados (Comentarios predefinidos)
        // 2: No se han cargado ni estados ni laboratorios
        // 3: No se obtuvieron datos del uso de los laboratorios
        // 4: No se pudo cargar ninguno de los elementos de la pagina
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack) // Solo cargar los datos la primera vez que la página ha sido cargada
                {
                    _sesion       = new Sesion();
                    _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                    if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                    {
                        Response.Redirect("../Autentificacion/Login.aspx"); //
                    }
                    else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                    {
                        Response.SetCookie(_cookieActual);
                    }
                    _errorCarga  = -1;
                    _controlador = new ControladorPEUL();
                    string grupoUsuario = _sesion.obtenerGrupoUsuario(Request.Cookies["PS"]);
                    if ((grupoUsuario.Equals("prof")) || (grupoUsuario.Equals("users")) || (grupoUsuario.Equals("ests")))
                    {
                        _controlador.insertarBitacoraError("Se ha intentado realizar un acceso no permitido por parte del usuario " + _sesion.obtenerLoginUsuario(Request.Cookies["PS"]) + " a la página de RegistroUsoLaboratorio.aspx", "");
                        Response.Redirect("../Compartido/AccesoDenegado.aspx");
                    }
                    _laboratorios = _controlador.obtenerLaboratorios(); //Obtener los laboratorios
                    if (_laboratorios != null)
                    {
                        foreach (List <object> lab in _laboratorios)
                        {
                            _ddlLaboratorio.Items.Add(lab[1].ToString());    //Inserta los nombres de los laboratorios en _ddlLaboratorio
                        }
                    }
                    else
                    {
                        _errorCarga = 0;
                    }

                    _estados = _controlador.obtenerEstadoLaboratorio(); //Obtener los estados de los laboratorios
                    if (_estados.Count > 0)
                    {
                        foreach (List <object> estado in _estados)
                        {
                            _ddlEstado.Items.Add(estado[1].ToString()); //Insertar las descripciones de los estados en _ddlEstado
                        }
                    }
                    else
                    {
                        if (_errorCarga == 0)
                        {
                            _errorCarga = 2;
                        }
                        else
                        {
                            _errorCarga = 1;
                        }
                    }

                    _usoLaboratorios = _controlador.calcularUsoActual();    //Obtener los datos del uso de los laboratorios
                    if (_usoLaboratorios != null)
                    {
                        cargarDatos(_usoLaboratorios);  //Llama al método que se encarga de cargar los datos en el grid y en el grafico
                    }
                    else
                    {
                        if (_errorCarga == 2)
                        {
                            _errorCarga = 4;
                        }
                        else
                        {
                            _errorCarga = 3;
                        }
                    }

                    switch (_errorCarga)    //Verificar si hubo algun error
                    {
                    case 0:
                        _ddlLaboratorio.Items.Clear();
                        _ddlLaboratorio.Items.Add("No hay lugares disponibles");
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Text     = "No hay lugares disponibles.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                        break;

                    case 1:
                        _ddlEstado.Items.Clear();
                        _ddlEstado.Items.Add("No hay estados disponibles");
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Text     = "No hay estados disponibles.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                        break;

                    case 2:
                        _ddlLaboratorio.Items.Clear();
                        _ddlLaboratorio.Items.Add("No hay lugares disponibles");
                        _ddlEstado.Items.Clear();
                        _ddlEstado.Items.Add("No hay estados disponibles");
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Text     = "No hay lugares y estados disponibles.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                        break;

                    case 3:
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Text     = "No hay registro del uso de los laboratorios.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                        break;

                    case 4:
                        _ddlLaboratorio.Items.Clear();
                        _ddlLaboratorio.Items.Add("No hay lugares disponibles");
                        _ddlEstado.Items.Clear();
                        _ddlEstado.Items.Add("No hay estados disponibles");
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Text     = "No hay lugares, estados y registro de uso de los laboratorios disponibles.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                _controlador = new ControladorPEUL();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }
        protected void _btnRegistrar_Click(object sender, EventArgs e)
        {
            try
            {
                _sesion       = new Sesion();
                _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                {
                    Response.Redirect("../Autentificacion/Login.aspx"); //
                }
                else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                {
                    Response.SetCookie(_cookieActual);
                }
                _controlador = new ControladorPEUL();
                List <object> registro = new List <object>(); //Lista que guarda los datos del registro
                if (_ddlLaboratorio.SelectedIndex != 0)       //Revisa que se haya indicado el laboratorio en el cual se va a realizar el registro
                {
                    registro.Add(_laboratorios[_ddlLaboratorio.SelectedIndex - 1][0]);

                    registro.Add(_estados[_ddlEstado.SelectedIndex][0]);
                    if ((!_txtCantidadUsuarios.Text.Equals("")) && (!_txtCantidadLaptops.Text.Equals("")))      //Revisa que se hayan indicado la cantidad de usuarios y laptops
                    {
                        registro.Add(_txtCantidadUsuarios.Text);
                        registro.Add(_txtCantidadLaptops.Text);
                        registro.Add(_txtComentario.Text);
                        registro.Add(_sesion.obtenerLoginUsuario(Request.Cookies["PS"]));
                        _usoLaboratorios = _controlador.registrarPeul(registro);
                        //Limpia los campos
                        _ddlLaboratorio.SelectedIndex = 0;
                        _ddlEstado.SelectedIndex      = 0;
                        _txtCantidadLaptops.Text      = "";
                        _txtCantidadUsuarios.Text     = "";
                        _txtComentario.Text           = "";
                        _imgMensaje.Visible           = false;
                        _lblMensaje.Visible           = false;
                        if (_usoLaboratorios != null)                                     // Revisa que se hayan obtenido los datos del uso de los laboratorios
                        {
                            cargarDatos(_usoLaboratorios);
                        }
                        else
                        {
                            _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                            _lblMensaje.Text     = "Se ha producido un error al obtener los datos del uso de los laboratorios.";
                            _imgMensaje.Visible  = true;
                            _lblMensaje.Visible  = true;
                        }
                    }
                    else
                    {
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Text     = "Tiene que indicar la cantidad de usuarios en las computadoras y laptops";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                    }
                }
                else
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                    _lblMensaje.Text     = "Tiene que especificar primero un laboratorio";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                }
            }
            catch (Exception ex)
            {
                _controlador = new ControladorPEUL();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }