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); }
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(); }
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)); }
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()))); }
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)); }
public Task <IEnumerable <Item> > GetVersionsAsync(GetVersionsCommand command) { throw new NotImplementedException(); }