public static void Register(this IFeedManager feedManager, BlogPart blogPart)
 {
     feedManager.Register(blogPart.Name, "rss", new RouteValueDictionary {
         { "containerid", blogPart.Id }
     });
     feedManager.Register(blogPart.Name + " - Comments", "rss", new RouteValueDictionary {
         { "commentedoncontainer", blogPart.Id }
     });
 }
        protected override DriverResult Display(CasePostPart part, string displayType, dynamic shapeHelper)
        {
            if (displayType.StartsWith("Detail"))
            {
                var cAseTitle = _contentManager.GetItemMetadata(part.CasePart).DisplayText;
                _feedManager.Register(part.CasePart, cAseTitle);
            }
            CasePostAttribPart attribute = part.Get <CasePostAttribPart>();

            attribute.CourtList = _commonService.GetCourtList();
            foreach (SelectListItem si in attribute.GenreList)
            {
                if (attribute.CaseHeldIn == si.Value)
                {
                    attribute.CaseHeldIn = si.Text;
                }
            }
            foreach (SelectListItem si in attribute.CourtList)
            {
                if (attribute.CaseHeldCourt == si.Value)
                {
                    attribute.CaseHeldCourt = si.Text;
                }
            }
            return(null);
        }
        public ActionResult ListByArchive(string blogPath, string archiveData)
        {
            //TODO: (erikpo) Move looking up the current blog up into a modelbinder
            BlogPart blogPart = _blogService.Get(blogPath);

            if (blogPart == null)
            {
                return(HttpNotFound());
            }

            var archive = new ArchiveData(archiveData);

            var list = Shape.List();

            list.AddRange(_blogPostService.Get(blogPart, archive).Select(b => _services.ContentManager.BuildDisplay(b, "Summary")));

            _feedManager.Register(blogPart);

            dynamic viewModel = Shape.ViewModel()
                                .ContentItems(list)
                                .Blog(blogPart)
                                .ArchiveData(archive);

            //todo: (heskew) add back
            //.ArchiveData(archive) <-- ??

            // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation.
            return(View((object)viewModel));
        }
        public ActionResult Item(int blogId, PagerParameters pagerParameters)
        {
            Pager pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            var blogPart = _blogService.Get(blogId, VersionOptions.Published).As <BlogPart>();

            if (blogPart == null)
            {
                return(HttpNotFound());
            }

            _feedManager.Register(blogPart);
            var blogPosts = _blogPostService.Get(blogPart, pager.GetStartIndex(), pager.PageSize)
                            .Select(b => _services.ContentManager.BuildDisplay(b, "Summary"));
            dynamic blog = _services.ContentManager.BuildDisplay(blogPart);

            var list = Shape.List();

            list.AddRange(blogPosts);
            blog.Content.Add(Shape.Parts_Blogs_BlogPost_List(ContentItems: list), "5");

            var totalItemCount = _blogPostService.PostCount(blogPart);

            blog.Content.Add(Shape.Pager(pager).TotalItemCount(totalItemCount), "Content:after");

            return(new ShapeResult(this, blog));
        }
        public ActionResult Item(int blogId, PagerParameters pagerParameters)
        {
            Pager pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            var blogPart = _blogService.Get(blogId, VersionOptions.Published).As <BlogPart>();

            if (blogPart == null)
            {
                return(HttpNotFound());
            }

            if (!_services.Authorizer.Authorize(Orchard.Core.Contents.Permissions.ViewContent, blogPart, T("Cannot view content")))
            {
                return(new HttpUnauthorizedResult());
            }

            pager.PageSize = blogPart.PostsPerPage;

            _feedManager.Register(blogPart, _services.ContentManager.GetItemMetadata(blogPart).DisplayText);
            var blogPosts = _blogPostService.Get(blogPart, pager.GetStartIndex(), pager.PageSize)
                            .Select(b => _services.ContentManager.BuildDisplay(b, "Summary"));
            dynamic blog = _services.ContentManager.BuildDisplay(blogPart);

            var list = Shape.List();

            list.AddRange(blogPosts);
            blog.Content.Add(Shape.Parts_Blogs_BlogPost_List(ContentItems: list), "5");

            var totalItemCount = _blogPostService.PostCount(blogPart);

            blog.Content.Add(Shape.Pager(pager).TotalItemCount(totalItemCount), "Content:after");

            return(new ShapeResult(this, blog));
        }
