コード例 #1
0
        public async Task <IEnumerable <Item> > GetVersionsAsync(GetVersionsCommand command)
        {
            var database        = _server.Connection.GetDatabase();
            var snapshotVersion = await GetSnapshotVersion(database);

            var id = await GetId(snapshotVersion, command.PathOrId, database);

            var versions = await database.HashGetAsync(snapshotVersion + ":index:versions", id);

            if (versions.IsNullOrEmpty)
            {
                return(Enumerable.Empty <Item>());
            }

            var items = new List <Item>();

            foreach (var version in versions.ToString().Split('|'))
            {
                var item = await GetItemAsync(new GetItemCommand(id, version));

                if (item == null)
                {
                    continue;
                }

                items.Add(item);
            }

            return(items);
        }
コード例 #2
0
        public void ShouldGetEmptyVersionCollectionIfNoFakeItemFound(GetVersionsCommand sut, Item item, Language language, DbItem dbitem)
        {
            // arrange
            sut.Initialize(item, language);

            // act
            var versionCollection = (VersionCollection)ReflectionUtil.CallMethod(sut, "DoExecute");

            // assert
            versionCollection.Should().BeEmpty();
        }
コード例 #3
0
        public void ShouldGetItemVersionsCount(GetVersionsCommand sut, Item item, Language language, DbItem versionedItem)
        {
            // arrange
            versionedItem.AddVersion(language.Name);
            versionedItem.AddVersion(language.Name);
            sut.DataStorage.GetFakeItem(item.ID).Returns(versionedItem);

            sut.Initialize(item, language);

            // act
            var versionCollection = (VersionCollection)ReflectionUtil.CallMethod(sut, "DoExecute");

            // assert
            versionCollection.Count.Should().Be(2);
            versionCollection.Should().BeEquivalentTo(Version.Parse(1), Version.Parse(2));
        }
コード例 #4
0
        public async Task <IEnumerable <Item> > GetVersionsAsync(GetVersionsCommand command)
        {
            var database = _config.Sitecore.Database;
            var query    = new StringBuilder();

            query.Append(_config.ServerUrl);
            query.Append("/-/lightcore/versions/");
            query.Append(command.PathOrId);
            query.AppendFormat("?sc_database={0}", database);

            if (command.ItemFields.Any())
            {
                query.AppendFormat("&itemfields={0}", string.Join(",", command.ItemFields));
            }

            return(ItemFactory.Create(await GetAsync(query.ToString())));
        }
コード例 #5
0
        public void ShouldGetItemVersionsForLanguage(GetVersionsCommand sut, Item item, Language language, DbItem versionedItem)
        {
            // arrange
            versionedItem.Fields.Add(new DbField("Title")
            {
                { "en", 1, "value1" }, { "en", 2, "value2" }
            });
            sut.DataStorage.GetFakeItem(item.ID).Returns(versionedItem);

            sut.Initialize(item, language);

            // act
            var versionCollection = (VersionCollection)ReflectionUtil.CallMethod(sut, "DoExecute");

            // assert
            versionCollection.Count.Should().Be(2);
            versionCollection.Should().BeEquivalentTo(Version.Parse(1), Version.Parse(2));
        }
コード例 #6
0
 public Task <IEnumerable <Item> > GetVersionsAsync(GetVersionsCommand command)
 {
     throw new NotImplementedException();
 }