private List <NavigationListItem> GetChildNavigationList(IPublishedContent page)
        {
            var childPages = page.Children.Where("Visible")
                             .Where(x => x.Level <= 2)
                             .Where(x => !x.HasProperty("excludeFromTopNavigation") || !x.GetPropertyValue <bool>("excludeFromTopNavigation"));

            if (childPages == null)
            {
                return(new List <NavigationListItem>());
            }

            if (!childPages.Any())
            {
                return(new List <NavigationListItem>());
            }

            var result = new List <NavigationListItem>();

            foreach (var childPage in childPages)
            {
                var listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name))
                {
                    Items = GetChildNavigationList(childPage)
                };

                result.Add(listItem);
            }

            return(result);
        }
Example #2
0
        /// <summary>
        /// Adds a new item to the navigation panel given the module (navigationPanelItemName) and module group ().
        /// Note, if either module or module group does not exist then an exception is thrown.
        /// </summary>
        /// <param name="navigationPanelItemName"></param>
        /// <param name="navigationListName"></param>
        /// <param name="moduleGroupItem"></param>
        public void AddNavigationListItem(string navigationPanelItemName, string navigationListName, ModuleGroupItem moduleGroupItem)
        {
            var navigationPanelItem = navigationPanel.NavigationPanelItems.FirstOrDefault(
                npi => npi.NavigationPanelItemName.Equals(navigationPanelItemName));

            var navigationList = navigationPanelItem.NavigationList.FirstOrDefault(
                nl => nl.NavigationListName.Equals(navigationListName));

            var navigationListItems = new NavigationListItem
            {
                ItemName      = moduleGroupItem.ModuleGroupItemName,
                ImageLocation = moduleGroupItem.ModuleGroupItemImagePath
            };

            navigationListItems.ItemClicked += GroupListItemItemClicked;
            navigationList.NavigationListItems.Add(navigationListItems);

            var navigationSettings = new NavigationSettings
            {
                Title = moduleGroupItem.TargetViewTitle,
                View  = moduleGroupItem.TargetView
            };

            string navigationKey = String.Format("{0}.{1}.{2}",
                                                 navigationPanelItem.NavigationPanelItemName,
                                                 navigationList.NavigationListName,
                                                 navigationListItems.ItemName);

            navigationListItems.Tag = navigationKey;
            navigationSettingsList.Add(navigationKey, navigationSettings);
        }
Example #3
0
        private static List <NavigationListItem> GetChildNavigationList(IPublishedContent page)
        {
            var childPages = page.Children.Where(v => v.IsVisible())
                             .Where(v => !v.HasValue("excludeFromTopNavigation") ||
                                    (v.HasValue("excludeFromTopNavigation") &&
                                     !v.GetPropertyValue <bool>("excludeFromTopNavigation"))).ToList();

            if (!childPages.Any())
            {
                return(null);
            }

            var listItems = new List <NavigationListItem>();

            foreach (var childPage in childPages)
            {
                var listItem =
                    new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name))
                {
                    Items = GetChildNavigationList(childPage)
                };
                listItems.Add(listItem);
            }

            return(listItems);
        }
        /// <summary>
        /// Adds a new item to the navigation panel given the module (navigationPanelItemName) and module group ().
        /// Note, if either module or module group does not exist then an exception is thrown.
        /// </summary>
        /// <param name="navigationPanelItemName"></param>
        /// <param name="navigationListName"></param>
        /// <param name="moduleGroupItem"></param>
        public void AddNavigationListItem(string navigationPanelItemName, string navigationListName, ModuleGroupItem moduleGroupItem)
        {
            if (moduleGroupItem == null)
            {
                throw new ArgumentNullException(nameof(moduleGroupItem));
            }

            var navigationPanelItem = NavigationPanelItems.FirstOrDefault(
                npi => npi.NavigationPanelItemName.Equals(navigationPanelItemName, StringComparison.Ordinal));

            var navigationList = navigationPanelItem.NavigationList.FirstOrDefault(
                nl => nl.NavigationListName.Equals(navigationListName, StringComparison.Ordinal));

            var navigationListItem = new NavigationListItem
            {
                ItemName      = moduleGroupItem.ModuleGroupItemName,
                ImageLocation = moduleGroupItem.ModuleGroupItemImagePath
            };

            OnRegisterNavigation(navigationListItem);

            navigationList.NavigationListItems.Add(navigationListItem);

            var navigationSettings = new NavigationSettings
            {
                Title = moduleGroupItem.TargetViewTitle,
                View  = moduleGroupItem.TargetView
            };

            string navigationKey = $"{navigationPanelItem.NavigationPanelItemName}.{navigationList.NavigationListName}.{navigationListItem.ItemName}";

            navigationListItem.Tag = navigationKey;
            NavigationSettingsList.Add(navigationKey, navigationSettings);
        }
