Ejemplo n.º 1
0
        public IActionResult GetUsuarioPerfil([FromRoute] int id)
        {
            UsuariosCore    usuarioCore = new UsuariosCore(dbContext);
            UsuarioPerfilVM response    = usuarioCore.GetUsuarioPerfil(id);

            return(Ok(response));;
        }
Ejemplo n.º 2
0
        public UsuarioPerfilVM GetUsuarioPerfil(int id)
        {
            try
            {
                //consultar
                //unir
                var consulta = (from us in dbContext.Usuarios
                                join ss in dbContext.usuariosSeguidos on us.Id equals ss.IdUsuario
                                join aaa in dbContext.Usuarios on ss.IdUsuarioSeguido equals aaa.Id
                                where us.Id == id
                                select new
                {
                    Id = us.Id,
                    Nombre = us.Nombre,
                    Descripcion = us.Descripcion,
                    FotoPerfil = us.FotoPerfil,
                    IdUsuarioSeguido = ss.IdUsuarioSeguido,
                    SeguidoNombre = aaa.Nombre,
                    SeguidoFoto = aaa.FotoPerfil
                }).ToList();

                var agrupador = consulta.GroupBy(x => (x.Id, x.Nombre, x.Descripcion, x.FotoPerfil));

                //estructurar
                UsuarioPerfilVM estructura = agrupador.Select(x => new UsuarioPerfilVM
                {
                    Id          = x.Key.Id,
                    Nombre      = x.Key.Nombre,
                    Descripcion = x.Key.Descripcion,
                    FotoPerfil  = x.Key.FotoPerfil,
                    Seguidos    = x.Select(y => new UsuariosSeguidosVM
                    {
                        Id         = y.IdUsuarioSeguido,
                        Nombre     = y.SeguidoNombre,
                        FotoPerfil = y.FotoPerfil
                    }).ToList()
                }).First();

                return(estructura);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }