示例#1
0
        public List <BlogPost> Filter(BlogPostFilter filter)
        {
            try
            {
                var articles = new List <BlogPost>();

                var request = new RestRequest("/articles", Method.GET);
                request.AddParameter("title", filter.Title);
                request.AddParameter("published", filter.Published);
                request.AddParameter("author_id", filter.AuthorId);
                request.AddParameter("blog_id", filter.BlogId);
                request.AddParameter("sort_by", filter.SortBy);
                request.AddParameter("page", filter.Page);
                request.AddParameter("limit", filter.Limit);
                var response = ApiClient.Execute <BlogPostsResponse>(request);
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    articles = response.Data.Articles;
                    return(articles);
                }
            }
            catch
            {
            }
            return(null);
        }
示例#2
0
        public async Task <IActionResult> GetAllBlogPost(BlogPostFilter filter)
        {
            var user = await userManager.GetUserAsync(User);

            _logger.LogInformation("User:{0} requested blog posts by filter:{1}", user.UserName, filter);
            var isAdmin = await userManager.IsInRoleAsync(user, Roles.Admin);

            var posts = await blogPostService.GetBlogPostsForUser(user, isAdmin, filter);

            return(Ok(mapper.Map <IEnumerable <BlogPostBase>, IEnumerable <BlogPost> >(posts)));
        }
示例#3
0
 public IEnumerator GetEnumerator()
 {
     if (!_loadedModel.ContainsKey("articles"))
     {
         var blogPostFilter = new BlogPostFilter
         {
             Page   = 1,
             Limit  = 10,
             BlogId = blogModel.Id
         };
         var articles      = blogService.Filter(blogPostFilter);
         var articlesModel = Mapper.Map <List <ArticleModel> >(articles);
         _loadedModel.Add("articles", articlesModel);
         return(articlesModel.GetEnumerator());
     }
     return(((List <ProductModel>)_loadedModel["articles"]).GetEnumerator());
 }
        private IEnumerable <BlogPostBase> ApplyFilters(IEnumerable <BlogPostBase> blogPosts, BlogPostFilter filter)
        {
            var query = blogPosts.AsQueryable();

            if (filter != null)
            {
                query = query.Skip(filter.Page ?? 0 * filter.Limit ?? int.MaxValue).Take(filter.Limit ?? int.MaxValue);

                if (!string.IsNullOrEmpty(filter.ByCategory))
                {
                    query = query.Where(bp => bp.Category == filter.ByCategory);
                }

                if (!string.IsNullOrEmpty(filter.ByUser))
                {
                    query = query.Where(bp => bp.CreatedBy.UserName == filter.ByUser);
                }

                if (filter.InMonth.HasValue)
                {
                    query = query.Where(bp =>
                                        bp.CreatedOn.Year == filter.InMonth.Value.Year &&
                                        bp.CreatedOn.Month == filter.InMonth.Value.Month
                                        );
                }
            }
            return(query);
        }
 public async Task <IEnumerable <BlogPostBase> > GetAllBlogPostsByAgeRestriction(AgeRestrictionCategories allowedAges, BlogPostFilter filter = null)
 {
     return(await Task.FromResult(ApplyFilters(blogPosts, filter).Where(b => (b.AllowedAge & allowedAges) == allowedAges).ToList()));
 }
 public async Task <IEnumerable <BlogPostBase> > GetAllBlogPosts(BlogPostFilter filter = null)
 {
     return(await Task.FromResult(ApplyFilters(blogPosts, filter).ToList()));
 }
示例#7
0
 public async Task <IEnumerable <BlogPostBase> > GetBlogPostsForUser(ApplicationUser user, bool isAdmin, BlogPostFilter filter)
 {
     if (isAdmin)
     {
         return(await blogPostRepository.GetAllBlogPosts(filter));
     }
     return(await blogPostRepository.GetAllBlogPostsByAgeRestriction(user.GetAgeRestrictionCategory(), filter));
 }
示例#8
0
 public async Task <IEnumerable <BlogPostBase> > GetAllBlogPostsByAgeRestriction(AgeRestrictionCategories allowedAge, BlogPostFilter filter = null)
 {
     return(await ApplyFilters(db.BlogPosts, filter).Where(bp => (bp.AllowedAge & allowedAge) == allowedAge).ToListAsync());
 }
示例#9
0
 public async Task <IEnumerable <BlogPostBase> > GetAllBlogPosts(BlogPostFilter filter = null)
 {
     return(await ApplyFilters(db.BlogPosts, filter).ToListAsync());
 }