Example #5
0
        public void SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (SelectedIndex < 0)
            {
                return;
            }
            NavigationListItem item = NavigationList[SelectedIndex];

            if (item != null && item.PageType != null)
            {
                ClearDetailFrame();
                FuncFrame.Navigate(item.PageType);
            }
        }
Example #6
0
        private ListResult <NavigationListItem> GetNavigation(int siteId)
        {
            ListResult <NavigationListItem> data = null;

            if (base.IsUseCache)
            {
                data = MemoryCacher.GetValue("SITE-NAVIGATION") as ListResult <NavigationListItem>;

                if (data != null)
                {
                    return(data);
                }
            }

            IList <NavigateInfo> allNavigates = VShopHelper.GetAllNavigate(ClientType.App);

            List <NavigationListItem> items = new List <NavigationListItem>();

            if (allNavigates != null)
            {
                NavigationListItem item = null;

                foreach (var current in allNavigates)
                {
                    item = new NavigationListItem();

                    item.Id              = current.BannerId;
                    item.Title           = current.ShortDesc;
                    item.Icon            = Util.AppendImageHost(current.ImageUrl);
                    item.NavigationType  = (int)current.LocationType;
                    item.Values          = current.Url;
                    item.DisplaySequence = current.DisplaySequence;

                    items.Add(item);
                }
            }

            data = new ListResult <NavigationListItem>();
            data.TotalNumOfRecords = items.Count;;
            data.Results           = items;

            if (base.IsUseCache)
            {
                MemoryCacher.Add("SITE-NAVIGATION", data, DateTimeOffset.UtcNow.AddMinutes(SITE_CACHE_KEEP_TIME));
            }

            return(data);
        }
        /// <summary>
        /// Adds a new module to the navigation view. Called by the <see cref="ModuleNavigator"/>.
        /// </summary>
        /// <param name="moduleSettings">Module settings.</param>
        public void AddModule(ModuleSettings moduleSettings)
        {
            if (moduleSettings == null)
            {
                throw new ArgumentNullException(nameof(moduleSettings));
            }

            var navigationPanelItem = new NavigationPanelItem
            {
                NavigationPanelItemName = moduleSettings.ModuleName,
                ImageLocation           = moduleSettings.ModuleImagePath
            };

            foreach (ModuleGroup moduleGroup in moduleSettings.ModuleGroups)
            {
                var navigationList = new NavigationList {
                    NavigationListName = moduleGroup.ModuleGroupName
                };

                foreach (ModuleGroupItem moduleGroupItem in moduleGroup.ModuleGroupItems)
                {
                    var navigationListItem = new NavigationListItem
                    {
                        ItemName      = moduleGroupItem.ModuleGroupItemName,
                        ImageLocation = moduleGroupItem.ModuleGroupItemImagePath
                    };

                    OnRegisterNavigation(navigationListItem);

                    navigationList.NavigationListItems.Add(navigationListItem);

                    var navigationSettings = new NavigationSettings
                    {
                        Title = moduleGroupItem.TargetViewTitle,
                        View  = moduleGroupItem.TargetView
                    };

                    string navigationKey = $"{navigationPanelItem.NavigationPanelItemName}.{navigationList.NavigationListName}.{navigationListItem.ItemName}";

                    navigationListItem.Tag = navigationKey;
                    NavigationSettingsList.Add(navigationKey, navigationSettings);
                }

                navigationPanelItem.NavigationList.Add(navigationList);
            }

            NavigationPanelItems.Add(navigationPanelItem);
        }
Example #8
0
        private List <NavigationListItem> GetChildNavigationList(IPublishedContent page)
        {
            List <NavigationListItem> listItems = new List <NavigationListItem>();
            var childPages = page.Children.Where(x => x.DocumentTypeAlias.ToLower() == "page");

            if (childPages != null && childPages.Any() && childPages.Count() > 0)
            {
                foreach (var childPage in childPages)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);
                    listItems.Add(listItem);
                }
            }
            return(listItems);
        }
Example #9
0
        /// <summary>
        /// Loops through the child pages of a given page and their children to get the structure of the site.
        /// </summary>
        /// <param name="page">The parent page which you want the child structure for</param>
        /// <returns>A List of NavigationListItems, representing the structure of the pages below a page.</returns>
        private List <NavigationListItem> GetChildNavigationList(dynamic page)
        {
            List <NavigationListItem> listItems = null;
            var childPages = page.Children.Where("Visible");

            if (childPages != null && childPages.Any() && childPages.Count() > 0)
            {
                listItems = new List <NavigationListItem>();
                foreach (var childPage in childPages)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);
                    listItems.Add(listItem);
                }
            }
            return(listItems);
        }
