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)); }