예제 #1
0
 protected void _btnGuardar_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);
         Control controlEditable;    //Textbox que se enceuntra en cada celda del grid, se utiliza para poder editar la celda
         List<List<object>> turnos = new List<List<object>>();
         List<object> turno;
         for (int k = 0; k < _gridHorario.Rows.Count; k++)
         {
             for (int i = 2; i < _gridHorario.Rows[k].Cells.Count; i++)
             {
                 controlEditable = _gridHorario.Rows[k].Cells[i].Controls[3];
                 if (!((TextBox)controlEditable).Text.Equals(""))
                 {
                     turno = new List<object>();
                     turno.Add((int)ViewState["IH"]);  //Obtener el PK del horario
                     // Obtener el día
                     switch (i)
                     {
                         case 2:
                             turno.Add('L');
                             break;
                         case 3:
                             turno.Add('K');
                             break;
                         case 4:
                             turno.Add('M');
                             break;
                         case 5:
                             turno.Add('J');
                             break;
                         case 6:
                             turno.Add('V');
                             break;
                         case 7:
                             turno.Add('S');
                             break;
                     }
                     //Obtener las hora
                     switch (k)
                     {
                         case 0:
                             turno.Add("7:30");
                             turno.Add("11:30");
                             break;
                         case 1:
                             turno.Add("11:30");
                             turno.Add("15:30");
                             break;
                         case 2:
                             turno.Add("15:30");
                             turno.Add("19:30");
                             break;
                         case 3:
                             turno.Add("19:30");
                             turno.Add("22:30");
                             break;
                     }
                     turno.Add(((TextBox)controlEditable).Text); //Obtener el nombre
                     turno.Add(_sesion.obtenerLoginUsuario(Request.Cookies["PS"]));   //Obtener el login
                     turnos.Add(turno);  //Agregar el turno a la lista de turnos
                 }
             }
         }
         // Se revisa que haya al menos un turno en el horario
         if (turnos.Count > 0)
         {
             _controlador = new ControladorHorario();
             bool completado = _controlador.insertarTurnosDisponibilidad(turnos);
             if (completado)
             {
                 _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                 _lblMensaje.Text = "Se ha guardado su horario con exito.";
                 _imgMensaje.Visible = true;
                 _lblMensaje.Visible = true;
             }
             else
             {
                 _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                 _lblMensaje.Text = "No se pudo guardar su horario. Por favor buelva a intentar más tarde.";
                 _imgMensaje.Visible = true;
                 _lblMensaje.Visible = true;
             }
             Session["turnosUsuari"] = new List<List<object>>();  //Limpiar los turnos para que no los buelva a cargar
             _gridHorario.DataSource = cargarHorarioDisponibilidad((int)ViewState["IH"]);
             _gridHorario.DataBind();
             _btnHorario.Enabled = true;
             _btnGuardar.Enabled = false;
         }
     }
     catch (Exception ex)    // Si algo falla se reporta el error en la Bitácora de Errores del sistema
     {
         _controlador = new ControladorHorario();
         _controlador.insertarBitacoraError(ex.ToString(), "");
     }
 }