Example #1
0
        private ListaPaginacao <PalavraDTO> CriarLinkListaPalavraDTO(PalavraUrlQuery query, ListaPaginacao <Palavra> palavras)
        {
            ListaPaginacao <PalavraDTO> lista = _mapper.Map <ListaPaginacao <Palavra>, ListaPaginacao <PalavraDTO> >(palavras);

            foreach (var palavra in lista.Resultados)
            {
                palavra.Links.Add(new LinkDTO("self", Url.Link("ObterPalavra", new { id = palavra.Id }), "GET"));
            }

            lista.Links.Add(new LinkDTO("self", Url.Link("ObterTodas", query), "GET"));

            if (lista.Paginacao != null)
            {
                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(lista.Paginacao));

                if (query.NumeroPagina + 1 <= lista.Paginacao.TotalPaginas)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        NumeroPagina        = query.NumeroPagina + 1,
                        QuantidadeRegistros = query.QuantidadeRegistros,
                        Data = query.Data
                    };
                    lista.Links.Add(new LinkDTO("next", Url.Link("ObterTodas", queryString), "GET"));
                }

                if (query.NumeroPagina - 1 > 0)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        NumeroPagina        = query.NumeroPagina - 1,
                        QuantidadeRegistros = query.QuantidadeRegistros,
                        Data = query.Data
                    };
                    lista.Links.Add(new LinkDTO("prev", Url.Link("ObterTodas", queryString), "GET"));
                }
            }

            return(lista);
        }
Example #2
0
        private PaginationList <PalavraDTO> CriarLinksListPalavrasDTO(PalavraUrlQuery query, PaginationList <Palavra> items)
        {
            var palavras = _mapper.Map <PaginationList <Palavra>, PaginationList <PalavraDTO> >(items);

            foreach (var item in palavras.Results)
            {
                item.Links = new List <LinkDTO>();
                //item.Links.Add(new LinkDTO("self", Url.Link("MimicRoute", new { id = item.Id }), "GET"));
                item.Links.Add(new LinkDTO("self", Url.ActionLink("Atualizar", "Palavras", new { id = item.Id }), "GET"));
                item.Links.Add(new LinkDTO("update", Url.ActionLink("Atualizar", "Palavras", new { id = item.Id }), "PUT"));
                item.Links.Add(new LinkDTO("delete", Url.ActionLink("Deletar", "Palavras", new { id = item.Id }), "DELETE"));
            }

            palavras.Links.Add(new LinkDTO("self", Url.Link("MimicRoute", query), "GET"));

            if (items.Paginacao != null)
            {
                Response.Headers.Add("X-Paginator", JsonConvert.SerializeObject(items.Paginacao));

                if (query.PagNumero + 1 <= items.Paginacao.TotalPaginas)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        PagNumero = query.PagNumero + 1, PagRegistro = query.PagRegistro, Data = query.Data
                    };
                    palavras.Links.Add(new LinkDTO("next", Url.Link("MimicRoute", queryString), "GET"));
                }

                if (query.PagNumero - 1 > 0)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        PagNumero = query.PagNumero - 1, PagRegistro = query.PagRegistro, Data = query.Data
                    };
                    palavras.Links.Add(new LinkDTO("prev", Url.Link("MimicRoute", queryString), "GET"));
                }
            }

            return(palavras);
        }
        public List <Palavra> ObterPalavras(PalavraUrlQuery query)
        {
            var item = _banco.Palavras.AsNoTracking().AsQueryable();

            if (query.Data.HasValue)
            {
                item = item.Where(a => a.Criado > query.Data.Value || a.Atualizado > query.Data.Value);
            }

            if (query.PagNumero.HasValue)
            {
                var quantidadeTotalRegistros = item.Count();
                item = item.Skip((query.PagNumero.Value - 1) * query.PagRegistro.Value).Take(query.PagRegistro.Value);

                var paginacao = new Paginacao();
                paginacao.NumeroPagina      = query.PagNumero.Value;
                paginacao.RegistroPorPagina = query.PagRegistro.Value;
                paginacao.TotalRegistros    = quantidadeTotalRegistros;
                paginacao.TotalPaginas      = (int)Math.Ceiling((double)quantidadeTotalRegistros / query.PagRegistro.Value);
            }

            return(item.ToList());
        }
        private PaginationList <PalavraDTO> CriarLinksListPalavrasDTO(PalavraUrlQuery query, PaginationList <Palavra> item)
        {
            var lista = _mapper.Map <PaginationList <Palavra>, PaginationList <PalavraDTO> >(item);

            foreach (var palavra in lista.Results)
            {
                palavra.Links = new List <LinkDTO>();
                palavra.Links.Add(new LinkDTO("self", Url.Link("ObterPalavra", new { Id = palavra.Id }), "GET"));
            }

            lista.Links.Add(new LinkDTO("self", Url.Link("ObterTodas", query), "GET"));

            if (item.Paginacao != null)
            {
                Response.Headers.Add("X-Registration", JsonConvert.SerializeObject(item.Paginacao));

                if (query.PagNumero + 1 <= item.Paginacao.TotalPaginas)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        PagNumero = query.PagNumero + 1, PagRegistro = query.PagRegistro, Data = query.Data
                    };
                    lista.Links.Add(new LinkDTO("next", Url.Link("ObterTodas", queryString), "GET"));
                }

                if (query.PagNumero - 1 > 0)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        PagNumero = query.PagNumero - 1, PagRegistro = query.PagRegistro, Data = query.Data
                    };
                    lista.Links.Add(new LinkDTO("next", Url.Link("ObterTodas", queryString), "GET"));
                }
            }

            return(lista);
        }
