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); } }