Example #10
0
        /// <summary>
        /// Loops through the child pages of a given page and their children to get the structure of the site.
        /// </summary>
        /// <param name="page">The parent page which you want the child structure for</param>
        /// <returns>A List of NavigationListItems, representing the structure of the pages below a page.</returns>
        private List <NavigationListItem> GetChildNavigationList(IPublishedContent page)
        {
            List <NavigationListItem> listItems = null;
            var childPages = page.Children.Where("Visible").Where(x => x.Level <= 2).Where(x => !x.HasValue("excludeFromTopNavigation") || (x.HasValue("excludeFromTopNavigation") && !x.GetPropertyValue <bool>("excludeFromTopNavigation")));

            if (childPages != null && childPages.Any() && childPages.Count() > 0)
            {
                listItems = new List <NavigationListItem>();
                foreach (var childPage in childPages)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);
                    listItems.Add(listItem);
                }
            }
            return(listItems);
        }
Example #11
0
        /// <summary>
        /// Adds a new module to the navigation view. Called by the <see cref="ModuleNavigator"/>.
        /// </summary>
        /// <param name="moduleSettings">Module settings.</param>
        public void AddModule(ModuleSettings moduleSettings)
        {
            var navigationPanelItem = new NavigationPanelItem
            {
                NavigationPanelItemName = moduleSettings.ModuleName,
                ImageLocation           = moduleSettings.ModuleImagePath
            };

            foreach (ModuleGroup moduleGroup in moduleSettings.ModuleGroups)
            {
                var navigationList = new NavigationList {
                    NavigationListName = moduleGroup.ModuleGroupName
                };

                foreach (ModuleGroupItem moduleGroupItem in moduleGroup.ModuleGroupItems)
                {
                    var navigationListItem = new NavigationListItem
                    {
                        ItemName      = moduleGroupItem.ModuleGroupItemName,
                        ImageLocation = moduleGroupItem.ModuleGroupItemImagePath
                    };

                    OnRegisterNavigation(navigationListItem);

                    navigationList.NavigationListItems.Add(navigationListItem);

                    var navigationSettings = new NavigationSettings
                    {
                        Title = moduleGroupItem.TargetViewTitle,
                        View  = moduleGroupItem.TargetView
                    };

                    string navigationKey = string.Format("{0}.{1}.{2}",
                                                         navigationPanelItem.NavigationPanelItemName,
                                                         navigationList.NavigationListName,
                                                         navigationListItem.ItemName);

                    navigationListItem.Tag = navigationKey;
                    NavigationSettingsList.Add(navigationKey, navigationSettings);
                }

                navigationPanelItem.NavigationList.Add(navigationList);
            }

            NavigationPanelItems.Add(navigationPanelItem);
        }
        /// <summary>
        /// Loops through the child pages of a given page and their children to get the structure of the site.
        /// </summary>
        /// <param name="page">The parent page which you want the child structure for</param>
        /// <returns>A List of NavigationListItems, representing the structure of the pages below a page.</returns>
        private List <NavigationListItem> GetChildNavigationList(IPublishedContent page)
        {
            List <NavigationListItem> listItems = null;
            //var childPages = page.Children.Where(x => x.IsVisible());
            var childPages = page.Children.Where("Visible").Where(x => x.Level <= 2);

            if (childPages != null && childPages.Any() && childPages.Count() > 0)
            {
                listItems = new List <NavigationListItem>();
                foreach (var childPage in childPages)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);
                    listItems.Add(listItem);
                }
            }
            return(listItems);
        }
        private List <NavigationListItem> GetChildNavigationList(IPublishedContent page)
        {
            List <NavigationListItem> listItems = new List <NavigationListItem>();

            var childPages = page.Children.Where(x => (x.HasValue("excludeFromTopNavigation") && x.GetPropertyValue <bool>("excludeFromTopNavigation") != true) || !x.HasValue("excludeFromTopNavigation"));// & x.Level <= 2);  //todo: Change so that only outputs blog categores in the blog sub menu and not the blog posts

            if (childPages != null && childPages.Count() > 0)
            {
                foreach (var childPage in childPages)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);
                    listItems.Add(listItem);
                }
            }

            return(listItems);
        }
Example #14
0
        /// <summary>
        /// Loops through the child pages of a given page and their children to get the structure of the site.
        /// </summary>
        /// <param name="page">The parent page which you want the child structure for</param>
        /// <returns>A List of NavigationListItems, representing the structure of the pages below a page.</returns>
        private List <NavigationListItem> GetChildNavigationList(IPublishedContent page)
        {
            List <NavigationListItem> listItems = null;
            var childPages = page.Children;

            if (childPages != null)
            {
                listItems = new List <NavigationListItem>();
                foreach (var childPage in childPages)
                {
                    NavigationListItem listItem = new NavigationListItem(new NavigationLink(childPage.Url, childPage.Name));
                    listItem.Items = GetChildNavigationList(childPage);

                    listItems.Add(listItem);
                }
            }
            return(listItems);
        }
Example #15
0
 public NavigationEventArgs(NavigationListItem navigationListItem)
 {
     NavigationListItem = navigationListItem;
 }
Example #16
0
        private void OnUnregisterNavigation(NavigationListItem navigationListItem)
        {
            var unregisterNavigation = UnregisterNavigation;

            unregisterNavigation?.Invoke(this, new NavigationEventArgs(navigationListItem));
        }