Exemple #1
0
        public async Task<ActionResult> Index(User person, int page = 0, string category = "", string tags = "", string date = "")
        {
            var dt = CodeHelper.DateTimeNull(date);
            if (!dt.HasValue && !string.IsNullOrWhiteSpace(date))
            {
                return HttpNotFound("404");
            }

            int? categoryId = null;
            if (!string.IsNullOrWhiteSpace(category))
            {
                var catfirst =await UoW.Repository<Category>()
               .Get().AsNoTracking()
               .FirstOrDefaultAsync(x => x.Url.Equals(category, StringComparison.OrdinalIgnoreCase));

                if (catfirst != null) categoryId = catfirst.Id;
                else return HttpNotFound();
            }

            var header = new PageHeader();
            header.Title.AppendFormat("публикации ", Constant.Site);
            header.Description.AppendFormat("сайт {0}: публикации ", Constant.Site);
            header.H1.AppendFormat(" публикации ");

             var skeep = Constant.SkeepPage(page);


            var posts =await UoW.Repository<Post>()
                .Get()
                .AsExpandable()
                .Where(x => x.Ispublished)
                .Where(LinqExt.GetPostByCategoryAndDatetime(categoryId,null))
                .Where(LinqExt.GetPostByCategoryAndDatetime(null, dt))
                .OrderByDescending(x => x.CreateIn)
                .Take(() => Constant.PerPage).Skip(() => skeep)
                .ToListAsync();
          
          

              header.Keywords.AppendFormat("публикации по тегам: {0}",
              string.Join(", ", posts.SelectMany(x => x.Tag).Select(x => x.Text).ToList()));


            if (!posts.Any()) return HttpNotFound("");

            var blogPostView = new BlogPostApiView()
            {
                PageHeader = header,
                Pager = new Pager(),
                Posts = Mapper.Map<IEnumerable<Post>, IEnumerable<SinglePostView>>(posts)
            };

            return View(blogPostView);
        }
Exemple #2
0
        public async Task<ActionResult> Index(User user)
        {

            var tags = await UoW.Repository<Tag>()
                .Get()
                .Select(x => x.Text)
                .ToListAsync();

            var ph = new PageHeader();

            ph.Title.AppendFormat("сайт {0}: последние публикации", Constant.Site);
            ph.Keywords.AppendFormat("теги {0}", string.Join(", ", tags));
            ph.Description.AppendFormat("сайт {1}: теги {0}", string.Join(", ", tags),Constant.Site);
            ph.H1.AppendFormat("последние публикации сайта");
            return View(ph);
        }
Exemple #3
0
        public async Task<ActionResult> SinglePost(User person, string url)
        {
            SinglePostView singlePostView = null;
            using (var uow=UoW)
            {
                var post= await 
                uow.Repository<Post>().Get()
                .AsNoTracking()
                .SingleOrDefaultAsync(x => x.Url.Equals(url, StringComparison.OrdinalIgnoreCase));
                if (post != null)
                {
                    singlePostView = Mapper.Map<Post, SinglePostView>(post);
                }
            }

            if (singlePostView == null) return HttpNotFound("404");

            var header = new PageHeader();
            header.H1.Append(singlePostView.Title);
            header.Title.AppendFormat(" {0} ", singlePostView.Title);
            header.Description.AppendFormat("сайт {0}: {1}", Constant.Site, singlePostView.Title);
            header.Keywords.AppendFormat(string.Join(", ", singlePostView.TagList));
            return View(new BlogPostSingleView
            {
                Post = singlePostView,
                PageHeader = header
            });
        }