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); }
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); }
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 }); }