示例#1
0
        // Query book types for either author or book name
        public static List <Book> GetBookResults(string searchTerm, IMvcContext context, IRequestContext requestContext)
        {
            var siteSearchIndexName = context.SitecoreService.Database.Name;

            using (var searchContext = ContentSearchManager.GetIndex("sitecore_" + siteSearchIndexName + "_index")
                                       .CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
            {
                var query = searchContext.GetQueryable <SearchItem>()
                            .Where(i => i.Title.Contains(searchTerm) &&
                                   i.IsLatestVersion &&
                                   i.TemplateId == Books.Foundation.Orm.Models.sitecore.templates.User_Defined.Base.IBase_BookConstants.TemplateId &&
                                   i.Name != "__Standard Values" ||
                                   i.Author.Contains(searchTerm)).GetResults().Select(e => e.Document.GetItem()).ToList();
                var bookList = new List <Book>();
                var book     = new Book();
                foreach (var item in query)
                {
                    // Try to get it as a book
                    book = new SitecoreRepository(requestContext).FindById <Book>(item.ID.ToGuid());
                    if (book.Author != null)
                    {
                        bookList.Add(book);
                    }
                }
                return(bookList);
            };
        }
示例#2
0
        // Query links and pages
        public static List <Pages> GetPageResults(string searchTerm, IMvcContext context, IRequestContext requestContext)
        {
            var siteSearchIndexName = context.SitecoreService.Database.Name;

            using (var searchContext = ContentSearchManager.GetIndex("sitecore_" + siteSearchIndexName + "_index").CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
            {
                var query = searchContext.GetQueryable <SearchItem>()
                            .Where(i => i.Title.Contains(searchTerm) &&
                                   i.IsLatestVersion &&
                                   i.TemplateId == Books.Foundation.Orm.Models.sitecore.templates.Feature.Navigation.INavigationItemConstants.TemplateId &&
                                   i.Name != "__Standard Values").GetResults().Select(e => e.Document.GetItem()).ToList();
                var page     = new Pages();
                var pageList = new List <Pages>();
                foreach (var item in query)
                {
                    page = new SitecoreRepository(requestContext).FindById <Pages>(item.ID.ToGuid());
                    if (page.Link != null)
                    {
                        pageList.Add(page);
                    }
                }
                return(pageList);
            };
        }
示例#3
0
 public ErrorController(SitecoreRepository repository) => Repository = repository;
 public CarouselController(IMvcContext context, SitecoreRepository repo)
 {
     _context    = context ?? throw new ArgumentNullException(nameof(context));
     _repository = repo ?? throw new ArgumentNullException(nameof(repo));
 }