// GET: /blogs/{blog} public ActionResult GetBlog(string blog) { var context = base.WorkContext; var pageNumber = context.CurrentBlogSearchCritera.PageNumber; var pageSize = context.CurrentBlogSearchCritera.PageSize; var contentBlog = LoadBlog(blog); //Then need load all blog articles and exclude blog file from result var blogArticles = _contentService.LoadContentItemsByUrl("/blogs/" + blog, context.CurrentStore, context.CurrentLanguage, () => new BlogArticle(), new[] { "default" }, pageNumber, pageSize); contentBlog.Articles = new StorefrontPagedList <BlogArticle>(blogArticles.OfType <BlogArticle>(), blogArticles, page => context.RequestUrl.SetQueryParameter("page", page.ToString()).ToString()); context.CurrentBlog = contentBlog; return(View("blog", base.WorkContext)); }
// GET: /pages/{page} public ActionResult GetContentPageByName(string page) { var contentPage = _contentService.LoadContentItemsByUrl(page, base.WorkContext.CurrentStore, base.WorkContext.CurrentLanguage, x => new ContentPage(x, base.WorkContext.CurrentLanguage)).FirstOrDefault(); if (contentPage != null) { base.WorkContext.CurrentPage = contentPage as ContentPage; return(View("page", base.WorkContext)); } throw new HttpException(404, "Page with " + page + " not found."); }
private ContentPage TryToFindContentPageWithUrl(string url, Store store, Language language) { if (store == null) return null; var cacheKey = String.Join(":", "TryToFindContentPageWithUrl", url, store.Id, language.CultureName); var retVal = _cacheManager.Get(cacheKey, "ContentRegion", () => { var allPages = _contentService.LoadContentItemsByUrl("/", store, language, x => new ContentPage(x, language), 1, int.MaxValue); return allPages.FirstOrDefault(x => url.EndsWith(x.Url)) as ContentPage; }); return retVal; }
private ContentPage TryToFindContentPageWithUrl(string url, Store store, Language language) { if (store == null) { return(null); } var cacheKey = String.Join(":", "AllStaticContentForLanguage", store.Id, language.CultureName); var retVal = _cacheManager.Get(cacheKey, "ContentRegion", () => { return(_contentService.LoadContentItemsByUrl("/", store, language, () => new ContentPage(), null, 1, int.MaxValue, renderContent: false).OfType <ContentPage>().ToArray()); }); url = url.TrimStart('/'); return(retVal.FirstOrDefault(x => string.Equals(x.Permalink, url, StringComparison.CurrentCultureIgnoreCase) || string.Equals(x.Url, url, StringComparison.InvariantCultureIgnoreCase))); }
// GET: /blogs/{blog} public ActionResult GetBlog(string blog) { var context = base.WorkContext; Func <string, ContentItem> blogsFactory = contentUrl => { if (contentUrl.EndsWith("default")) { return(new Blog(blog, context.CurrentLanguage)); } return(new BlogArticle(contentUrl, context.CurrentLanguage)); }; var blogContents = _contentService.LoadContentItemsByUrl("/blogs/" + blog, context.CurrentStore, context.CurrentLanguage, blogsFactory, context.CurrentBlogSearchCritera.PageNumber, context.CurrentBlogSearchCritera.PageSize + 1); var contentBlog = blogContents.OfType <Blog>().FirstOrDefault(); if (contentBlog != null) { contentBlog.Articles = new StorefrontPagedList <BlogArticle>(blogContents.OfType <BlogArticle>(), context.CurrentBlogSearchCritera.PageNumber, context.CurrentBlogSearchCritera.PageSize - 1, blogContents.TotalItemCount - 1, page => context.RequestUrl.SetQueryParameter("page", page.ToString()).ToString()); context.CurrentBlog = contentBlog; return(View("blog", base.WorkContext)); } throw new HttpException(404, blog); }