Example #6
0
        protected override DriverResult Display(ProjectContainerPart part, string displayType, dynamic shapeHelper)
        {
            return(ContentShape("Parts_Container_Contained", () =>
            {
                var container = part.ContentItem;
                var query = _contentManager
                            .Query(VersionOptions.Published)
                            .Join <CommonPartRecord>().Where(x => x.Container.Id == container.Id)
                            .Join <ContainablePartRecord>().OrderByDescending(x => x.Position);

                var metadata = container.ContentManager.GetItemMetadata(container);
                if (metadata != null)
                {
                    _feedManager.Register(metadata.DisplayText, "rss", new RouteValueDictionary {
                        { "containerid", container.Id }
                    });
                }

                var startIndex = 0;
                var pageOfItems = query.Slice(startIndex, 10).ToList();

                var listShape = shapeHelper.List();
                listShape.AddRange(pageOfItems.Select(item => _contentManager.BuildDisplay(item, "Summary")));
                listShape.Classes.Add("content-items");
                listShape.Classes.Add("list-items");

                return shapeHelper.Parts_Container_Contained(
                    List: listShape,
                    Pager: null
                    );
            }));
        }
Example #7
0
        protected override DriverResult Display(BlogPostPart part, string displayType, dynamic shapeHelper)
        {
            if (displayType.StartsWith("Detail"))
            {
                _feedManager.Register(part.BlogPart);
            }

            return(null);
        }
Example #8
0
        protected override DriverResult Display(ContainerPart part, string displayType, dynamic shapeHelper)
        {
            if (!part.ItemsShown)
            {
                return(null);
            }

            return(ContentShape("Parts_Container_Contained", () => {
                var container = part.ContentItem;
                var query = _contentManager
                            .Query(VersionOptions.Published)
                            .Join <CommonPartRecord>().Where(x => x.Container.Id == container.Id)
                            .Join <ContainablePartRecord>().OrderByDescending(x => x.Position);

                var metadata = container.ContentManager.GetItemMetadata(container);
                if (metadata != null)
                {
                    _feedManager.Register(metadata.DisplayText, "rss", new RouteValueDictionary {
                        { "containerid", container.Id }
                    });
                }

                // Retrieving pager parameters.
                var queryString = _orchardServices.WorkContext.HttpContext.Request.QueryString;

                var page = 0;
                // Don't try to page if not necessary.
                if (part.Paginated && queryString["page"] != null)
                {
                    Int32.TryParse(queryString["page"], out page);
                }

                var pageSize = part.PageSize;
                // If the container is paginated and pageSize is provided in the query string then retrieve it.
                if (part.Paginated && queryString["pageSize"] != null)
                {
                    Int32.TryParse(queryString["pageSize"], out pageSize);
                }

                var pager = new Pager(_siteService.GetSiteSettings(), page, pageSize);

                var pagerShape = shapeHelper.Pager(pager).TotalItemCount(query.Count());
                var startIndex = part.Paginated ? pager.GetStartIndex() : 0;
                var pageOfItems = query.Slice(startIndex, pager.PageSize).ToList();

                var listShape = shapeHelper.List();
                listShape.AddRange(pageOfItems.Select(item => _contentManager.BuildDisplay(item, "Summary")));
                listShape.Classes.Add("content-items");
                listShape.Classes.Add("list-items");

                return shapeHelper.Parts_Container_Contained(
                    List: listShape,
                    Pager: part.Paginated ? pagerShape : null
                    );
            }));
        }
Example #9
0
        protected override DriverResult Display(BlogPostPart part, string displayType, dynamic shapeHelper)
        {
            if (displayType.StartsWith("Detail"))
            {
                var blogTitle = _contentManager.GetItemMetadata(part.BlogPart).DisplayText;
                _feedManager.Register(part.BlogPart, blogTitle);
            }

            return(null);
        }
Example #10
0
        public static void Register(this IFeedManager feedManager, CasePart casePart, string blogTitle)
        {
            if (String.IsNullOrWhiteSpace(casePart.FeedProxyUrl))
            {
                feedManager.Register(blogTitle, "rss", new RouteValueDictionary {
                    { "containerid", casePart.Id }
                });
            }
            else
            {
                feedManager.Register(blogTitle, "rss", casePart.FeedProxyUrl);
            }

            if (casePart.EnableCommentsFeed)
            {
                feedManager.Register(blogTitle + " - Comments", "rss", new RouteValueDictionary {
                    { "commentedoncontainer", casePart.Id }
                });
            }
        }
