public async Task <Object[]> GetPublicosByComunidad(int id) { try { //var resultado = await (from p in _db.DbSetPost // where p.idComunidad == id // select new // { // PostId = p.PostId, // Tema = p.Tema, // Descripcion = p.Descripcion, // adjuntoId = p.adjuntoId, // comunidad = (from c in _db.DbSetComunidades // where c.ComunidadId == id // select new // { // Descripcion = c.Descripcion, // ComunidadId = c.ComunidadId // }).FirstOrDefault(), // miembro = (from m in _db.DbSetMiembros // where m.MiembroId == p.idMiembroCP // select new // { // nombrePersona = m.nombrePersona, // MiembroId = m.MiembroId, // idPersonas = m.idPersonas // }).FirstOrDefault(), // }).AsNoTracking().ToListAsync(); var entities = await _db.DbSetPost .Where(e => e.idComunidad == id && e.publico == true) .Include(e => e.Adjunto) .Include(e => e.Comunidad) .Include(e => e.Miembros) .OrderBy(e => e.FechaRegistro) .AsNoTracking() .ToListAsync(); Object [] lista = new Object[entities.Count]; ComentariosRepository c = new ComentariosRepository(); foreach (var obj in entities) { lista[entities.IndexOf(obj)] = new { obj.PostId , obj.Tema , obj.Descripcion , comunidad = new { obj.Comunidad.Descripcion, obj.Comunidad.ComunidadId } , obj.FechaRegistro , miembro = new { obj.Miembros.nombrePersona, obj.Miembros.MiembroId, obj.Miembros.idPersonas } , obj.adjuntoId , obj.Adjunto , comentarios = await c.GetByPost(obj.PostId) }; } return(lista); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <Object[]> GetByComunidad(Post model) { try { var entities = await _db.DbSetPost .Where(e => e.idComunidad == model.idComunidad) .Include(e => e.Miembros) .OrderByDescending(e => e.FechaRegistro) .AsNoTracking() .ToListAsync(); Object [] lista = new Object[entities.Count]; ComentariosRepository c = new ComentariosRepository(); PersonasRepository personas = new PersonasRepository(); foreach (var obj in entities) { if (obj.idMiembroCP == null) { Miembros m = new Miembros(); obj.Miembros = m; var datosPersona = await personas.GetByClave(obj.idPersona); obj.Miembros.nombrePersona = datosPersona.NombreCompleto; obj.Miembros.idPersonas = datosPersona.ClavePersona; } lista[entities.IndexOf(obj)] = new { obj.PostId , obj.Tema , obj.Descripcion , obj.publico , obj.accesoGeneral , obj.FechaRegistro , miembro = new { obj.Miembros.nombrePersona, obj.Miembros.idPersonas } , obj.adjuntoId , comentarios = await c.GetByPost(obj.PostId) }; } return(lista); } catch (Exception e) { throw new Exception(e.Message, e); } }