예제 #1
0
        public void NavbarController_HasChildrenOfHome_ReturnsSameNumber()
        {
            _context.GetHomeItem <IBaseItem>().Children.Returns(new List <IBaseItem>
            {
                Substitute.For <IBaseItem>(),
                Substitute.For <IBaseItem>(),
                Substitute.For <IBaseItem>()
            });

            ViewResult result = _sut.Index() as ViewResult;


            var resultCollection = result.Model as IEnumerable <Models.NavElement>;

            resultCollection.Should().HaveCount(3);
        }
예제 #2
0
        // GET: Navbar
        public ActionResult Index()
        {
            var home    = _sitecoreContext.GetHomeItem <IBaseItem>();
            var current = _sitecoreContext.GetCurrentItem <IBaseItem>();

            List <NavElement> list = new List <NavElement>();

            foreach (var child in home.Children)
            {
                list.Add(new NavElement {
                    Text = child.Name, Href = child.Url, Active = child.Id == current.Id
                });
            }
            return(View("~/Views/Navbar.cshtml", list));
        }
예제 #3
0
        private IEnumerable <IGeneral_Content_Page> GetPages()
        {
            var home      = SitecoreContext.GetHomeItem <IHome_Page>();
            var startPath = home._Path;

            using (var context = SearchContextFactory.Create())
            {
                var query = context.GetQueryable <GeneralContentResult>()
                            .Filter(j => j.TemplateId == IGeneral_Content_PageConstants.TemplateId && j.Path.StartsWith(startPath.ToLower()) && j.ExcludeFromGoogleSearch);

                var results = query.GetResults();

                var pages = results.Hits.Select(h => SitecoreContext.GetItem <IGeneral_Content_Page>(h.Document.ItemId.Guid)).Where(a => a != null);
                return((!pages.Any())
                ? Enumerable.Empty <IGeneral_Content_Page>()
                : pages);
            }
        }
 public T GetHomeItem <T>(bool isLazy = false, bool inferType = false) where T : class
 {
     return(_sitecoreContext.GetHomeItem <T>(isLazy, inferType));
 }
예제 #5
0
 public override HomeModel GetModel()
 {
     _context = new SitecoreContext();
     return(_context.GetHomeItem <HomeModel>());
 }
예제 #6
0
        public string GetSitemapXML_Old()
        {
            var    home   = SitecoreContext.GetHomeItem <IHome_Page>();
            string domain = $"{HttpContext.Current.Request.Url.Scheme}://{HttpContext.Current.Request.Url.Host}";

            IEnumerable <I___BasePage> items = GetAllPages(home._Path);

            //start xml doc
            XmlDocument doc = new XmlDocument();
            //xml declaration
            XmlNode declarationNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);

            doc.AppendChild(declarationNode);
            //urlset
            XmlNode urlsetNode = doc.CreateElement("urlset");
            //xmlnls
            XmlAttribute xmlnsAttr = doc.CreateAttribute("xmlns");

            xmlnsAttr.Value = Xmlns;
            urlsetNode.Attributes.Append(xmlnsAttr);
            doc.AppendChild(urlsetNode);

            //append an xml node for each item
            foreach (I___BasePage itm in items)
            {
                if (itm == null)
                {
                    continue;
                }

                //create location
                string url = string.Empty;
                try
                {
                    url = itm.Canonical_Link?.Url;
                }
                catch (Exception ex)
                {
                }

                if (string.IsNullOrEmpty(url))
                {
                    try
                    {
                        var articleItem = GlobalService.GetItem <IArticle>(itm._Id);
                        if (articleItem != null)
                        {
                            url = "/" + articleItem.Article_Number + "/" + articleItem._Name;
                        }
                        else
                        {
                            url = itm._Url;
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }

                if (string.IsNullOrEmpty(url))
                {
                    continue;
                }

                string pageUrl = url;
                if (pageUrl.StartsWith("/"))
                {
                    pageUrl = $"{domain}{pageUrl}";
                }

                //set pointer
                XmlNode lastNode = doc.LastChild;

                //create new node
                XmlNode urlNode = MakeNode(doc, "url");
                lastNode.AppendChild(urlNode);
                urlNode.AppendChild(MakeNode(doc, "loc", pageUrl));
            }

            return(doc.OuterXml);
        }
 public T GetHomeItem <T>() where T : class
 {
     return(_sitecoreContext.GetHomeItem <T>());
 }