Пример #1
0
        public async Task <ActionResult <PageListResult <DeckResult> > > GetDecksByTags([TagValidation][FromQuery] string[] tags,
                                                                                        [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
        {
            if (pageNumber < 1 || pageSize < 1)
            {
                return(BadRequest("Page number and page size can not be less than 1"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var page = tags.Length > 0
                ? await deckRepo.GetPageByTags(pageNumber, pageSize, tags)
                : await deckRepo.GetPage(pageNumber, pageSize);

            if (!page.Any())
            {
                return(NotFound());
            }

            var result = new PageListResult <DeckResult>(mapper.Map <List <DeckDbo>, List <DeckResult> >(page),
                                                         page.TotalCount, page.CurrentPage, page.PageSize);

            return(Ok(result));
        }