Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }