Exemplo n.º 1
0
    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));
    }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
    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));
    }