Example #11
0
        protected override DriverResult Display(TermPart part, string displayType, dynamic shapeHelper)
        {
            return(Combined(
                       ContentShape("Parts_TermPart_Feed", () => {
                // generates a link to the RSS feed for this term
                _feedManager.Register(part.Name, "rss", new RouteValueDictionary {
                    { "term", part.Id }
                });
                return null;
            }),
                       ContentShape("Parts_TermPart", () => {
                var pagerParameters = new PagerParameters();
                var httpContext = _httpContextAccessor.Current();
                if (httpContext != null)
                {
                    pagerParameters.Page = Convert.ToInt32(httpContext.Request.QueryString["page"]);
                }

                var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
                var taxonomy = _taxonomyService.GetTaxonomy(part.TaxonomyId);
                var totalItemCount = _taxonomyService.GetContentItemsCount(part);

                var partSettings = part.Settings.GetModel <TermPartSettings>();
                if (partSettings != null && partSettings.OverrideDefaultPagination)
                {
                    pager.PageSize = partSettings.PageSize;
                }

                var childDisplayType = partSettings != null &&
                                       !String.IsNullOrWhiteSpace(partSettings.ChildDisplayType)
                        ? partSettings.ChildDisplayType
                        : "Summary";
                // asign Taxonomy and Term to the content item shape (Content) in order to provide
                // alternates when those content items are displayed when they are listed on a term
                var termContentItems = _taxonomyService.GetContentItems(part, pager.GetStartIndex(), pager.PageSize)
                                       .Select(c => _contentManager.BuildDisplay(c, childDisplayType).Taxonomy(taxonomy).Term(part));

                var list = shapeHelper.List();

                list.AddRange(termContentItems);

                var pagerShape = pager.PageSize == 0
                        ? null
                        : shapeHelper.Pager(pager)
                                 .TotalItemCount(totalItemCount)
                                 .Taxonomy(taxonomy)
                                 .Term(part);

                return shapeHelper.Parts_TermPart(ContentItems: list, Taxonomy: taxonomy, Pager: pagerShape);
            })));
        }
Example #12
0
 protected override void Displaying(SocketDisplayContext context)
 {
     // TODO: Optionally expose a unified feed comprised of all applicable connector types.
     // TODO: We could feasibly want to register the feed on other display types
     if (context.Left.DisplayType == "Detail")
     {
         var settings = context.Connector.PartDefinition.Settings.GetModel <AggregationTypePartSettings>();
         if (settings != null && settings.ExposeFeed)
         {
             _feedManager.Register(context.Left.ContentItem.GetTitle() + " - " + context.SocketMetadata.SocketTitle, "rss", new RouteValueDictionary {
                 { "id", context.Left.ContentItem.Id }, { "connector", context.Connector.Name }
             });
         }
     }
 }
        public ActionResult Item(string termPath, PagerParameters pagerParameters)
        {
            var pager         = new Pager(_siteService.GetSiteSettings(), pagerParameters);
            var correctedPath = _termPathConstraint.FindPath(termPath);

            if (correctedPath == null)
            {
                return(HttpNotFound());
            }

            var termPart = _taxonomyService.GetTermByPath(correctedPath);

            if (termPart == null)
            {
                return(HttpNotFound());
            }

            var taxonomy       = _taxonomyService.GetTaxonomy(termPart.TaxonomyId);
            var totalItemCount = _taxonomyService.GetContentItemsCount(termPart);

            var termContentItems = _taxonomyService.GetContentItems(termPart, pager.GetStartIndex(), pager.PageSize)
                                   .Select(c => _contentManager.BuildDisplay(c, "Summary").Taxonomy(taxonomy).Term(termPart));

            dynamic term = _contentManager.BuildDisplay(termPart);

            var list = Shape.List();

            list.AddRange(termContentItems);

            term.Content.Add(
                Shape.Taxonomies_TermContentItems_List(ContentItems: list)
                .Taxonomy(taxonomy)
                .Term(termPart), "5");

            term.Content.Add(
                Shape.Pager(pager)
                .TotalItemCount(totalItemCount)
                .Taxonomy(taxonomy)
                .Term(termPart), "Content:after");

            // generates a link to the RSS feed for this term
            _feedManager.Register(termPart.Name, "rss", new RouteValueDictionary {
                { "term", termPart.Id }
            });

            return(new ShapeResult(this, term));
        }
