public IActionResult GetUsuarioPerfil([FromRoute] int id) { UsuariosCore usuarioCore = new UsuariosCore(dbContext); UsuarioPerfilVM response = usuarioCore.GetUsuarioPerfil(id); return(Ok(response));; }
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; } }