예제 #1
0
 public DetachedPublishedProperty(IPublishedPropertyType propertyType, object value)
     : this(propertyType, value, false)
 {
 }
예제 #2
0
 public object ConvertSourceToIntermediate(IPublishedElement owner, IPublishedPropertyType propertyType, object source, bool preview)
 {
     // TODO: Implement
 }
예제 #3
0
 public override Type GetPropertyValueType(IPublishedPropertyType propertyType)
 => typeof(int);
        public void Data_Item_Removed_If_Removed_From_Config()
        {
            BlockListPropertyValueConverter editor = CreateConverter();

            // The data below expects that ContentKey1 + ContentKey2 + SettingsKey1 + SettingsKey2 exist but only ContentKey2 exists so
            // the data should all be filtered.
            var config = new BlockListConfiguration
            {
                Blocks = new[]
                {
                    new BlockListConfiguration.BlockConfiguration
                    {
                        ContentElementTypeKey  = _contentKey2,
                        SettingsElementTypeKey = null
                    }
                }
            };

            IPublishedPropertyType propertyType     = GetPropertyType(config);
            IPublishedElement      publishedElement = Mock.Of <IPublishedElement>();

            string json = @"
{
    layout: {
        '" + Constants.PropertyEditors.Aliases.BlockList + @"': [
            {
                'contentUdi': 'umb://element/1304E1DDAC87439684FE8A399231CB3D',
                'settingsUdi': 'umb://element/1F613E26CE274898908A561437AF5100'
            },
            {
                'contentUdi': 'umb://element/0A4A416E547D464FABCC6F345C17809A',
                'settingsUdi': 'umb://element/63027539B0DB45E7B70459762D4E83DD'
            }
        ]
    },
    contentData: [
        {
            'contentTypeKey': '" + _contentKey1 + @"',
            'udi': 'umb://element/1304E1DDAC87439684FE8A399231CB3D'
        },
        {
            'contentTypeKey': '" + _contentKey2 + @"',
            'udi': 'umb://element/E05A034704424AB3A520E048E6197E79'
        },
        {
            'contentTypeKey': '" + _contentKey2 + @"',
            'udi': 'umb://element/0A4A416E547D464FABCC6F345C17809A'
        }
    ],
    settingsData: [
        {
            'contentTypeKey': '" + _settingKey1 + @"',
            'udi': 'umb://element/63027539B0DB45E7B70459762D4E83DD'
        },
        {
            'contentTypeKey': '" + _settingKey2 + @"',
            'udi': 'umb://element/1F613E26CE274898908A561437AF5100'
        },
        {
            'contentTypeKey': '" + _settingKey2 + @"',
            'udi': 'umb://element/BCF4BA3DA40C496C93EC58FAC85F18B9'
        }
    ],
}";

            var converted = editor.ConvertIntermediateToObject(publishedElement, propertyType, PropertyCacheLevel.None, json, false) as BlockListModel;

            Assert.IsNotNull(converted);
            Assert.AreEqual(1, converted.Count);

            BlockListItem item0 = converted[0];

            Assert.AreEqual(Guid.Parse("0A4A416E-547D-464F-ABCC-6F345C17809A"), item0.Content.Key);
            Assert.AreEqual("Test2", item0.Content.ContentType.Alias);
            Assert.IsNull(item0.Settings);
        }
예제 #5
0
 public Type GetPropertyValueType(IPublishedPropertyType propertyType)
 {
     // TODO: Change Type here
     return(typeof(string));
 }
 public static bool IsNested(IPublishedPropertyType publishedProperty)
 {
     return(publishedProperty.EditorAlias.InvariantEquals(Constants.PropertyEditors.Aliases.NestedContent));
 }
        public void Convert_Valid_Empty_Json()
        {
            BlockListPropertyValueConverter editor       = CreateConverter();
            BlockListConfiguration          config       = ConfigForMany();
            IPublishedPropertyType          propertyType = GetPropertyType(config);
            IPublishedElement publishedElement           = Mock.Of <IPublishedElement>();

            string json      = "{}";
            var    converted = editor.ConvertIntermediateToObject(publishedElement, propertyType, PropertyCacheLevel.None, json, false) as BlockListModel;

            Assert.IsNotNull(converted);
            Assert.AreEqual(0, converted.Count);

            json      = @"{
layout: {},
data: []}";
            converted = editor.ConvertIntermediateToObject(publishedElement, propertyType, PropertyCacheLevel.None, json, false) as BlockListModel;

            Assert.IsNotNull(converted);
            Assert.AreEqual(0, converted.Count);

            // Even though there is a layout, there is no data, so the conversion will result in zero elements in total
            json = @"
{
    layout: {
        '" + Constants.PropertyEditors.Aliases.BlockList + @"': [
            {
                'contentUdi': 'umb://element/e7dba547615b4e9ab4ab2a7674845bc9'
            }
        ]
    },
    contentData: []
}";

            converted = editor.ConvertIntermediateToObject(publishedElement, propertyType, PropertyCacheLevel.None, json, false) as BlockListModel;

            Assert.IsNotNull(converted);
            Assert.AreEqual(0, converted.Count);

            // Even though there is a layout and data, the data is invalid (missing required keys) so the conversion will result in zero elements in total
            json = @"
{
    layout: {
        '" + Constants.PropertyEditors.Aliases.BlockList + @"': [
            {
                'contentUdi': 'umb://element/e7dba547615b4e9ab4ab2a7674845bc9'
            }
        ]
    },
        contentData: [
        {
            'udi': 'umb://element/e7dba547615b4e9ab4ab2a7674845bc9'
        }
    ]
}";

            converted = editor.ConvertIntermediateToObject(publishedElement, propertyType, PropertyCacheLevel.None, json, false) as BlockListModel;

            Assert.IsNotNull(converted);
            Assert.AreEqual(0, converted.Count);

            // Everthing is ok except the udi reference in the layout doesn't match the data so it will be empty
            json = @"
{
    layout: {
        '" + Constants.PropertyEditors.Aliases.BlockList + @"': [
            {
                'contentUdi': 'umb://element/1304E1DDAC87439684FE8A399231CB3D'
            }
        ]
    },
        contentData: [
        {
            'contentTypeKey': '" + _contentKey1 + @"',
            'key': '1304E1DD-0000-4396-84FE-8A399231CB3D'
        }
    ]
}";

            converted = editor.ConvertIntermediateToObject(publishedElement, propertyType, PropertyCacheLevel.None, json, false) as BlockListModel;

            Assert.IsNotNull(converted);
            Assert.AreEqual(0, converted.Count);
        }
 public override object?ConvertSourceToIntermediate(IPublishedElement owner, IPublishedPropertyType propertyType, object?source, bool preview)
 {
     return(source?.ToString());
 }
예제 #9
0
 public override Type GetPropertyValueType(IPublishedPropertyType propertyType) => typeof(IEnumerable <PartialViewMacroModel>);
예제 #10
0
 public override bool IsConverter(IPublishedPropertyType propertyType)
 => propertyType.EditorAlias.InvariantEquals(Constants.PropertyEditors.Aliases.MemberGroupPicker);
 public override bool IsConverter(IPublishedPropertyType propertyType)
 => Aliases.Contains(propertyType.EditorAlias);
예제 #12
0
 /// <summary>
 ///     Determines whether the property type is invariant.
 /// </summary>
 /// <param name="propertyType">The property type.</param>
 /// <returns>
 ///     A value indicating whether the property type is invariant.
 /// </returns>
 public static bool VariesByNothing(this IPublishedPropertyType propertyType) =>
 propertyType.Variations.VariesByNothing();
예제 #13
0
 /// <summary>
 ///     Determines whether the property type varies by culture and segment.
 /// </summary>
 /// <param name="propertyType">The property type.</param>
 /// <returns>
 ///     A value indicating whether the property type varies by culture and segment.
 /// </returns>
 public static bool VariesByCultureAndSegment(this IPublishedPropertyType propertyType) =>
 propertyType.Variations.VariesByCultureAndSegment();
 public bool IsConverter(IPublishedPropertyType propertyType)
 {
     return(propertyType.EditorAlias.Equals("Umbraco.CheckBoxList"));
 }
 public override PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyType) => PropertyCacheLevel.Snapshot;
