public Item AddToSitecore()
        {
            Database database  = _factory.GetDatabase("master");
            Item     rootItem  = database.GetItem("/sitecore/content/home");
            Item     childItem = rootItem.Add("child", new TemplateID(ID.NewID));

            childItem["title"] = rootItem["title"] + "_child";
            return(childItem);
        }
예제 #2
0
        private void Init()
        {
            using (new SecurityDisabler())
            {
                Database masterDb = _factory.GetDatabase("master");
                Database webDb    = _factory.GetDatabase("web");
                Language language = Language.Parse("en");

                EnsureTemplates(masterDb, webDb, language);

                EnsureItems(masterDb, webDb, language);
            }
        }
        public void MyClass_AddItemToWithTempalteWithAutoFixtureRoot_ShouldReturnItem(Item rootItem, Item childItem, TemplateItem template, Database database, BaseFactory factory)
        {
            //Arrange
            Database mydb = rootItem.Database;

            mydb.Name.Returns("bla");
            database.GetItem("/sitecore/content/home").Returns(rootItem);
            database.GetTemplate("baseTemplate").Returns(template);
            factory.GetDatabase("master").Returns(database);
            rootItem.Add(childItem.Name, template).ReturnsForAnyArgs(childItem);
            rootItem["title"].Returns("parent");
            MyClass sut = new MyClass(factory);

            //Act


            Item returnItem = sut.AddToSitecoreFromTemplate();

            returnItem["test"] = "T";
            //Assert
            returnItem.Should().NotBeNull();
            rootItem["title"].Should().BeEquivalentTo(("parent"));
            returnItem.ID.Should().BeSameAs(childItem.ID);
            returnItem.Name.Should().BeEquivalentTo(childItem.Name);
            rootItem.Add(childItem.Name, template).Received();
            returnItem.Received()["title"] = "parent_child";
            database.Received().GetTemplate("baseTemplate");
            database.Received().GetItem("/sitecore/content/home");
        }
        private static Item FindRoot(BaseFactory factory, BaseSettings settings)
        {
            var database = factory.GetDatabase(settings.GetSetting("Meetup.DefaultRepo", defaultValue: "web"), assert: true);

            using (new SecurityDisabler())
            {
                var item = database.GetItem(ItemIDs.MeetupContentRootId);

                return(item ?? throw new RequiredObjectIsNullException($"Root item {ItemIDs.MeetupContentRootId} was not found in {database.Name}"));
            }
        }
 public IEnumerable <Item> GetCategories(Item parent)
 {
     using (var context = GetSearchContext(parent))
     {
         var results = context.GetQueryable <CategorySearchQuery>()
                       .Where(evnt => evnt.Paths.Contains(parent.ID) && evnt.Templates.Contains(Templates.Category.Id))
                       .Select(x => new {
             Uri      = x.UniqueId,
             Database = Factory.GetDatabase(x.UniqueId.DatabaseName)
         }).ToList();
         return(results.Select(x => ItemManager.GetItem(x.Uri.ItemID, x.Uri.Language, x.Uri.Version, x.Database)));
     }
 }
예제 #6
0
        public IEnumerable <Item> GetEvents(Item parent, string keyword)
        {
            var searchWord = string.IsNullOrEmpty(keyword) ? "*" : keyword;

            using (var context = GetSearchContext(parent))
            {
                var results = context.GetQueryable <EventSearchQuery>()
                              .Where(evnt => evnt.Paths.Contains(parent.ID) && evnt.Templates.Contains(Templates.Event.Id) &&
                                     (evnt.Name.Contains(searchWord) || evnt.Description.Contains(searchWord)))
                              .Select(x => new {
                    Uri      = x.UniqueId,
                    Database = Factory.GetDatabase(x.UniqueId.DatabaseName)
                }).ToList();
                return(results.Select(x => ItemManager.GetItem(x.Uri.ItemID, x.Uri.Language, x.Uri.Version, x.Database)));
            }
        }
