diff --git a/Our.Umbraco.PropertyConverters/MultiNodeTreePickerPropertyConverter.cs b/Our.Umbraco.PropertyConverters/MultiNodeTreePickerPropertyConverter.cs
index 07f01f8..4037aac 100644
--- a/Our.Umbraco.PropertyConverters/MultiNodeTreePickerPropertyConverter.cs
+++ b/Our.Umbraco.PropertyConverters/MultiNodeTreePickerPropertyConverter.cs
@@ -7,6 +7,8 @@
//
// --------------------------------------------------------------------------------------------------------------------
+using System.Globalization;
+
namespace Our.Umbraco.PropertyConverters
{
using System;
@@ -29,6 +31,15 @@ namespace Our.Umbraco.PropertyConverters
///
public class MultiNodeTreePickerPropertyConverter : PropertyValueConverterBase, IPropertyValueConverterMeta
{
+ ///
+ /// The properties to exclude.
+ ///
+ private static readonly List PropertiesToExclude = new List()
+ {
+ Constants.Conventions.Content.InternalRedirectId.ToLower(CultureInfo.InvariantCulture),
+ Constants.Conventions.Content.Redirect.ToLower(CultureInfo.InvariantCulture)
+ };
+
///
/// Checks if this converter can convert the property editor and registers if it can.
///
@@ -102,38 +113,46 @@ public override object ConvertSourceToObject(PublishedPropertyType propertyType,
return null;
}
- var nodeIds = (int[])source;
-
- var multiNodeTreePicker = new List();
-
- var dynamicInvocation = ConverterHelper.DynamicInvocation();
if (UmbracoContext.Current != null)
{
- var umbHelper = new UmbracoHelper(UmbracoContext.Current);
+ var nodeIds = (int[])source;
- if (nodeIds.Length > 0)
+ if (!(propertyType.PropertyTypeAlias != null && PropertiesToExclude.Contains(propertyType.PropertyTypeAlias.ToLower(CultureInfo.InvariantCulture))))
{
- var objectType = UmbracoObjectTypes.Unknown;
+ var multiNodeTreePicker = new List();
+
+ var dynamicInvocation = ConverterHelper.DynamicInvocation();
+
+ var umbHelper = new UmbracoHelper(UmbracoContext.Current);
- foreach (var nodeId in nodeIds)
+ if (nodeIds.Length > 0)
{
- var multiNodeTreePickerItem = GetPublishedContent(nodeId, ref objectType, UmbracoObjectTypes.Document, umbHelper.TypedContent)
- ?? GetPublishedContent(nodeId, ref objectType, UmbracoObjectTypes.Media, umbHelper.TypedMedia)
- ?? GetPublishedContent(nodeId, ref objectType, UmbracoObjectTypes.Member, umbHelper.TypedMember);
- if (multiNodeTreePickerItem != null)
+ var objectType = UmbracoObjectTypes.Unknown;
+
+ foreach (var nodeId in nodeIds)
{
- multiNodeTreePicker.Add(dynamicInvocation ? multiNodeTreePickerItem.AsDynamic() : multiNodeTreePickerItem);
+ var multiNodeTreePickerItem = GetPublishedContent(nodeId, ref objectType, UmbracoObjectTypes.Document, umbHelper.TypedContent)
+ ?? GetPublishedContent(nodeId, ref objectType, UmbracoObjectTypes.Media, umbHelper.TypedMedia)
+ ?? GetPublishedContent(nodeId, ref objectType, UmbracoObjectTypes.Member, umbHelper.TypedMember);
+
+ if (multiNodeTreePickerItem != null)
+ {
+ multiNodeTreePicker.Add(dynamicInvocation ? multiNodeTreePickerItem.AsDynamic() : multiNodeTreePickerItem);
+ }
}
+
}
+ return dynamicInvocation
+ ? new DynamicPublishedContentList(multiNodeTreePicker.Where(x => x != null))
+ : multiNodeTreePicker.Yield().Where(x => x != null);
}
-
- return dynamicInvocation
- ? new DynamicPublishedContentList(multiNodeTreePicker.Where(x => x != null))
- : multiNodeTreePicker.Yield().Where(x => x != null);
+
+ // return the first nodeId
+ return nodeIds.FirstOrDefault();
}
else
{