public ActionResult All(int?year) { var yearOrCurrent = year ?? DateTime.Today.Year; var html = MethodBase.GetCurrentMethod().CacheWith(() => { var yearsBlock = H.h2[Enumerable.Range(2001, DateTime.Today.Year - 2001 + 1).Reverse() .Select(x => x == yearOrCurrent ? (IHtmlTag)H.b[x] : Url.SiteNews().All(x, x.ToString()))]; var news = NewsService.GetAll().Where(x => x.IsActive && x.PublishDate.Year == yearOrCurrent).OrderByDescending(n => n.PublishDate) .Select(x => new { x.NewsID, x.Title, x.PublishDate }).ToList() .Select(x => new News { NewsID = x.NewsID, Title = x.Title, PublishDate = x.PublishDate }); return(H.div[yearsBlock, news.GroupBy(x => x.PublishDate.Month) .Select(x => H.div[H.h3[MonthUtil.GetName(x.Key)], H.Ul(x.Select(y => y.PublishDate.DefaultString() + " " + Html.NewsLink(y)))])].ToString()); }, yearOrCurrent, 24); var model = new AllNewsVM { Year = yearOrCurrent }; var view = InlineBaseView.New(model, x => html); return(BaseViewWithModel(view, model)); }
public List <string> GetBreadCrumbs(AllNewsVM news) { var breadcrumb = new List <string>(); breadcrumb.Add(_helper.ActionLink <SiteNewsController>( c => c.List(NewsType.Main, null), "Новости") .ToString()); return(breadcrumb); }