private void button2_Click(object sender, EventArgs e)
        {
            //ACTUALIZAR EL USUARIO
            RepositorioUsuario repoUser = new RepositorioUsuario();

            //ESTOS VALORES SON LOS QUE CAMBIAN
            //STRINGS
            String username     = textBoxUsername.Text.Trim();
            String nombre       = textBoxNombre.Text.Trim();
            String apellido     = textBoxApellido.Text.Trim();
            String nroDoc       = textBoxNroDoc.Text.Trim();
            String mail         = textBoxMail.Text.Trim();
            String telefono     = textBoxTelefono.Text.Trim();
            String calle        = textBoxCalle.Text.Trim();
            String localidad    = textBoxLocalidad.Text.Trim();
            String pais         = textBoxPais.Text.Trim();
            String nacionalidad = textBoxNacionalidad.Text.Trim();
            String depto        = textBoxDepto.Text.Trim();

            //NUMEROS
            int nroCalle = 0;

            if (textBoxNroCalle.Text != "")
            {
                nroCalle = int.Parse(textBoxNroCalle.Text);
            }
            int nroPiso = 0;

            if (textBoxPiso.Text != "")
            {
                nroPiso = int.Parse(textBoxPiso.Text);
            }

            //OTROS
            String tipoDoc = "";

            if (comboBoxTipoDoc.SelectedItem != null)
            {
                tipoDoc = (String)comboBoxTipoDoc.SelectedItem;
            }
            Boolean  activo          = checkBoxActivo.Checked;
            DateTime fechaNacimiento = dateTime.Value;

            //SI SE CAMBIA LA PASSWORD SE VUELVE A GENERAR
            //SINO SE MANTIENE LA MISMA
            if (this.password != null && this.password != "" && passwordChanged)
            {
                password = repoUser.EncriptarSHA256(this.password);
            }
            else
            {
                password = usuario.getPassword();
            }

            //VALORES QUE NO CAMBIAN
            String tipoIdentidad         = "Usuario";
            int    idDir                 = usuario.getIdentidad().getDireccion().getIdDireccion();
            int    idIdentidad           = usuario.getIdentidad().getIdIdentidad();
            int    idUsuario             = usuario.getIdUsuario();
            int    intentosFallidosLogin = usuario.getIntentosFallidosLogin();

            //traigo los roles elegidos
            List <Rol> roles = new List <Rol>();

            foreach (DataGridViewRow item in this.dataGridRoles.SelectedRows)
            {
                roles.Add(item.DataBoundItem as Rol);
            }
            //traigo los hoteles elegidos
            List <Hotel> hoteles = new List <Hotel>();

            foreach (DataGridViewRow item in this.dataGridHoteles.SelectedRows)
            {
                hoteles.Add(item.DataBoundItem as Hotel);
            }

            Direccion address   = new Direccion(idDir, pais, localidad, calle, nroCalle, nroPiso, depto);
            Identidad identidad = new Identidad(idIdentidad, tipoIdentidad, nombre, apellido, tipoDoc, nroDoc, mail, fechaNacimiento, nacionalidad, telefono, address);
            Usuario   user      = new Usuario(idUsuario, identidad, username, password, intentosFallidosLogin, activo, roles, hoteles);

            if (this.validoInput(this))
            {
                try
                {
                    repoUser.update(user);
                    MessageBox.Show("Usuario actualizado con éxito.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    //ME TRAIGO EL USUARIO ACTUALIZADO
                    this.usuario = repoUser.getById(usuario.getIdUsuario());
                    this.resetearDatos();
                }
                //catch (NoExisteIDException exc)
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Verifique haber ingresado todos los datos necesarios para actualizar el usuario, incluyendo los roles que el usuario desempeña y los hoteles donde el usuario trabaja.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }