From 4c8bbd5d8fbb41d4092f7ffffaa1055478f3bbad Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 13 Feb 2014 16:53:38 +0000 Subject: [PATCH] Added a nested try/catch. For if the `PublishedPropertyType` value is null, we can still get an `Archetype` model returned) --- .../ArchetypeValueConverter.cs | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs index 96eeb1e..de2d8fe 100644 --- a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs +++ b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs @@ -45,28 +45,34 @@ namespace Archetype.Umbraco.PropertyConverters { try { - // Deserialize value to archetype model - var archetype = JsonConvert.DeserializeObject(sourceString, _jsonSettings); + // Deserialize value to archetype model + var archetype = JsonConvert.DeserializeObject(sourceString, _jsonSettings); - // Get list of configured properties and their types - // and map them to the deserialized archetype model - var preValue = GetArchetypePreValueFromDataTypeId(propertyType.DataTypeId); - foreach (var fieldset in preValue.Fieldsets) - { - var fieldsetAlias = fieldset.Alias; - foreach (var fieldsetInst in archetype.Fieldsets.Where(x => x.Alias == fieldsetAlias)) - { - foreach (var property in fieldset.Properties) - { - var propertyAlias = property.Alias; - foreach (var propertyInst in fieldsetInst.Properties.Where(x => x.Alias == propertyAlias)) - { - propertyInst.DataTypeId = property.DataTypeId; - propertyInst.PropertyEditorAlias = property.PropertyEditorAlias; - } - } - } - } + try + { + // Get list of configured properties and their types + // and map them to the deserialized archetype model + var preValue = GetArchetypePreValueFromDataTypeId(propertyType.DataTypeId); + foreach (var fieldset in preValue.Fieldsets) + { + var fieldsetAlias = fieldset.Alias; + foreach (var fieldsetInst in archetype.Fieldsets.Where(x => x.Alias == fieldsetAlias)) + { + foreach (var property in fieldset.Properties) + { + var propertyAlias = property.Alias; + foreach (var propertyInst in fieldsetInst.Properties.Where(x => x.Alias == propertyAlias)) + { + propertyInst.DataTypeId = property.DataTypeId; + propertyInst.PropertyEditorAlias = property.PropertyEditorAlias; + } + } + } + } + } + catch (Exception ex) + { + } return archetype; }