コード例 #1
0
        // <Data />
        // Import Data
        public void ExecuteRecipeStep(RecipeContext recipeContext)
        {
            if (!String.Equals(recipeContext.RecipeStep.Name, "Data", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // First pass to resolve content items from content identities for all content items, new and old.
            var importContentSession = new ImportContentSession(_orchardServices.ContentManager);

            foreach (var element in recipeContext.RecipeStep.Step.Elements())
            {
                var elementId = element.Attribute("Id");
                if (elementId == null)
                {
                    continue;
                }

                var identity = elementId.Value;
                var status   = element.Attribute("Status");

                importContentSession.Set(identity, element.Name.LocalName);

                var item = importContentSession.Get(identity);
            }

            // Second pass to import the content items.
            foreach (var element in recipeContext.RecipeStep.Step.Elements())
            {
                _orchardServices.ContentManager.Import(element, importContentSession);
            }

            recipeContext.Executed = true;
        }
コード例 #2
0
        public void GetItemExistsAndDraftRequiredVersionOptionReturnsDraft()
        {
            var session = new ImportContentSession(_contentManager.Object);

            session.Set(_testItemIdentity1.ToString(), "TestContentType");
            var sessionItem = session.Get(_testItemIdentity1.ToString(), VersionOptions.DraftRequired);

            Assert.IsNotNull(sessionItem);
            Assert.That(1, Is.EqualTo(sessionItem.Id));
            Assert.IsFalse(sessionItem.IsPublished());
        }
コード例 #3
0
        public void GetItemExistsAndLatestVersionOptionReturnsPublishedItem()
        {
            var session = new ImportContentSession(_contentManager.Object);

            session.Set(_testItemIdentity1.ToString(), "TestContentType");
            var sessionItem = session.Get(_testItemIdentity1.ToString());

            Assert.IsNotNull(sessionItem);
            Assert.AreEqual(1, sessionItem.Id);
            Assert.IsTrue(sessionItem.IsPublished());
        }
コード例 #4
0
        public void GetNextInBatchInitialisedTwoBatchesReturnsItemsOnceEach()
        {
            var session = new ImportContentSession(_contentManager.Object);

            session.Set(_testItemIdentity1.ToString(), "TestContentType");
            session.Set(_testItemIdentity2.ToString(), "TestContentType");
            session.Set(_testItemIdentity3.ToString(), "TestContentType");
            session.Set(_testItemIdentity4.ToString(), "TestContentType");
            session.Set(_testItemIdentity5.ToString(), "TestContentType");

            session.InitializeBatch(0, 2);
            var firstIdentity = session.GetNextInBatch();
            //get later item as dependency
            var dependencyItem     = session.Get(_testItemIdentity5.ToString(), VersionOptions.Latest);
            var dependencyIdentity = session.GetNextInBatch();
            var secondIdentity     = session.GetNextInBatch();
            var afterBatch1        = session.GetNextInBatch();

            session.InitializeBatch(2, 2);
            var thirdIdentity = session.GetNextInBatch();
            var fourthdentity = session.GetNextInBatch();
            var afterBatch2   = session.GetNextInBatch();

            session.InitializeBatch(4, 2);
            var fifthIdentity = session.GetNextInBatch();
            var afterBatch3   = session.GetNextInBatch();

            var comparer = new ContentIdentity.ContentIdentityEqualityComparer();

            Assert.That(comparer.Equals(_testItemIdentity1, firstIdentity));
            Assert.That(comparer.Equals(_testItemIdentity5, dependencyIdentity));
            Assert.That(comparer.Equals(_testItemIdentity2, secondIdentity));
            Assert.That(afterBatch1, Is.Null);

            Assert.That(comparer.Equals(_testItemIdentity3, thirdIdentity));
            Assert.That(comparer.Equals(_testItemIdentity4, fourthdentity));
            Assert.That(afterBatch2, Is.Null);

            Assert.That(fifthIdentity, Is.Null); //already processed as dependency
            Assert.That(afterBatch3, Is.Null);
        }
コード例 #5
0
 public ContentItem GetItemFromSession(string id)
 {
     return(_session.Get(id));
 }