public override VersionUriList GetItemVersions(ItemDefinition itemDefinition, CallContext context)
{
// TODO: Move to provider!
// TODO: Use prefecthing like the old one?
var result = Provider.GetItem(itemDefinition.ID.ToGuid());
if (result != null && result.FieldValues != null)
{
var versions = new VersionUriList();
var versionsList = new List<VersionUri>();
foreach (var fieldKey in result.FieldValues.Where(field => field.Version.HasValue && field.Language != null))
{
if (fieldKey == null || fieldKey.Version == null)
{
continue;
}
if (versionsList.Any(ver => fieldKey.Matches(ver)))
{
continue;
}
var newVersionUri = new VersionUri(LanguageManager.GetLanguage(fieldKey.Language), new Version(fieldKey.Version.Value));
versionsList.Add(newVersionUri);
}
foreach (var version in versionsList)
{
versions.Add(version);
}
return versions;
}
return null;
}