public virtual ActionResult Feed() { IList<BlogItem> posts; using (var api = ApiFactory.Create()) { var request = new GetBlogPostsModel { Take = 10, IncludeTags = true }; var orFilter = new DataFilter(FilterConnector.Or); orFilter.Add("ExpirationDate", null); orFilter.Add("ExpirationDate", DateTime.Today, FilterOperation.GreaterOrEqual); request.Order.By.Add(new OrderItem("ActivationDate", OrderDirection.Desc)); request.Order.By.Add(new OrderItem("Id")); request.Filter.Add("ActivationDate", DateTime.Today, FilterOperation.LessOrEqual); var pages = api.Blog.BlogPosts.Get(new GetBlogPostsRequest { Data = request }); posts = pages.Data.Items.Select( x => new BlogItem { IntroText = x.IntroText, PublishedOn = x.ActivationDate, Title = x.Title, Url = x.BlogPostUrl, Author = x.AuthorName, ImageUrl = x.MainImageUrl, Tags = x.Tags }).ToList(); } return View(posts); }
public ActionResult BlogPosts(RenderWidgetViewModel model) { IList<BlogItem> posts; var isPagingEnabled = model.GetOptionValue<bool>("ShowPager"); var pageSize = model.GetOptionValue<int>("PageSize"); var page = Request.QueryString["blogpage"].ToIntOrDefault(); int postsCount; using (var api = ApiFactory.Create()) { var request = new GetBlogPostsModel { Take = pageSize, IncludeTags = true, IncludeCategories = true }; SortAndFilterRequest(request); if (isPagingEnabled) { var skipCount = page == 0 ? 0 : (page - 1) * pageSize; request.Skip = skipCount; } request.Take = pageSize; var pages = api.Blog.BlogPosts.Get(new GetBlogPostsRequest { Data = request }); posts = pages.Data.Items.Select( x => new BlogItem { IntroText = x.IntroText, PublishedOn = x.ActivationDate, Title = x.Title, Url = x.BlogPostUrl, Author = x.AuthorName, Tags = x.Tags, Categories = x.Categories }).ToList(); postsCount = pages.Data.TotalCount; } var items = new BlogItemsModel { Items = posts, ShowAuthor = model.GetOptionValue<bool>("ShowAuthor"), ShowDate = model.GetOptionValue<bool>("ShowDate"), ShowCategories = model.GetOptionValue<bool>("ShowCategories"), ShowTags = model.GetOptionValue<bool>("ShowTags"), ShowPager = isPagingEnabled, NumberOfPages = (int)Math.Ceiling((double)postsCount / pageSize), CurrentPage = page > 0 ? page : 1 }; return View(items); }
public virtual ActionResult Index(Guid? categoryId, string tagName) { IList<BlogItem> posts; using (var api = ApiFactory.Create()) { var request = new GetBlogPostsModel { Take = 10, IncludeTags = true }; var orFilter = new DataFilter(FilterConnector.Or); orFilter.Add("ExpirationDate", null); orFilter.Add("ExpirationDate", DateTime.Today, FilterOperation.GreaterOrEqual); request.Order.By.Add(new OrderItem("ActivationDate", OrderDirection.Desc)); request.Order.By.Add(new OrderItem("Id")); request.Filter.Add("ActivationDate", DateTime.Today, FilterOperation.LessOrEqual); request.Filter.Inner.Add(orFilter); if (categoryId.HasValue) { request.FilterByCategories = new List<Guid> { categoryId.Value }; } if (!string.IsNullOrEmpty(tagName)) { request.FilterByTags.Add(tagName); } var pages = api.Blog.BlogPosts.Get(new GetBlogPostsRequest { Data = request }); posts = pages.Data.Items.Select( x => new BlogItem { IntroText = x.IntroText, PublishedOn = x.ActivationDate, Title = x.Title, Url = x.BlogPostUrl, Author = x.AuthorName, Tags = x.Tags }).ToList(); } return View(posts); }
public virtual ActionResult Last() { BlogItem post = null; using (var api = ApiFactory.Create()) { var requestLatestNewsModel = new GetBlogPostsModel { Take = 1, IncludeTags = true }; var orFilter = new DataFilter(FilterConnector.Or); orFilter.Add("ExpirationDate", null); orFilter.Add("ExpirationDate", DateTime.Today, FilterOperation.GreaterOrEqual); requestLatestNewsModel.Order.By.Add(new OrderItem("ActivationDate", OrderDirection.Desc)); requestLatestNewsModel.Order.By.Add(new OrderItem("Id")); requestLatestNewsModel.Filter.Add("ActivationDate", DateTime.Today, FilterOperation.LessOrEqual); requestLatestNewsModel.Filter.Inner.Add(orFilter); var request = new GetBlogPostsRequest { Data = requestLatestNewsModel }; var pages = api.Blog.BlogPosts.Get(request); post = pages.Data.Items.Select( x => new BlogItem { IntroText = x.IntroText, PublishedOn = x.ActivationDate, Title = x.Title, Url = x.BlogPostUrl, Author = x.AuthorName, Tags = x.Tags }).SingleOrDefault(); } return View(post); }
public virtual ActionResult Feed(Guid? categoryId, string tagName, string year, string month) { IList<BlogItem> posts; using (var api = ApiFactory.Create()) { var request = new GetBlogPostsModel { Take = 10, IncludeTags = true }; var orFilter = new DataFilter(FilterConnector.Or); orFilter.Add("ExpirationDate", null); orFilter.Add("ExpirationDate", DateTime.Today, FilterOperation.GreaterOrEqual); request.Order.By.Add(new OrderItem("ActivationDate", OrderDirection.Desc)); request.Order.By.Add(new OrderItem("Id")); request.Filter.Add("ActivationDate", DateTime.Today, FilterOperation.LessOrEqual); if (categoryId.HasValue) { request.FilterByCategories = new List<Guid> { categoryId.Value }; } if (!string.IsNullOrEmpty(tagName)) { request.FilterByTags.Add(tagName); } var pages = api.Blog.BlogPosts.Get(new GetBlogPostsRequest { Data = request }); posts = pages.Data.Items.Select( x => new BlogItem { IntroText = x.IntroText, PublishedOn = x.ActivationDate, Title = x.Title, Url = x.BlogPostUrl, Author = x.AuthorName, ImageUrl = x.MainImageUrl, Tags = x.Tags }).ToList(); } //search by year if (!string.IsNullOrEmpty(year) && string.IsNullOrEmpty(month)) { var p = new List<BlogItem>(); foreach (var x in posts) { if (x.PublishedOn.Year.ToString() == year) { p.Add(x); } } return View(p); } //search by month if (!string.IsNullOrEmpty(year) && !string.IsNullOrEmpty(month)) { var m = new List<BlogItem>(); var y = new List<BlogItem>(); foreach (var x in posts) { if (x.PublishedOn.Year.ToString() == year) { y.Add(x); } } foreach (var x in y) { if (x.PublishedOn.Month.ToString() == month) { m.Add(x); } } return View(m); } return View(posts); }
public virtual ActionResult Feed(string keywordsForSearch) { IList<BlogItem> posts; using (var api = ApiFactory.Create()) { var request = new GetBlogPostsModel { Take = 10, IncludeTags = true }; var orFilter = new DataFilter(FilterConnector.Or); orFilter.Add("ExpirationDate", null); orFilter.Add("ExpirationDate", DateTime.Today, FilterOperation.GreaterOrEqual); request.Order.By.Add(new OrderItem("ActivationDate", OrderDirection.Desc)); request.Order.By.Add(new OrderItem("Id")); request.Filter.Add("ActivationDate", DateTime.Today, FilterOperation.LessOrEqual); var pages = api.Blog.BlogPosts.Get(new GetBlogPostsRequest { Data = request }); posts = pages.Data.Items.Select( x => new BlogItem { IntroText = x.IntroText, PublishedOn = x.ActivationDate, Title = x.Title, Url = x.BlogPostUrl, Author = x.AuthorName, ImageUrl = x.MainImageUrl, Tags = x.Tags }).ToList(); } if (!string.IsNullOrEmpty(keywordsForSearch)) { List<BlogItem> searchlist = new List<BlogItem>(); //search in title var v = posts.Where(r => r.Title.Contains(keywordsForSearch)).ToList(); if (v.Count > 0) { foreach (var x in v) { searchlist.Add(x); } } //search by introtext var v1 = posts.Where(r => r.IntroText.Contains(keywordsForSearch)).ToList(); if (v1.Count > 0) { foreach (var x1 in v1) { searchlist.Add(x1); } } //var v2 = posts.Where(r => r.Url.Contains(keywordsForSearch)).ToList(); //if(v2.Count >0 ){ // foreach (var x2 in v2) // { // searchlist.Add(x2); // } //} //creating distinct list List<string> Distinct_searchlist = new List<string>(); List<BlogItem> new_distinct_blogitems = new List<BlogItem>(); foreach (var s in searchlist) { if (!Distinct_searchlist.Contains(s.Title)) { Distinct_searchlist.Add(s.Title); new_distinct_blogitems.Add(s); } } return View(new_distinct_blogitems); } return View(posts); }
private void SortAndFilterRequest(GetBlogPostsModel request) { var tagName = Request.QueryString["blogtag"]; var categoryName = Request.QueryString["blogcategory"]; var orFilter = new DataFilter(FilterConnector.Or); orFilter.Add("ExpirationDate", null); orFilter.Add("ExpirationDate", DateTime.Today, FilterOperation.GreaterOrEqual); request.Order.By.Add(new OrderItem("ActivationDate", OrderDirection.Desc)); request.Order.By.Add(new OrderItem("Id")); request.Filter.Add("ActivationDate", DateTime.Today, FilterOperation.LessOrEqual); request.Filter.Inner.Add(orFilter); if (!string.IsNullOrEmpty(categoryName)) { request.FilterByCategoriesNames.Add(categoryName); } if (!string.IsNullOrEmpty(tagName)) { request.FilterByTags.Add(tagName); } }
private bool TagsListIsReadonly(GetBlogPostsRequest request, GetBlogPostsModel data) { return(!data.HasColumnInSortBySection("Tags") && !data.HasColumnInWhereSection("Tags")); }