using System.Collections.Generic; using System.Xml; using umbraco.MacroEngines; namespace uComponents.DataTypes.RazorDataTypeModels.TextstringArray { /// /// Model binder for the TextstringArray data-type. /// [RazorDataTypeModel(DataTypeConstants.TextstringArrayId)] public class TextstringArrayModelBinder : IRazorDataTypeModel { /// /// Inits the specified current node id. /// /// The current node id. /// The property data. /// The instance. /// public bool Init(int CurrentNodeId, string PropertyData, out object instance) { if (!Settings.RazorModelBindingEnabled) { #pragma warning disable 0618 instance = new DynamicXml(PropertyData); #pragma warning restore 0618 return true; } var values = new List(); if (!string.IsNullOrEmpty(PropertyData)) { var xml = new XmlDocument(); xml.LoadXml(PropertyData); foreach (XmlNode node in xml.SelectNodes("/TextstringArray/values")) { var value = new List(); foreach (XmlNode child in node.SelectNodes("value")) { value.Add(child.InnerText); } values.Add(value.ToArray()); } } instance = values; return true; } } }