Example #14
0
        protected override DriverResult Display(ContainerPart part, string displayType, dynamic shapeHelper)
        {
            if (!part.ItemsShown)
            {
                return(null);
            }

            return(ContentShape("Parts_Container_Contained",
                                () => {
                var container = part.ContentItem;

                IContentQuery <ContentItem> query = _contentManager
                                                    .Query(VersionOptions.Published)
                                                    .Join <CommonPartRecord>().Where(cr => cr.Container.Id == container.Id);

                var descendingOrder = part.OrderByDirection == (int)OrderByDirection.Descending;
                query = query.OrderBy(part.OrderByProperty, descendingOrder);
                var metadata = container.ContentManager.GetItemMetadata(container);
                if (metadata != null)
                {
                    _feedManager.Register(metadata.DisplayText, "rss", new RouteValueDictionary {
                        { "containerid", container.Id }
                    });
                }

                var pager = new Pager(_siteService.GetSiteSettings(), part.PagerParameters);
                pager.PageSize = part.PagerParameters.PageSize != null && part.Paginated
                                                ? pager.PageSize
                                                : part.PageSize;

                var pagerShape = shapeHelper.Pager(pager).TotalItemCount(query.Count());

                var startIndex = part.Paginated ? pager.GetStartIndex() : 0;
                var pageOfItems = query.Slice(startIndex, pager.PageSize).ToList();

                var listShape = shapeHelper.List();
                listShape.AddRange(pageOfItems.Select(item => _contentManager.BuildDisplay(item, "Summary")));
                listShape.Classes.Add("content-items");
                listShape.Classes.Add("list-items");

                return shapeHelper.Parts_Container_Contained(
                    List: listShape,
                    Pager: part.Paginated ? pagerShape : null
                    );
            }));
        }
Example #15
0
        public ActionResult ListByArchive(string path)
        {
            var cAsePath = _archiveConstraint.FindPath(path);
            var archive  = _archiveConstraint.FindArchiveData(path);

            if (cAsePath == null)
            {
                return(HttpNotFound());
            }

            if (archive == null)
            {
                return(HttpNotFound());
            }

            CasePart cAsePart = _cAseService.Get(cAsePath);

            if (cAsePart == null)
            {
                return(HttpNotFound());
            }


            if (archive.ToDateTime() == DateTime.MinValue)
            {
                // render the archive data
                return(new ShapeResult(this, Shape.Parts_Cases_CaseArchives(Case: cAsePart, Archives: _cAsePostService.GetArchives(cAsePart))));
            }

            var list = Shape.List();

            list.AddRange(_cAsePostService.Get(cAsePart, archive).Select(b => _services.ContentManager.BuildDisplay(b, "Summary")));

            _feedManager.Register(cAsePart, _services.ContentManager.GetItemMetadata(cAsePart).DisplayText);

            var viewModel = Shape.ViewModel()
                            .ContentItems(list)
                            .Case(cAsePart)
                            .ArchiveData(archive);

            return(View(viewModel));
        }
Example #16
0
        public ActionResult Item(string blogPath, PagerParameters pagerParameters)
        {
            Pager pager         = new Pager(_siteService.GetSiteSettings(), pagerParameters);
            var   correctedPath = _blogPathConstraint.FindPath(blogPath);

            if (correctedPath == null)
            {
                return(HttpNotFound());
            }

            var blogPart = _blogService.Get(correctedPath);

            if (blogPart == null)
            {
                return(HttpNotFound());
            }

            // primary action run for a home paged item shall not pass
            if (!RouteData.DataTokens.ContainsKey("ParentActionViewContext") &&
                blogPart.Id == _routableHomePageProvider.GetHomePageId(_workContextAccessor.GetContext().CurrentSite.HomePage))
            {
                return(HttpNotFound());
            }

            _feedManager.Register(blogPart);
            var blogPosts = _blogPostService.Get(blogPart, pager.GetStartIndex(), pager.PageSize)
                            .Select(b => _services.ContentManager.BuildDisplay(b, "Summary"));
            dynamic blog = _services.ContentManager.BuildDisplay(blogPart);

            var list = Shape.List();

            list.AddRange(blogPosts);
            blog.Content.Add(Shape.Parts_Blogs_BlogPost_List(ContentItems: list), "5");

            var totalItemCount = _blogPostService.PostCount(blogPart);

            blog.Content.Add(Shape.Pager(pager).TotalItemCount(totalItemCount), "Content:after");

            return(new ShapeResult(this, blog));
        }
