Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }