Exemplo n.º 1
0
        // 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));
        }
Exemplo n.º 2
0
        // 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.");
        }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
        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)));
        }
Exemplo n.º 5
0
        // 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);
        }