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;
}
}
}