예제 #7
0
        public EnterspeedController(
            IEnterspeedIdentityService enterspeedIdentityService,
            BaseItemManager itemManager,
            BaseLanguageManager languageManager,
            BaseFactory factory,
            IEntityModelMapper <Item, SitecoreContentEntity> itemMapper,
            IEntityModelMapper <RenderingItem, SitecoreRenderingEntity> renderingMapper,
            IEntityModelMapper <Item, SitecoreDictionaryEntity> dictionaryMapper,
            IJsonSerializer jsonSerializer)
        {
            _enterspeedIdentityService = enterspeedIdentityService;
            _itemManager      = itemManager;
            _itemMapper       = itemMapper;
            _renderingMapper  = renderingMapper;
            _dictionaryMapper = dictionaryMapper;
            _jsonSerializer   = jsonSerializer;

            _webDatabase  = factory.GetDatabase("web");
            _allLanguages = languageManager.GetLanguages(_webDatabase).ToList();
        }
        public void MyClass_AddItemToWithAutoFixtureRoot_ShouldReturnItem(Item rootItem, Item childItem, Database database, BaseFactory factory)
        {
            //Arrange
            database.GetItem("/sitecore/content/home").Returns(rootItem);
            factory.GetDatabase("master").Returns(database);
            rootItem.Add(Arg.Any <string>(), Arg.Any <TemplateID>()).ReturnsForAnyArgs(childItem);
            rootItem["title"].Returns("parent");
            MyClass sut = new MyClass(factory);

            //Act
            Item returnItem = sut.AddToSitecore();

            returnItem["test"] = "T";
            //Assert
            returnItem.Should().NotBeNull();
            returnItem.ID.Should().BeSameAs(childItem.ID);
            returnItem.Name.Should().BeEquivalentTo(childItem.Name);
            rootItem.Add(Arg.Any <string>(), Arg.Any <TemplateID>()).Received();
            returnItem.Received()["title"] = "parent_child";
            database.GetItem("/sitecore/content/home").Received();
        }
예제 #9
0
        public EnterspeedSitecoreConfiguration GetConfiguration()
        {
            Item enterspeedConfigurationItem = _itemManager.GetItem(EnterspeedIDs.Items.EnterspeedConfigurationID, Language.Parse("en"), Version.Latest, _factory.GetDatabase("web"));

            if (enterspeedConfigurationItem == null || enterspeedConfigurationItem.Versions.Count == 0)
            {
                return(new EnterspeedSitecoreConfiguration());
            }

            string enabled = enterspeedConfigurationItem[EnterspeedIDs.Fields.EnterspeedEnabledFieldID] ?? string.Empty;

            if (enabled != "1")
            {
                return(new EnterspeedSitecoreConfiguration());
            }

            if (!IsConfigurationUpdated(enterspeedConfigurationItem, out Guid currentRevisionId))
            {
                return(_configuration);
            }

            var config = new EnterspeedSitecoreConfiguration
            {
                IsEnabled = true
            };

            string configApiBaseUrl = enterspeedConfigurationItem[EnterspeedIDs.Fields.EnterspeedApiBaseUrlFieldID];

            config.BaseUrl = (configApiBaseUrl ?? string.Empty).Trim();

            string configApiKey = enterspeedConfigurationItem[EnterspeedIDs.Fields.EnterspeedApiKeyFieldID];

            config.ApiKey = (configApiKey ?? string.Empty).Trim();

            config.ItemNotFoundUrl = GetItemNotFoundUrl(_settings);

            MultilistField enabledSitesField = enterspeedConfigurationItem.Fields[EnterspeedIDs.Fields.EnterspeedEnabledSitesFieldID];

            var enabledSites = enabledSitesField?.GetItems()?.ToList() ?? new List <Item>();

            if (enabledSites.Any())
            {
                List <SiteInfo> allSiteInfos = _siteContextFactory.GetSites();

                foreach (Item enabledSite in enabledSites)
                {
                    SiteInfo matchingSite = allSiteInfos.FirstOrDefault(x => x.RootPath.Equals(enabledSite.Paths.FullPath, StringComparison.OrdinalIgnoreCase));
                    if (matchingSite == null)
                    {
                        continue;
                    }

                    SiteContext siteContext = _siteContextFactory.GetSiteContext(matchingSite.Name);

                    Language siteLanguage = _languageManager.GetLanguage(siteContext.Language);

                    Item homeItem = _itemManager.GetItem(siteContext.StartPath, siteLanguage, Version.Latest, siteContext.Database);
                    if (homeItem == null || homeItem.Versions.Count == 0)
                    {
                        // TODO - KEK: throw exception here?
                        continue;
                    }

                    string name         = siteContext.SiteInfo.Name;
                    string startPathUrl = _linkManager.GetItemUrl(homeItem, new ItemUrlBuilderOptions
                    {
                        SiteResolving          = true,
                        Site                   = siteContext,
                        AlwaysIncludeServerUrl = true,
                        LowercaseUrls          = true,
                        LanguageEmbedding      = LanguageEmbedding.Never
                    });

                    var enterspeedSiteInfo = new EnterspeedSiteInfo
                    {
                        Name         = name,
                        BaseUrl      = startPathUrl,
                        HomeItemPath = siteContext.StartPath,
                        SiteItemPath = siteContext.RootPath
                    };

                    if (siteContext.Properties["scheme"] != null &&
                        siteContext.Properties["scheme"].Equals("https", StringComparison.OrdinalIgnoreCase))
                    {
                        enterspeedSiteInfo.IsHttpsEnabled = true;
                    }

                    config.SiteInfos.Add(enterspeedSiteInfo);
                }
            }

            // Settings caching values
            _configuration           = config;
            _configurationRevisionId = currentRevisionId;

            return(_configuration);
        }