public static List <Tuple <USUARIO, decimal> > ObtenerMiemrosHabilitadosParaAsignar(Actividad_proyecto actividad) { List <USUARIO> miembros = ObtenerMiembrosIndirectos(BuscarPorId(actividad.id_subproyecto.Value)); List <Tuple <USUARIO, Tuple <int, decimal> > > listaMiembros = new List <Tuple <USUARIO, Tuple <int, decimal> > >(); foreach (var item in miembros) { if (ControladorUsuarios.EstaHabilitadoParaActividad(item, actividad)) { decimal?calif = ControladorActividades.ObtenerTipoActividadUsuario(ControladorActividades.ObtenerActividad(actividad).id_tipo_actividad, item.id_usuario).calificacion; listaMiembros.Add(new Tuple <USUARIO, Tuple <int, decimal> >(item, new Tuple <int, decimal>(ControladorUsuarios.ObtenerCantidadCalificaciones(item), calif.HasValue ? calif.Value : 1))); } } return(listaMiembros.OrderByDescending(x => x.Item2.Item2).ThenBy(x => x.Item2.Item1).AsEnumerable().Select(x => new Tuple <USUARIO, decimal>(x.Item1, x.Item2.Item2)).ToList()); }