public IActionResult Get(UsuarioEnderecoParameters parametros) { // Checa se o usuário existe (retorna 404 - NOT FOUND se não existir) if (!_repository.UsuarioExists(parametros.UsuarioId)) { return(NotFound()); } // Retorna endereços de um usuário pelo repositório var enderecosPagedList = _repository.ListarEnderecosPorUsuario(parametros); // Gera os metadados da paginação e adiciona ao cabeçalho var paginationMetadata = new { totalCount = enderecosPagedList.TotalCount, pageSize = enderecosPagedList.PageSize, currentPage = enderecosPagedList.CurrentPage, totalPages = enderecosPagedList.TotalPages }; Response.Headers.Add("Pagination", JsonConvert.SerializeObject(paginationMetadata)); // Mapeia para a model com os dados formatados e retorna 200 - OK var enderecosModels = _mapper.Map <IEnumerable <GetUsuarioEnderecoModel> >(enderecosPagedList); return(Ok(enderecosModels)); }
// Endereco public IPagedList <UsuarioEndereco> ListarEnderecosPorUsuario(UsuarioEnderecoParameters parametros) { var enderecosQuery = _context.UsuariosEnderecos.Where(x => x.UsuarioId == parametros.UsuarioId); // ordenação //enderecosQuery = AplicaOrdenacaoEnderecosUsuario(enderecosQuery, parametros.OrderBy); //enderecosQuery = enderecosQuery.OrderBy(parametros.OrderBy); // retorno paginado return(PagedList <UsuarioEndereco> .Create(enderecosQuery, parametros.Page, parametros.PageSize, parametros.MetaOnly)); }