public GetSitemapNodesResponse Get(GetSitemapNodesRequest request) { request.Data.SetDefaultOrder("Title"); var listResponse = repository .AsQueryable<Module.Pages.Models.SitemapNode>() .Where(node => node.Sitemap.Id == request.SitemapId && !node.IsDeleted) .Select(node => new SitemapNodeModel { Id = node.Id, Version = node.Version, CreatedBy = node.CreatedByUser, CreatedOn = node.CreatedOn, LastModifiedBy = node.ModifiedByUser, LastModifiedOn = node.ModifiedOn, ParentId = node.ParentNode != null && !node.ParentNode.IsDeleted ? node.ParentNode.Id : (System.Guid?)null, PageId = node.Page != null && !node.Page.IsDeleted ? node.Page.Id : (System.Guid?)null, PageIsPublished = node.Page != null && !node.Page.IsDeleted && node.Page.Status == PageStatus.Published, PageLanguageId = node.Page != null && !node.Page.IsDeleted && node.Page.Language != null ? node.Page.Language.Id : (System.Guid?)null, Title = node.Page != null && node.UsePageTitleAsNodeTitle ? node.Page.Title : node.Title, Url = node.Page != null ? node.Page.PageUrl : node.Url, DisplayOrder = node.DisplayOrder, Macro = node.Macro }) .ToDataListResponse(request); return new GetSitemapNodesResponse { Data = listResponse }; }
public virtual ActionResult SubMenu(string parentUrl) { var menuItems = new List <MenuItemViewModel>(); using (var api = ApiFactory.Create()) { var pageRequest = new PageExistsRequest { PageUrl = parentUrl }; var pageResponse = api.Pages.Page.Exists(pageRequest); var sitemapId = GetSitemapId(api); if (sitemapId.HasValue) { var parentRequest = new GetSitemapNodesRequest(); parentRequest.SitemapId = sitemapId.Value; parentRequest.Data.Take = 1; parentRequest.Data.Filter.Add("ParentId", null); var filter = new DataFilter(FilterConnector.Or); parentRequest.Data.Filter.Inner.Add(filter); filter.Add("Url", parentUrl); if (pageResponse.Data.Exists) { filter.Add("PageId", pageResponse.Data.PageId.Value); } parentRequest.Data.Order.Add("DisplayOrder"); var parentResponse = api.Pages.Sitemap.Nodes.Get(parentRequest); if (parentResponse.Data.Items.Count == 1) { var request = new GetSitemapTreeRequest { SitemapId = sitemapId.Value }; request.Data.NodeId = parentResponse.Data.Items[0].Id; var response = api.Pages.Sitemap.Tree.Get(request); if (response.Data.Count > 0) { menuItems = response.Data.Select(mi => new MenuItemViewModel { Caption = mi.Title, Url = mi.Url }).ToList(); menuItems.Insert(0, new MenuItemViewModel { Caption = "Main", Url = parentUrl }); } } } } return(View(menuItems)); }
public virtual ActionResult SubMenu(string parentUrl) { var menuItems = new List<MenuItemViewModel>(); using (var api = ApiFactory.Create()) { var pageRequest = new PageExistsRequest { PageUrl = parentUrl }; var pageResponse = api.Pages.Page.Exists(pageRequest); var sitemapId = GetSitemapId(api); if (sitemapId.HasValue) { var parentRequest = new GetSitemapNodesRequest(); parentRequest.SitemapId = sitemapId.Value; parentRequest.Data.Take = 1; parentRequest.Data.Filter.Add("ParentId", null); var filter = new DataFilter(FilterConnector.Or); parentRequest.Data.Filter.Inner.Add(filter); filter.Add("Url", parentUrl); if (pageResponse.Data.Exists) { filter.Add("PageId", pageResponse.Data.PageId.Value); } parentRequest.Data.Order.Add("DisplayOrder"); var parentResponse = api.Pages.Sitemap.Nodes.Get(parentRequest); if (parentResponse.Data.Items.Count == 1) { var request = new GetSitemapTreeRequest { SitemapId = sitemapId.Value }; request.Data.NodeId = parentResponse.Data.Items[0].Id; var response = api.Pages.Sitemap.Tree.Get(request); if (response.Data.Count > 0) { menuItems = response.Data.Select(mi => new MenuItemViewModel { Caption = mi.Title, Url = mi.Url }).ToList(); menuItems.Insert(0, new MenuItemViewModel { Caption = "Main", Url = parentUrl }); } } } } return View(menuItems); }
public GetSitemapNodesResponse Get(GetSitemapNodesRequest request) { request.Data.SetDefaultOrder("Title"); var listResponse = repository .AsQueryable<Module.Pages.Models.SitemapNode>() .Select(node => new SitemapNodeModel { Id = node.Id, Version = node.Version, CreatedBy = node.CreatedByUser, CreatedOn = node.CreatedOn, LastModifiedBy = node.ModifiedByUser, LastModifiedOn = node.ModifiedOn, ParentId = node.ParentNode != null && !node.ParentNode.IsDeleted ? node.ParentNode.Id : (System.Guid?)null, Title = node.Title, Url = node.Url, DisplayOrder = node.DisplayOrder }) .ToDataListResponse(request); return new GetSitemapNodesResponse { Data = listResponse }; }