void Mostrar_Usuarios()
 {
     dgvUsuarios.DataSource = ControlUsuarios_Modelo.ObtenerUsuarios();
     this.dgvUsuarios.ColumnHeadersDefaultCellStyle.BackColor = Color.SkyBlue;
     this.dgvUsuarios.EnableHeadersVisualStyles = false;
     this.dgvUsuarios.Columns[0].Visible        = false;
     this.dgvUsuarios.Columns[1].HeaderText     = "Usuario";
     this.dgvUsuarios.Columns[1].Width          = 65;
     this.dgvUsuarios.Columns[2].HeaderText     = "Nombres";
     this.dgvUsuarios.Columns[2].Width          = 90;
     this.dgvUsuarios.Columns[3].HeaderText     = "Apellidos";
     this.dgvUsuarios.Columns[3].Width          = 90;
     this.dgvUsuarios.Columns[4].HeaderText     = "Documento";
     this.dgvUsuarios.Columns[4].Width          = 65;
     this.dgvUsuarios.Columns[5].HeaderText     = "Fecha de Nacimiento";
     this.dgvUsuarios.Columns[5].Width          = 65;
     this.dgvUsuarios.Columns[6].Visible        = false;
     this.dgvUsuarios.Columns[6].HeaderText     = "Correo Electronico";
     this.dgvUsuarios.Columns[6].Width          = 80;
     this.dgvUsuarios.Columns[7].HeaderText     = "Empresa";
     this.dgvUsuarios.Columns[7].Width          = 120;
     this.dgvUsuarios.Columns[8].HeaderText     = "Estado";
     this.dgvUsuarios.Columns[8].Width          = 50;
     this.dgvUsuarios.Columns[9].HeaderText     = "Tipo de Usuario";
     this.dgvUsuarios.Columns[9].Width          = 90;
     this.dgvUsuarios.Columns[10].Visible       = false;
 }
 private void BtnReestablecer_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("¿Está seguro que quiere reestablecer la contraseña del usuario" + txtUsuario.Text + "?", "Confirmar reseteo de clave", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         string reestablecer = txtUsuario.Text + "primeruso";
         int    resultado    = ControlUsuarios_Modelo.Reestablecer_Clave(Validaciones.md5(reestablecer), Convert.ToInt16(txtId.Text), txtUsuario.Text);
     }
 }
 private void chkVerUsuarios_CheckedChanged(object sender, EventArgs e)
 {
     if (chkVerUsuarios.Checked == true)
     {
         this.dgvUsuarios.DataSource = ControlUsuarios_Modelo.Mostrar_Todos_Usuarios();
     }
     else
     {
         Mostrar_Usuarios();
     }
 }
 private void BtnEliminar_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("¿Está seguro que desea eliminar el registro?\n\nConsidere que si el registro posee datos dependientes no podra eliminar el usuario, lo cual se le recomienda cambiarlo de estado.", "Confirmación de Eliminación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         int proceso = ControlUsuarios_Modelo.Eliminar_Usuario(Convert.ToInt16(txtId.Text));
         if (proceso >= 1)
         {
             Mostrar_Usuarios();
             LimpiarCampos();
             activarBotones();
         }
         else
         {
             MessageBox.Show("El proceso no pudo ser completado, vuelva a intentarlo.", "Proceso fallido", MessageBoxButtons.OK, MessageBoxIcon.Stop);
         }
     }
 }
 private void BtnActualizar_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("¿Desea actualizar los datos del usuario?", "Confirmación de actualización", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         Constructor_Usuario actualizacion = new Constructor_Usuario();
         Constructor_Usuario.id_usuario = int.Parse(txtId.Text);
         actualizacion.nombres          = txtNombres.Text;
         actualizacion.apellidos        = txtApellidos.Text;
         if (radCarne.Checked == true)
         {
             radDui.Checked = false;
             maskDui.Clear();
             actualizacion.documento = txtCarne.Text;
         }
         else if (radDui.Checked == true)
         {
             radCarne.Checked = false;
             txtCarne.Clear();
             actualizacion.documento = maskDui.Text;
         }
         actualizacion.nacimiento = dtNacimiento.Text;
         actualizacion.email      = txtCorreo.Text;
         int intentos = 0;
         actualizacion.intentos        = intentos;
         actualizacion.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
         actualizacion.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
         actualizacion.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
         MemoryStream ms = new MemoryStream();
         pbFoto.Image.Save(ms, ImageFormat.Jpeg);
         byte[] aByte   = ms.ToArray();
         string decoded = Convert.ToBase64String(aByte);
         actualizacion.imagen = decoded;
         int verificar_proceso = ControlUsuarios_Modelo.Actualizar_Usuario(actualizacion);
         if (verificar_proceso >= 1)
         {
             Mostrar_Usuarios();
             LimpiarCampos();
             activarBotones();
         }
         else
         {
             MessageBox.Show("Los datos no pudieron ser actualizados, intentelo nuevamente", "Proceso fallido", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
 }
        void Agregar_Usuario()
        {
            DateTime hoy = DateTime.Today;

            if (string.IsNullOrWhiteSpace(txtUsuario.Text) ||
                string.IsNullOrWhiteSpace(txtNombres.Text) ||
                string.IsNullOrWhiteSpace(txtApellidos.Text) ||
                string.IsNullOrWhiteSpace(txtCorreo.Text) ||
                string.IsNullOrWhiteSpace(dtNacimiento.Text))
            {
                MessageBox.Show("No se puede almacenar la información debido que algunos campos estan vacíos.", "Campos vacíos", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.Date >= hoy)
            {
                MessageBox.Show("La fecha de nacimiento proporcionada no puede ser igual o mayor a la fecha actual.", "Error en fecha de nacimiento", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (maskDui.Text.Trim() == "-" && txtCarne.Text.Trim() == "")
            {
                MessageBox.Show("Brinde un documento de identificación, recuerde que puede proporcionar su numero de DUI o número de carné en caso de ser un estudiante.", "Documento faltante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.AddYears(18) > hoy && maskDui.Text.Trim() != "-")
            {
                MessageBox.Show("Usted ha proporcionado un numero de dui siendo menor de edad, verifique que los datos sean correctos", "Fecha de nacimiento incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (pbFoto.Image == null)
            {
                MessageBox.Show("Debes cargar una fotografia en el perfil del usuario.", "Datos faltantes", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Constructor_Usuario reg = new Constructor_Usuario();
                reg.usuario = txtUsuario.Text;
                string clave = Validaciones.md5(txtUsuario.Text + "primeruso");
                //MessageBox.Show(clave);
                reg.clave     = clave;
                reg.nombres   = txtNombres.Text;
                reg.apellidos = txtApellidos.Text;
                if (radCarne.Checked == true)
                {
                    radDui.Checked = false;
                    maskDui.Clear();
                    reg.documento = txtCarne.Text;
                }
                else if (radDui.Checked == true)
                {
                    radCarne.Checked = false;
                    txtCarne.Clear();
                    reg.documento = maskDui.Text;
                }
                reg.nacimiento      = dtNacimiento.Text;
                reg.email           = txtCorreo.Text;
                reg.intentos        = 0;
                reg.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
                reg.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
                reg.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
                MemoryStream ms = new MemoryStream();
                pbFoto.Image.Save(ms, ImageFormat.Jpeg);
                byte[] aByte   = ms.ToArray();
                string decoded = Convert.ToBase64String(aByte);
                reg.imagen = decoded;
                int datos = ControlUsuarios_Modelo.Ingresar_Usuario(reg);
                if (datos >= 1)
                {
                    LimpiarCampos();
                }
            }
        }
        void Registrar_Usuario()
        {
            DateTime hoy = DateTime.Today;

            if (txtNombres.Text.Trim() == "" ||
                txtApellidos.Text.Trim() == "" ||
                maskDui.Text.Trim() == "" && txtCarne.Text.Trim() == "" ||
                txtUsuario.Text.Trim() == "" ||
                txtEmail.Text == "" ||
                txtClave.Text.Trim() == "" ||
                txtConfClave.Text.Trim() == "")
            {
                MessageBox.Show("Algunos campos están vacíos.", "Datos faltantes", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (pbFoto.Image == null)
            {
                MessageBox.Show("Ha faltado cargar una foto al perfil del nuevo usuario", "Foto faltante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (txtClave.Text != txtConfClave.Text)
            {
                MessageBox.Show("Las claves no coinciden, vuelva a ingresarlas", "Claves no coinciden", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txtClave.Clear();
                txtConfClave.Clear();
            }
            else if (Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta2.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta3.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta2.SelectedValue) == Convert.ToInt16(cmbPregunta3.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta2.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta3.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue))
            {
                MessageBox.Show("Verique que ha seleccionado y respondido a preguntas diferentes, no esta permitido responder dos veces a la misma pregunta.", "Verificación de pregunta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.Date >= hoy)
            {
                MessageBox.Show("Verifique la fecha seleccionada, ya que es igual o pertenece a una fecha futura", "Error en fecha de nacimiento", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Constructor_Usuario user = new Constructor_Usuario();
                user.usuario   = txtUsuario.Text;
                user.clave     = Validaciones.md5(txtConfClave.Text);
                user.nombres   = txtNombres.Text;
                user.apellidos = txtApellidos.Text;
                if (radCarne.Checked == true)
                {
                    user.documento = txtCarne.Text;
                }
                else if (radDui.Checked == true)
                {
                    user.documento = maskDui.Text;
                }
                user.nacimiento      = dtNacimiento.Text;
                user.email           = txtEmail.Text;
                user.intentos        = 0;
                user.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
                user.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
                user.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
                MemoryStream ms = new MemoryStream();
                pbFoto.Image.Save(ms, ImageFormat.Jpeg);
                byte[] aByte   = ms.ToArray();
                string encoded = Convert.ToBase64String(aByte);
                user.imagen = encoded;
                int datos = ControlUsuarios_Modelo.Ingresar_Usuario(user);
                if (datos >= 1)
                {
                    ControlUsuarios_Modelo.Buscar_usuario(txtUsuario.Text);
                    txtId.Text = Constructor_Usuario.id_usuario.ToString();
                    Constructor_Respuestas res = new Constructor_Respuestas();
                    for (int i = 0; i < 4; i++)
                    {
                        switch (i)
                        {
                        case 0:
                            res.respuesta   = Validaciones.md5(txtRespuesta1.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta1.SelectedValue);
                            int res1 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 1:
                            res.respuesta   = Validaciones.md5(txtRespuesta2.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta2.SelectedValue);
                            int res2 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 2:
                            res.respuesta   = Validaciones.md5(txtRespuesta3.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta3.SelectedValue);
                            int res3 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 3:
                            res.respuesta   = Validaciones.md5(txtRespuesta4.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta4.SelectedValue);
                            int res4 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        default:
                            break;
                        }
                    }
                    MessageBox.Show("Hemos finalizado con la configuración inicial, en este momento te mostrare el Inicio de Sesión para que escribas las credenciales del usuario que acabas de crear.", "Proceso finalizado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    FrmLogin log = new FrmLogin();
                    log.Show();
                    this.Close();
                }
            }
        }