public async Task <IEnumerable <NavigationMenuItem> > GenerateMenuItems()
        {
            Settings settings = await _settingsRepository.GetWithFallback();

            PageData rootPageData = await _sitecoreService.GeneratePageData(
                settings.SitecoreNavigationRootId,
                PayloadType.Content,
                new List <ScopeType> () {
                ScopeType.Self,
                ScopeType.Children
            },
                Constants.Sitecore.Fields.Teasers.TeaserSelector,
                settings.SitecoreDefaultLanguage);

            if (rootPageData == null || rootPageData.ItemContext == null)
            {
                return(null);
            }

            List <NavigationMenuItem> menuItems = new List <NavigationMenuItem> ();

            for (int i = 0; i < rootPageData.ItemContext.ResultCount; i++)
            {
                ISitecoreItem item = rootPageData.ItemContext [i];

                if (item == null)
                {
                    continue;
                }

                NavigationMenuItem menuItem = new NavigationMenuItem {
                    Title       = item.GetValueFromField(Constants.Sitecore.Fields.Navigation.NavigationTitle),
                    RowColor    = Color.Transparent,
                    PageContext = await GetPageData(item, rootPageData),
                    ShowInMenu  = item.GetCheckBoxValueFromField(Constants.Sitecore.Fields.Navigation.ShowInNavigation),
                    IconSource  = item.GetValueFromField(Constants.Sitecore.Fields.Navigation.Icon)
                };

                menuItems.Add(menuItem);
            }

            return(menuItems);
        }
Exemplo n.º 2
0
        public async Task <Page> LoadPageByItemId(string id)
        {
            Settings settings = await _settingsRepository.GetWithFallback();

            PageData pageData = await _sitecoreService.GeneratePageData(id,
                                                                        PayloadType.Content,
                                                                        new List <ScopeType> (){ ScopeType.Self },
                                                                        Constants.Sitecore.Fields.Teasers.TeaserSelector,
                                                                        settings.SitecoreDefaultLanguage);


            return(await LoadPageByPageData(pageData));
        }