Example #5
0
        //public ActionResult ObterTodas(DateTime? data, int? pagNumero, int? pagRegistro)
        public ActionResult ObterTodas([FromQuery] PalavraUrlQuery query)
        {
            var item = _repository.ObterPalavras(query);


            if (item.Count == 0)
            {
                return(NotFound());
            }

            if (item.Paginacao != null)
            {
                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(item.Paginacao));
            }

            var lista = _mapper.Map <PaginationList <Palavra>, PaginationList <PalavraDTO> >(item);

            foreach (var palavra in lista)
            {
                palavra.Links.Add(new LinkDTO("self", Url.Link("ObterPalavra", new { id = palavra.Id }), "GET"));
            }

            return(Ok(item.ToList()));
        }
        /// <summary>
        /// CriarLinksPalavras Cria o link de paginação no obter todas
        /// </summary>
        /// <param name="palavraUrlQuery"></param>
        /// <param name="item"></param>
        /// <returns></returns>
        private PaginacaoLista <PalavraDTO> CriarLinksPalavras(PalavraUrlQuery palavraUrlQuery, PaginacaoLista <Palavra> item)
        {
            var palavraLista = _mapper.Map <PaginacaoLista <Palavra>, PaginacaoLista <PalavraDTO> >(item);

            foreach (var palavra in palavraLista.Resultados)
            {
                palavra.Links = new List <LinkDTO>();
                palavra.Links.Add(new LinkDTO("self", Url.Link("ObterPalavra", new { id = palavra.Id }), "GET"));
            }
            palavraLista.Links.Add(new LinkDTO("self", Url.Link("ObterTodas", palavraUrlQuery), "GET"));

            if (item.Paginacao != null)
            {
                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(item.Paginacao));

                if (palavraUrlQuery.PaginaNumero + 1 <= item.Paginacao.TotalDePagina)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        PaginaNumero = palavraUrlQuery.PaginaNumero + 1, RegistroPagina = palavraUrlQuery.RegistroPagina, Data = palavraUrlQuery.Data
                    };
                    palavraLista.Links.Add(new LinkDTO("prox", Url.Link("ObterTodas", queryString), "GET"));
                }

                if (palavraUrlQuery.PaginaNumero - 1 > 0)
                {
                    var queryString = new PalavraUrlQuery()
                    {
                        PaginaNumero = palavraUrlQuery.PaginaNumero - 1, RegistroPagina = palavraUrlQuery.RegistroPagina, Data = palavraUrlQuery.Data
                    };
                    palavraLista.Links.Add(new LinkDTO("ant", Url.Link("ObterTodas", queryString), "GET"));
                }
            }

            return(palavraLista);
        }