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)); }
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 ); })); }
protected override DriverResult Display(BlogPostPart part, string displayType, dynamic shapeHelper) { if (displayType.StartsWith("Detail")) { _feedManager.Register(part.BlogPart); } return(null); }
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 ); })); }
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); }
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 } }); } }
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); }))); }
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)); }
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 ); })); }
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)); }
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)); }
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 ); })); }
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); }))); }
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 } } ); } } }
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)); }