public async Task <IActionResult> Index(string term, int page = 1) { var model = new ListModel { PostListType = PostListType.Blog }; try { model.Blog = await _blogProvider.GetBlogItem(); } catch { return(Redirect("~/admin")); } model.Pager = new Pager(page, model.Blog.ItemsPerPage); if (string.IsNullOrEmpty(term)) { if (model.Blog.IncludeFeatured) { model.Posts = await _postProvider.GetList(model.Pager, 0, "", "FP"); } else { model.Posts = await _postProvider.GetList(model.Pager, 0, "", "P"); } } else { model.PostListType = PostListType.Search; model.Blog.Title = term; model.Blog.Description = ""; model.Posts = await _postProvider.Search(model.Pager, term, 0, "FP"); } if (model.Pager.ShowOlder) { model.Pager.LinkToOlder = $"?page={model.Pager.Older}"; } if (model.Pager.ShowNewer) { model.Pager.LinkToNewer = $"?page={model.Pager.Newer}"; } if (!string.IsNullOrEmpty(term)) { string viewPath = $"~/Views/Themes/{model.Blog.Theme}/Search.cshtml"; if (IsViewExists(viewPath)) { return(View(viewPath, model)); } } return(View($"~/Views/Themes/{model.Blog.Theme}/Index.cshtml", model)); }
public async Task <ListModel> getBlogPosts(string term = "", int pager = 1, string category = "", string slug = "") { var model = new ListModel { }; try { model.Blog = await _blogProvider.GetBlogItem(); } catch { return(null); } model.Pager = new Pager(pager, model.Blog.ItemsPerPage); if (!string.IsNullOrEmpty(category)) { model.PostListType = PostListType.Category; model.Posts = await _postProvider.GetList(model.Pager, 0, category, "PF"); } else if (string.IsNullOrEmpty(term)) { model.PostListType = PostListType.Blog; if (model.Blog.IncludeFeatured) { model.Posts = await _postProvider.GetList(model.Pager, 0, "", "FP"); } else { model.Posts = await _postProvider.GetList(model.Pager, 0, "", "P"); } } else { model.PostListType = PostListType.Search; model.Blog.Title = term; model.Blog.Description = ""; model.Posts = await _postProvider.Search(model.Pager, term, 0, "FP"); } if (model.Pager.ShowOlder) { model.Pager.LinkToOlder = $"?page={model.Pager.Older}"; } if (model.Pager.ShowNewer) { model.Pager.LinkToNewer = $"?page={model.Pager.Newer}"; } return(model); }
public async Task <IEnumerable <AtomEntry> > GetEntries(string type, string host) { var items = new List <AtomEntry>(); var posts = await _postProvider.GetList(new Pager(1), 0, "", "P"); foreach (var post in posts) { var item = new AtomEntry { Title = post.Title, Description = post.Content, Id = $"{host}/posts/{post.Slug}", Published = post.Published, LastUpdated = post.Published, ContentType = "html", }; if (post.Categories != null && post.Categories.Count > 0) { foreach (Category category in post.Categories) { item.AddCategory(new SyndicationCategory(category.Content)); } } item.AddContributor(new SyndicationPerson(post.Author.Email, post.Author.DisplayName)); item.AddLink(new SyndicationLink(new Uri(item.Id))); items.Add(item); } return(await Task.FromResult(items)); }