예제 #1
0
        public ActionResult ArchiveByYearMonth(int year, int month, int?page)
        {
            IPublishedContent homePage = umbracoHelper.TypedContentAtRoot().FirstOrDefault(x => x.ContentType.Alias.Equals("home"));
            IPublishedContent blogPage = homePage.Children.Where(x => x.DocumentTypeAlias == "blogHome").FirstOrDefault();

            var pageNumber = page ?? 1;

            List <BlogPost>    blogResults  = blogPage.Descendants <BlogPost>().ToList();
            List <BlogPreview> blogPreviews = new List <BlogPreview>();

            foreach (BlogPost post in blogResults.Where(r => r.CreateDate.Year == year && r.CreateDate.Month == month).OrderByDescending(x => x.CreateDate))
            {
                int imageId   = post.GetPropertyValue <int>("summaryImage");
                var mediaItem = umbracoHelper.Media(imageId);

                blogPreviews.Add(new BlogPreview(post.Name, post.SummaryText, mediaItem.Url, post.Url, post.CreateDate, post.CreatorName));
            }

            var date       = new DateTime(year, month, 1);
            var urlSegment = string.Format("/blog/{0}/{1}", date.ToString("yyyy"), date.ToString("MM"));

            var infoTitle = date.ToString("MM yyyy") + " Archives";
            var pageInfo  = new HtmlMeta("SITE NAME", infoTitle, "", "http://www.example.com", "@OGSiteName", "@TwitterName");

            BlogSearchResults searchResults = new BlogSearchResults(date.ToString("MMMM yyyy"), "Archives", urlSegment, blogPreviews.ToPagedList(pageNumber, PAGESIZE));

            var viewModel = new SearchResultsViewModel
            {
                PageInfo = pageInfo,
                Results  = searchResults
            };

            return(View(viewModel));
        }
예제 #2
0
        public ActionResult Tags(string tag, int?page)
        {
            List <BlogPreview> blogResults = new List <BlogPreview>();

            var pageNumber = page ?? 1;

            if (!string.IsNullOrEmpty(tag))
            {
                //model = getExamineSearchResultsByField("tagsIndexed", tag);
                blogResults = blogResultsHelper.getResultsByTag(tag);
            }

            var urlSegment = string.Format("/blog/tags/{0}", tag);
            var pageInfo   = new HtmlMeta("SITE NAME", tag, "", "http://www.example.com", "@OGSiteName", "@TwitterName");

            BlogSearchResults searchResults = new BlogSearchResults(tag, "Tagged with", urlSegment, blogResults.ToPagedList(pageNumber, PAGESIZE));

            var viewModel = new SearchResultsViewModel
            {
                PageInfo = pageInfo,
                Results  = searchResults
            };

            return(View(viewModel));
        }
예제 #3
0
        public ActionResult Search(string blogSearchString, int?page)
        {
            List <IPublishedContent> contents = new List <IPublishedContent>();
            List <BlogPreview>       results  = new List <BlogPreview>();
            var pageNumber = page ?? 1;

            var searcher = "BlogSearcher";

            //Fetching our SearchProvider by giving it the name of our searchprovider
            var Searcher = Examine.ExamineManager.Instance.SearchProviderCollection[searcher];

            foreach (var item in umbracoHelper.TypedSearch(blogSearchString, false, "BlogSearcher"))
            {
                var post = umbracoHelper.TypedContent(item.Id);

                int imageId   = post.GetPropertyValue <int>("summaryImage");
                var mediaItem = umbracoHelper.Media(imageId);
                results.Add(new BlogPreview(post.Name, post.GetPropertyValue <string>("summaryText"), mediaItem.Url, post.Url, post.CreateDate, post.CreatorName, 0));
            }

            var urlSegment = string.Format("/blog/search/{0}", blogSearchString);
            var pageInfo   = new HtmlMeta("SITE NAME", "Search results for " + blogSearchString, "", "http://www.example.com", "@OGSiteName", "@TwitterName");

            BlogSearchResults searchResults = new BlogSearchResults(blogSearchString, "Search", urlSegment, results.ToPagedList(pageNumber, PAGESIZE));

            var viewModel = new SearchResultsViewModel
            {
                PageInfo = pageInfo,
                Results  = searchResults
            };

            return(View(viewModel));
        }
예제 #4
0
        public ActionResult RenderPostList(int numberOfItems)
        {
            List <BlogPreview> blogResults = new List <BlogPreview>();

            blogResults = blogResultsHelper.getTopResults(numberOfItems);

            var urlSegment          = string.Format("/blog/");
            BlogSearchResults model = new BlogSearchResults("", "", urlSegment, blogResults.ToPagedList(1, numberOfItems));

            return(PartialView("~/Views/Partials/BlogSearch/_SearchResults.cshtml", model));
        }
예제 #5
0
        public ActionResult Category(string category, int?page)
        {
            List <BlogPreview> blogResults = new List <BlogPreview>();

            var pageNumber = page ?? 1;

            if (!string.IsNullOrEmpty(category))
            {
                blogResults = blogResultsHelper.getResultsByCategory(category);
            }
            var urlSegment = string.Format("/blog/category/{0}", category);
            var pageInfo   = new HtmlMeta("SITE NAME", category, "", "http://www.example.com", "@OGSiteName", "@TwitterName");
            BlogSearchResults searchResults = new BlogSearchResults(category, "Categorised as", urlSegment, blogResults.ToPagedList(pageNumber, PAGESIZE));

            var viewModel = new SearchResultsViewModel
            {
                PageInfo = pageInfo,
                Results  = searchResults
            };

            return(View(viewModel));
        }
예제 #6
0
 public SearchResultsPage(HtmlMeta pageInfo, BlogSearchResults results)
 {
     PageInfo = pageInfo;
     Results  = results;
 }