Ejemplo n.º 1
0
        public async Task <SearchResultsVm <BlogPostSrVm[]> > SearchBlogPostsAsync(BlogPostSc sc)
        {
            //Visitors can only view published blog posts
            if (_usersService.GetUser() == null)
            {
                sc.Status = EnBlogPostStatus.Published;
            }

            var specification = new BlogPostSpecification();

            specification.SetCriteria(sc);

            var itemsOnPage = await _blogPostsRepository.SearchAsync(specification);

            var totalItems = await _blogPostsRepository.CountAsync(specification);

            var results = new SearchResultsVm <BlogPostSrVm[]>(
                _mapper.Map <BlogPostSrVm[]>(itemsOnPage),
                totalItems,
                itemsOnPage.Count,
                sc.CurrentPage,
                sc.Take);

            return(results);
        }