public IEnumerable <object> Buscar(TipoDeObjeto tipoDeObjeto, string[] conceptosABuscar) { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); int usuarioId = SesionActual.Instance.UsuarioId; List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(usuarioId); List <int> idsCelulasSinLider = manejadorCelulas.ObtenerCelulasSinLideresComoCelulas().Select(o => o.CelulaId).ToList <int>(); switch (tipoDeObjeto) { case TipoDeObjeto.Celula: { return(Celula.Buscar(conceptosABuscar, idsCelulasPermitidas.Union(idsCelulasSinLider).ToList <int>()).Select(o => new { Id = o.CelulaId, Descripcion = o.Descripcion, RowColor = idsCelulasSinLider.Contains(o.CelulaId) ? "red" : string.Empty })); } case TipoDeObjeto.Miembro: { return(Miembro.Buscar(conceptosABuscar, idsCelulasPermitidas.ToList <int>()).Select(o => new { Id = o.MiembroId, Descripcion = o.Primer_Nombre + " " + o.Segundo_Nombre + " " + o.Apellido_Paterno + " " + o.Apellido_Materno + " (" + o.Email + ")" })); } case TipoDeObjeto.AlabanzaMiembro: { return(AlabanzaMiembro.Buscar(conceptosABuscar).Select(o => new { Id = o.Id, Descripcion = o.Miembro.Primer_Nombre + " " + o.Miembro.Segundo_Nombre + " " + o.Miembro.Apellido_Paterno + " " + o.Miembro.Apellido_Materno + " (" + o.Miembro.Email + ")" })); } default: { return(new List <EntityObject>()); } } }