/// <summary> /// Fill chieds /// </summary> /// <param name="collection">Form collection</param> /// <param name="level">Level in path</param> /// <param name="formKey">Form collection element key</param> /// <param name="path">Form collection element path</param> /// <param name="parentNode">Filling parent node</param> private static void FillCollection(FormCollection collection, int level, string formKey, string[] path, FormTreeCollection parentNode) { bool isCollection = path.Length > level + 1; IFormTreeNode newNode = null; if (isCollection) { var collectionName = path[level]; if (!(parentNode.GetChield(collectionName) is FormTreeCollection currentNode)) { currentNode = new FormTreeCollection(collectionName, parentNode); newNode = currentNode; } FillCollection(collection, level + 1, formKey, path, currentNode); } else { var fieldName = GetFieldName(formKey); newNode = new FormTreeNode(fieldName, parentNode, collection[formKey]); } if (!(newNode is null)) { parentNode.AddChild(newNode); } }
/// <summary> /// Initialize node collection /// </summary> /// <param name="key">Collection key</param> /// <param name="parent">Parent element for this collection</param> public FormTreeCollection(string key, IFormTreeNode parent) { Key = key; Parent = parent; }
public void OnBeforeSetPropertyValue(IFormTreeNode node, string propertyName, object value) { Console.WriteLine("Set value into property"); }
/// <summary> /// Initialze tree node /// </summary> /// <param name="key">Element key.</param> /// <param name="parent">Parent for this element.</param> /// <param name="value">Element value.</param> public FormTreeNode(string key, IFormTreeNode parent, string value) { Key = key; Parent = parent; Value = value; }