예제 #16
0
 public override object ConvertIntermediateToObject(IPublishedElement owner, IPublishedPropertyType propertyType, PropertyCacheLevel referenceCacheLevel, object inter, bool preview)
 {
     if (inter is IEnumerable <MacroPickerModel> items)
     {
         return(items.Select(x => new PartialViewMacroModel(default, default, x.Alias, x.Name, x.Parameters)).ToList());
예제 #17
0
 public override bool IsConverter(IPublishedPropertyType propertyType)
 => Constants.PropertyEditors.Aliases.Decimal.Equals(propertyType.EditorAlias);
 public override bool IsConverter(IPublishedPropertyType propertyType)
 => "Articulate.MarkdownEditor" == propertyType.EditorAlias;
 public static bool IsNestedMany(IPublishedPropertyType publishedProperty)
 {
     return(IsNested(publishedProperty) && !IsNestedSingle(publishedProperty));
 }
예제 #20
0
 public override bool IsConverter(IPublishedPropertyType propertyType) => propertyType.EditorAlias.InvariantEquals(IconPickerDataEditor.DataEditorAlias);
        public void Get_Data_From_Layout_Item()
        {
            BlockListPropertyValueConverter editor       = CreateConverter();
            BlockListConfiguration          config       = ConfigForMany();
            IPublishedPropertyType          propertyType = GetPropertyType(config);
            IPublishedElement publishedElement           = Mock.Of <IPublishedElement>();

            string json = @"
{
    layout: {
        '" + Constants.PropertyEditors.Aliases.BlockList + @"': [
            {
                'contentUdi': 'umb://element/1304E1DDAC87439684FE8A399231CB3D',
                'settingsUdi': 'umb://element/1F613E26CE274898908A561437AF5100'
            },
            {
                'contentUdi': 'umb://element/0A4A416E547D464FABCC6F345C17809A',
                'settingsUdi': 'umb://element/63027539B0DB45E7B70459762D4E83DD'
            }
        ]
    },
    contentData: [
        {
            'contentTypeKey': '" + _contentKey1 + @"',
            'udi': 'umb://element/1304E1DDAC87439684FE8A399231CB3D'
        },
        {
            'contentTypeKey': '" + _contentKey2 + @"',
            'udi': 'umb://element/E05A034704424AB3A520E048E6197E79'
        },
        {
            'contentTypeKey': '" + _contentKey2 + @"',
            'udi': 'umb://element/0A4A416E547D464FABCC6F345C17809A'
        }
    ],
    settingsData: [
        {
            'contentTypeKey': '" + _settingKey1 + @"',
            'udi': 'umb://element/63027539B0DB45E7B70459762D4E83DD'
        },
        {
            'contentTypeKey': '" + _settingKey2 + @"',
            'udi': 'umb://element/1F613E26CE274898908A561437AF5100'
        },
        {
            'contentTypeKey': '" + _settingKey2 + @"',
            'udi': 'umb://element/BCF4BA3DA40C496C93EC58FAC85F18B9'
        }
    ],
}";

            var converted = editor.ConvertIntermediateToObject(publishedElement, propertyType, PropertyCacheLevel.None, json, false) as BlockListModel;

            Assert.IsNotNull(converted);
            Assert.AreEqual(2, converted.Count);

            BlockListItem item0 = converted[0];

            Assert.AreEqual(Guid.Parse("1304E1DD-AC87-4396-84FE-8A399231CB3D"), item0.Content.Key);
            Assert.AreEqual("Test1", item0.Content.ContentType.Alias);
            Assert.AreEqual(Guid.Parse("1F613E26CE274898908A561437AF5100"), item0.Settings.Key);
            Assert.AreEqual("Setting2", item0.Settings.ContentType.Alias);

            BlockListItem item1 = converted[1];

            Assert.AreEqual(Guid.Parse("0A4A416E-547D-464F-ABCC-6F345C17809A"), item1.Content.Key);
            Assert.AreEqual("Test2", item1.Content.ContentType.Alias);
            Assert.AreEqual(Guid.Parse("63027539B0DB45E7B70459762D4E83DD"), item1.Settings.Key);
            Assert.AreEqual("Setting1", item1.Settings.ContentType.Alias);
        }
예제 #22
0
 public bool IsConverter(IPublishedPropertyType propertyType)
 {
     return(propertyType.EditorAlias.Equals("Dragonfly.CssOverridePicker"));
 }
예제 #23
0
 public bool IsConverter(IPublishedPropertyType propertyType)
 {
     // TODO: Change alias here
     return(propertyType.EditorAlias.Equals("ORGANISATION_ALIAS.EDITOR_ALIAS"));
 }
예제 #24
0
 public Type GetPropertyValueType(IPublishedPropertyType propertyType)
 {
     return(typeof(string));
 }
예제 #25
0
 public PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyType)
 {
     return(PropertyCacheLevel.Element);
 }
 public override bool IsConverter(IPublishedPropertyType propertyType) => propertyType.EditorAlias.Equals(Core.Constants.PropertyEditors.Aliases.MediaPicker3);
예제 #27
0
 public object ConvertIntermediateToObject(IPublishedElement owner, IPublishedPropertyType propertyType, PropertyCacheLevel referenceCacheLevel, object inter, bool preview)
 {
     // TODO: Implement
 }
 public override Type GetPropertyValueType(IPublishedPropertyType propertyType)
 => IsMultipleDataType(propertyType.DataType)
         ? typeof(IEnumerable <MediaWithCrops>)
         : typeof(MediaWithCrops);
예제 #29
0
 public override PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyType)
 => PropertyCacheLevel.Element;
 public override bool IsConverter(IPublishedPropertyType propertyType)
 {
     return(propertyType.EditorAlias.Equals("Vokseverk.AddressEditor"));
 }