Example #17
0
        protected override DriverResult Display(ContainerPart part, string displayType, dynamic shapeHelper)
        {
            if (part.As <AttachToProjectPart>() == null)
            {
                return(null);
            }

            return(ContentShape("Parts_Container_Contained", () => {
                var container = part.ContentItem;
                var query = _contentManager
                            .Query(VersionOptions.Published)
                            .Join <CommonPartRecord>().Where(x => x.Container.Id == container.Id)
                            .Join <ContainablePartRecord>().OrderByDescending(x => x.Position);

                var metadata = container.ContentManager.GetItemMetadata(container);
                if (metadata != null)
                {
                    _feedManager.Register(metadata.DisplayText, "rss", new RouteValueDictionary {
                        { "containerid", container.Id }
                    });
                }

                var pager = new Pager(_siteService.GetSiteSettings(), part.PagerParameters);
                pager.PageSize = part.PagerParameters.PageSize != null && part.Paginated
                                ? pager.PageSize
                                : part.PageSize;

                var pagerShape = shapeHelper.Pager(pager).TotalItemCount(query.Count());
                var startIndex = part.Paginated ? pager.GetStartIndex() : 0;
                var pageOfItems = query.Slice(startIndex, pager.PageSize).ToList();

                var itemsShape = pageOfItems.Select(item => _contentManager.BuildDisplay(item, "Detail")).ToList();
                var listShape = shapeHelper.ListShape(Model: itemsShape);

                return shapeHelper.Parts_Container_Contained(
                    List: listShape,
                    Pager: part.Paginated ? pagerShape : null
                    );
            }));
        }
Example #18
0
        protected override DriverResult Display(OptionItemPart part, string displayType, dynamic shapeHelper)
        {
            return(Combined(
                       ContentShape("Parts_OptionItemPart_Feed", () => {
                // generates a link to the RSS feed for this term
                _feedManager.Register(part.Name, "rss", new RouteValueDictionary {
                    { "optionItem", part.Id }
                });
                return null;
            }),
                       ContentShape("Parts_OptionItemPart", () => {
                var pagerParameters = new PagerParameters();
                var httpContext = _httpContextAccessor.Current();
                if (httpContext != null)
                {
                    pagerParameters.Page = Convert.ToInt32(httpContext.Request.QueryString["page"]);
                }

                var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
                var optionSet = _optionSetService.GetOptionSet(part.OptionSetId);
                var totalItemCount = 100;

                // asign Taxonomy and Term to the content item shape (Content) in order to provide
                // alternates when those content items are displayed when they are listed on a term
                var termContentItems = _optionSetService.GetContentItems(part, pager.GetStartIndex(), pager.PageSize)
                                       .Select(c => _contentManager.BuildDisplay(c, "Summary").Taxonomy(optionSet).Term(part));

                var list = shapeHelper.List();

                list.AddRange(termContentItems);

                var pagerShape = shapeHelper.Pager(pager)
                                 .TotalItemCount(totalItemCount)
                                 .Taxonomy(optionSet)
                                 .Term(part);

                return shapeHelper.Parts_TermPart(ContentItems: list, Taxonomy: optionSet, Pager: pagerShape);
            })));
        }
Example #19
0
        public void OnResultExecuting(ResultExecutingContext filterContext)
        {
            var routeValues = filterContext.RouteData.Values;

            if (routeValues["area"] as string == "Orchard.Tags" &&
                routeValues["controller"] as string == "Home" &&
                routeValues["action"] as string == "Search")
            {
                var tag = routeValues["tagName"] as string;
                if (!string.IsNullOrWhiteSpace(tag))
                {
                    var workContext = _wca.GetContext();
                    workContext.Layout.ListingItemsForTag = tag;
                    _feedManager.Register(
                        TagFeedQuery.GetTitle(tag, workContext.CurrentSite),
                        "rss",
                        new RouteValueDictionary {
                        { "tag", tag }
                    }
                        );
                }
            }
        }
Example #20
0
        public ActionResult ListByArchive(string path)
        {
            var blogPath = _archiveConstraint.FindPath(path);
            var archive  = _archiveConstraint.FindArchiveData(path);

            if (blogPath == null)
            {
                return(HttpNotFound());
            }

            if (archive == null)
            {
                return(HttpNotFound());
            }

            BlogPart blogPart = _blogService.Get(blogPath);

            if (blogPart == null)
            {
                return(HttpNotFound());
            }

            var list = Shape.List();

            list.AddRange(_blogPostService.Get(blogPart, archive).Select(b => _services.ContentManager.BuildDisplay(b, "Summary")));

            _feedManager.Register(blogPart);

            dynamic viewModel = Shape.ViewModel()
                                .ContentItems(list)
                                .Blog(blogPart)
                                .ArchiveData(archive);

            // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation.
            return(View((object)viewModel));
        }