SitecoreData.DataProviders.DataProviderWrapper.GetItemVersions C# (CSharp) Method

GetItemVersions() public method

public GetItemVersions ( ItemDefinition itemDefinition, CallContext context ) : VersionUriList
itemDefinition ItemDefinition
context CallContext
return VersionUriList
        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;
        }