public IViewComponentResult Invoke() { List <CarouselDisplay> model = _cache.Get <List <CarouselDisplay> >(CacheService.HomePageCarouselCacheKey); if (model == null) { model = new List <CarouselDisplay>(); var bannerBlogId = _dataSettings.BannerBlogIdList(); if (bannerBlogId != null && bannerBlogId.Count > 0) { var blogs = _db.Blogs.Where(b => bannerBlogId.Contains(b.BlogID)).ToList(); model.AddRange(blogs.OrderBy(b => bannerBlogId.IndexOf(b.BlogID)).Select(b => CarouselDisplay.FromBlog(Url, b))); } var query = _db.Topics.Where(t => t.BannerPath != null); var bannerTopicId = _dataSettings.BannerTopicIdList(); if (bannerTopicId != null && bannerTopicId.Count > 0) { query = query.OrderByDescending(t => bannerTopicId.Contains(t.TopicID)).ThenByDescending(t => t.UpdateDate); } else { query = query.OrderByDescending(t => t.UpdateDate); } var topics = query.Take(_topicCarouselSize).ToList(); model.AddRange(topics.Select(tt => CarouselDisplay.FromTopic(Url, tt))); _cache.Set(CacheService.HomePageCarouselCacheKey, model); } return(View(model)); }
public ActionResult Details(int id = 0) { var bd = _blogUtil.GetDetailDisplay(id); if (bd == null) { return(NotFound()); } if (IsHarmony) { bd.tag = bd.tag.Where(i => !HarmonySettings.WhitelistTags.Contains(i.TagID)); } var bannerBlogId = _dataSettings.BannerBlogIdList(); bd.Option.NoRate = (FeaturedBlogId != null && FeaturedBlogId.Contains(id)) || (bannerBlogId != null && bannerBlogId.Contains(id)) || bd.Option.NoRate; if (User.Identity.IsAuthenticated) { ViewBag.isFavorite = bd.IsFavorite; } string referrer = Request.Headers[HeaderNames.Referer]; if (referrer != null && (referrer.IndexOf("Create", StringComparison.OrdinalIgnoreCase) > 0 || referrer.IndexOf("Edit", StringComparison.OrdinalIgnoreCase) > 0)) { Response.Headers["X-XSS-Protection"] = "0"; } return(View(bd)); }