public IActionResult GetAll([FromQuery] WordQueryUrl query)
        {
            var item = _repository.GetAll(query);

            if (item.Results.Count == 0)
            {
                return(StatusCode(404));
            }

            PaginationList <WordDTO> List = CreateLinksListWordDTO(query, item);

            return(Ok(List));
        }
        private PaginationList <WordDTO> CreateLinksListWordDTO(WordQueryUrl query, PaginationList <Word> item)
        {
            var List = _mapper.Map <PaginationList <Word>, PaginationList <WordDTO> >(item);

            foreach (var word in List.Results)
            {
                word.Links.Add(new LinkDTO("self", Url.Link("GetWord", new { id = word.Id }), "GET"));
            }

            List.Links.Add(new LinkDTO("self", Url.Link("GetAll", query), "GET"));

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


                if (query.NumPage + 1 <= item.Pagination.TotalPages)
                {
                    var queryString = new WordQueryUrl()
                    {
                        NumPage = query.NumPage + 1, NumRecordsPage = query.NumRecordsPage, Date = query.Date
                    };
                    List.Links.Add(new LinkDTO("next", Url.Link("GetAll", queryString), "GET"));
                }

                if (query.NumPage - 1 > 0)
                {
                    var queryString = new WordQueryUrl()
                    {
                        NumPage = query.NumPage - 1, NumRecordsPage = query.NumRecordsPage, Date = query.Date
                    };
                    List.Links.Add(new LinkDTO("Prev", Url.Link("GetAll", queryString), "GET"));
                }
            }

            return(List);
        }