From dd453fc66aa9cd2843eb8b1ebe5dbb0700b039bf Mon Sep 17 00:00:00 2001 From: Tom Fulton Date: Wed, 12 Mar 2014 17:13:23 -0600 Subject: [PATCH 1/2] PVC: Return empty Archetype instead of null when empty/errors --- .../PropertyConverters/ArchetypeValueConverter.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs index 949f9dd..a8bfc8b 100644 --- a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs +++ b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs @@ -37,8 +37,10 @@ namespace Archetype.Umbraco.PropertyConverters public override object ConvertDataToSource(PublishedPropertyType propertyType, object source, bool preview) { + var defaultValue = new Models.Archetype(); + if (source == null) - return null; + return defaultValue; var sourceString = source.ToString(); @@ -79,11 +81,11 @@ namespace Archetype.Umbraco.PropertyConverters } catch (Exception ex) { - return null; + return defaultValue; } } - return sourceString; + return defaultValue; } internal ArchetypePreValue GetArchetypePreValueFromDataTypeId(int dataTypeId) From 512edaeaf908ccb72fabb8e44e3a0b042a748af1 Mon Sep 17 00:00:00 2001 From: Tom Fulton Date: Wed, 12 Mar 2014 17:36:15 -0600 Subject: [PATCH 2/2] Make Archetype Model enumerable to simplify usage, make Fieldsets internal --- .../Umbraco.Archetype/Models/Archetype.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/Umbraco/Umbraco.Archetype/Models/Archetype.cs b/app/Umbraco/Umbraco.Archetype/Models/Archetype.cs index 1c920bf..207e9f6 100644 --- a/app/Umbraco/Umbraco.Archetype/Models/Archetype.cs +++ b/app/Umbraco/Umbraco.Archetype/Models/Archetype.cs @@ -1,16 +1,28 @@ -using System.Collections.Generic; +using System.Collections; +using System.Collections.Generic; using Newtonsoft.Json; namespace Archetype.Umbraco.Models { - public class Archetype + [JsonObject] + public class Archetype : IEnumerable
{ [JsonProperty("fieldsets")] - public IEnumerable
Fieldsets { get; set; } + internal IEnumerable
Fieldsets { get; set; } public Archetype() { Fieldsets = new List
(); } + + public IEnumerator
GetEnumerator() + { + return this.Fieldsets.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return this.GetEnumerator(); + } } }