public IActionResult Index([FromQuery] UrlQuery urlQuery) { var item = _phoebusService.PhQueryPag(urlQuery); if (item.Results.Count == 0) { return(NotFound()); } ListPaginacao <PhoebusDTO> lista = CreateLinksPhoebus(urlQuery, item); return(Ok(lista)); }
public ListPaginacao <Intermeio> QueryPag(UrlQuery urlQuery) { var lstPaginacao = new ListPaginacao <Intermeio>(); var phQuery = _IntRepository.GetAll().AsQueryable(); if (urlQuery.PagNumero.HasValue) { var qntRegistro = phQuery.Count(); phQuery = phQuery.Skip((urlQuery.PagNumero.Value - 1) * urlQuery.PagRegistro.Value).Take(urlQuery.PagRegistro.Value); var paginacao = new Paginacao(); paginacao.NumeroPagina = urlQuery.PagNumero.Value; paginacao.RegistroPorPagina = urlQuery.PagRegistro.Value; paginacao.TotalRegistro = qntRegistro; paginacao.TotalPaginas = (int)Math.Ceiling((double)qntRegistro / urlQuery.PagRegistro.Value); lstPaginacao.Paginacao = paginacao; } lstPaginacao.Results.AddRange(phQuery.ToList()); return(lstPaginacao); }
private ListPaginacao <AnaliseDTO> CreateLinksAnalise(UrlQuery urlQuery, ListPaginacao <Analise> item) { var lista = _mapper.Map <ListPaginacao <Analise>, ListPaginacao <AnaliseDTO> >(item); foreach (var ph in lista.Results) { ph.Links = new List <LinkDTO>(); ph.Links.Add(new LinkDTO("self", Url.Link("GetId", new { id = ph.PhoebusId }), "GET")); } lista.Links.Add(new LinkDTO("self", Url.Link("Index", urlQuery), "GET")); if (item.Paginacao != null) { Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(item.Paginacao)); if (urlQuery.PagNumero + 1 <= item.Paginacao.TotalPaginas) { var queryString = new UrlQuery() { PagNumero = urlQuery.PagNumero + 1, PagRegistro = urlQuery.PagRegistro }; lista.Links.Add(new LinkDTO("next", Url.Link("Index", queryString), "GET")); } if (urlQuery.PagNumero - 1 > 0) { var queryString = new UrlQuery() { PagNumero = urlQuery.PagNumero - 1, PagRegistro = urlQuery.PagRegistro }; lista.Links.Add(new LinkDTO("prev", Url.Link("Index", queryString), "GET")); } } return(lista); }