public IEnumerable <RolDto> Listar() { return(RolMapper.ToRolDtos(repositorio.GetRolUsuario(0))); }
public void Actualizar(Trabajador entidad) { cn.Open(); SqlTransaction tn = cn.BeginTransaction(); try { SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = USP_MNT_TRABAJADOR; cmd.Transaction = tn; cmd.Parameters.AddWithValue("@Opcion", "2"); cmd.Parameters.AddWithValue("@Id", entidad.Id); cmd.Parameters.AddWithValue("@Nombre", entidad.Nombre); cmd.Parameters.AddWithValue("@Apellido", entidad.Apellido); cmd.Parameters.AddWithValue("@Telefono", entidad.Telefono); cmd.Parameters.AddWithValue("@DNI", entidad.Dni); cmd.Parameters.AddWithValue("@Email", entidad.Email); cmd.Parameters.AddWithValue("@Direccion", entidad.Direccion); cmd.Parameters.AddWithValue("@Sexo", entidad.Sexo); cmd.Parameters.AddWithValue("@Usuario", entidad.Usuario); cmd.Parameters.AddWithValue("@Contrasenia", entidad.Contrasenia); cmd.ExecuteNonQuery(); IEnumerable <Rol> rolesActuales = rolRepositorio.GetRolUsuario(entidad.Id); //Eliminar roles IEnumerable <Rol> tmp = new List <Rol>(); foreach (Rol r in rolesActuales) { bool encontrado = false; foreach (Rol r2 in entidad.Roles) { if (r2.Id == r.Id) { encontrado = true; break; } } if (!encontrado) { rolRepositorio.ElimiarRolUsuario(new RolUsuario { Rol = r, Usuario = entidad }, cn, tn); } } // Insertar roles foreach (Rol r in entidad.Roles) { bool encontrado = false; foreach (Rol r2 in rolesActuales) { if (r2.Id == r.Id) { encontrado = true; break; } } if (!encontrado) { rolRepositorio.CrearRolUsuario(new RolUsuario { Usuario = entidad, Rol = r }, cn, tn); } } tn.Commit(); } catch (Exception ex) { tn.Rollback(); throw ex; } finally { if (cn.State == ConnectionState.Open) { cn.Close(); } } }