public IActionResult Index() { var authenticated = User.Identity?.IsAuthenticated ?? false; var viewModel = _cacheClient.GetOrCreate( CacheKeyBuilder.Build(nameof(ArchiveController), nameof(Index), authenticated), () => { var posts = _blogService.GetAllPosts().Where(x => x.Raw.IsPostPublished() || authenticated) .ToList(); var model = new List <PostArchiveViewModel>(); foreach (var item in posts.GroupBy(x => x.Raw.PublishTime.Year).OrderByDescending(y => y.Key)) { var archiveViewModel = new PostArchiveViewModel { Count = item.Count(), Posts = item.ToList(), Link = $"{item.Key}", Name = $"{item.Key}年" }; model.Add(archiveViewModel); } return(model); }); ViewData["Title"] = "存档"; ViewData["Image"] = $"{_blogOptions.BlogRemoteEndpoint}/archive.png"; ViewData["Description"] = "所有文章的存档。"; return(View("Index", viewModel)); }
public virtual PartialViewResult PostArchive() { var model = new PostArchiveViewModel(); model.BlogPosts = BlogPostHelper.GetAllPosts(loadAssets: false); //model.BlogPosts = model.BlogPosts.OrderByDescending(x => x.DatePosted); return(PartialView(model)); }
public IActionResult Index() { var authenticated = User.Identity?.IsAuthenticated ?? false; var viewModel = _cacheClient.GetOrCreate( CacheKeyBuilder.Build(nameof(HomeController), nameof(Index), authenticated), () => { var posts = _blogService.GetAllPosts().Where(x => x.Raw.IsPostPublished() || authenticated) .ToList(); var model = new List <PostArchiveViewModel>(); foreach (var blogTag in _blogService.GetAllTags()) { var tagPosts = posts.Where(x => x.Raw.Tag.Contains(blogTag.Id)).ToList(); if (tagPosts.Any()) { var archiveViewModel = new PostArchiveViewModel { Count = tagPosts.Count, Posts = tagPosts.ToList(), Link = $"{blogTag.Link}", Name = $"{blogTag.DisplayName}" }; model.Add(archiveViewModel); } } return(model); }); ViewData["Title"] = "标签"; ViewData["Image"] = $"{_blogOptions.BlogRemoteEndpoint}/archive.png"; ViewData["Description"] = "所有标签的存档。"; return(View(viewModel)); }