//Agrega un usuario nuevo a la base de datos
        private void btnAgregarUsuario_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(txtRutUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Rut no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (String.IsNullOrEmpty(txtNombreUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Nombre no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (String.IsNullOrEmpty(txtApellidoUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Apellido no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (String.IsNullOrEmpty(txtEmailUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Email no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (cboTipoUsuario.SelectedIndex == -1)
            {
                MessageBox.Show("Debe selecionar un tipo de usuario.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (controladorUsuario.BuscarUsuario(txtRutUsuario.Text) != null)
                {//Si el usuario es encontrado, no se puede agregar porque ya existe
                    MessageBox.Show("El usuario que intenta agregar, ya existe.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    if (Convert.ToString(txtRutUsuario.Text[txtRutUsuario.Text.Length - 1]) == controladorUsuario.digitoVerificador(Convert.ToInt32(txtRutUsuario.Text.Substring(0, txtRutUsuario.Text.Length - 1))))
                    {//Si el digito verificador del rut ingresado es correcto se procede a agregar al nuevo usuario
                        string nombreTipoUsuario = controladorTipoUsuario.ObtenerNombreTipoUsuario(Convert.ToInt32(cboTipoUsuario.SelectedValue));
                        txtCodUsuario.Text = controladorUsuario.GenerarCodigo(nombreTipoUsuario);
                        usuario nuevo = new usuario()//se crea un usuario que se agregara a la DB
                        {
                            codigo_usuario = txtCodUsuario.Text,
                            rut_usuario = txtRutUsuario.Text,
                            nombre = txtNombreUsuario.Text,
                            apellido = txtApellidoUsuario.Text,
                            email = txtEmailUsuario.Text,
                            id_tipo_usuario = Convert.ToInt32(cboTipoUsuario.SelectedValue)
                        };
                        if (controladorUsuario.AgregarUsuario(nuevo))
                        {//Si no hay errores se agrega el nuevo usuario y se recarga la Grilla
                            MessageBox.Show("El usuario ah sido agregado.", "Mensaje de Usuario", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            cargarGridUsuarios();
                        }
                        else
                        {
                            MessageBox.Show("El usuario que intenta agregar, ya existe.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("El Rut ingresado no es correcto, Intente nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }

        }
 //Agregar un nuevo usuario a la Base de datos
 public bool AgregarUsuario(usuario nuevo)
 {
     try
     {
         usuario aux = contex.usuario.Find(nuevo.rut_usuario);
         if (aux != null)
         {
             return false;//El usuario ya existe.
         }
         else
         {//Se agrega el nuevo usuario al contexto y se devuelve el cambio
             contex.usuario.Add(nuevo);
             return contex.SaveChanges() > 0;
         }
     }
     catch (Exception e)
     {//Si se genera un error se informa de este
         System.Windows.Forms.MessageBox.Show("Error"+e.StackTrace);
         return false;
     }
 } 
        private void btnEditarUsuario_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(txtRutUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Rut no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (String.IsNullOrEmpty(txtNombreUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Nombre no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (String.IsNullOrEmpty(txtApellidoUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Apellido no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (String.IsNullOrEmpty(txtEmailUsuario.Text.Trim()))
            {
                MessageBox.Show("El campo Email no puede estar vacio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (cboTipoUsuario.SelectedIndex == -1)
            {
                MessageBox.Show("Debe selecionar un tipo de usuario.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //Dependiendo de que opcion tome el usuario respecto al tipo de este, se guarda en una variable
                string nombreTipoUsuario = controladorTipoUsuario.ObtenerNombreTipoUsuario(Convert.ToInt32(cboTipoUsuario.SelectedValue));
                txtCodUsuario.Text = controladorUsuario.GenerarCodigo(nombreTipoUsuario);
                usuario aEditar = new usuario()//se crea un usuario que se agregara a la DB
                {
                    codigo_usuario = txtCodUsuario.Text,
                    rut_usuario = txtRutUsuario.Text,
                    nombre = txtNombreUsuario.Text,
                    apellido = txtApellidoUsuario.Text,
                    email = txtEmailUsuario.Text,
                    id_tipo_usuario = Convert.ToInt32(cboTipoUsuario.SelectedValue)
                };

                if (controladorUsuario.EditarUsuario(aEditar))
                {
                    MessageBox.Show("El usuario ah sido editado.", "Mensaje de Usuario", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    cargarGridUsuarios();
                }
                else
                {
                    MessageBox.Show("No se ah realizado ningún cambio en los datos.", "Mensaje de Usuario", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
 //********************************************************************************
 //Editar un usuario existente
 public bool EditarUsuario(usuario aEditar) {
     try
     {
         usuario aux = contex.usuario.Find(aEditar.rut_usuario);
         if (aux != null)
         {//El usuario existe por lo tanto se editan sus datos
             aux.rut_usuario = aEditar.rut_usuario;
             aux.nombre = aEditar.nombre;
             aux.apellido = aEditar.apellido;
             aux.email = aEditar.email;
             aux.id_tipo_usuario = aEditar.id_tipo_usuario;
             return contex.SaveChanges() > 0;
         }
         else
         {//El usuario no existe o no se ah encontrado
             return false;
         }
     }
     catch (Exception e)
     {//Si se genera un error se informa de este
         System.Windows.Forms.MessageBox.Show("Error" + e.Message);
         return false;
     }
 }