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); }
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))); }
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())); }
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)); }
public async Task <IEnumerable <BlogPostBase> > GetAllBlogPostsByAgeRestriction(AgeRestrictionCategories allowedAge, BlogPostFilter filter = null) { return(await ApplyFilters(db.BlogPosts, filter).Where(bp => (bp.AllowedAge & allowedAge) == allowedAge).ToListAsync()); }
public async Task <IEnumerable <BlogPostBase> > GetAllBlogPosts(BlogPostFilter filter = null) { return(await ApplyFilters(db.BlogPosts, filter).ToListAsync()); }