private void AddElementFromXml(XElement e, OrgNode parent) { var orgnode = new OrgNode(); e.Apply(orgnode); if (orgnode.Code.IsEmpty()) { throw new EcoProcessException("”злу не сопоставлен код :" + e.Describe().ToWhereString()); } Add(orgnode, parent); foreach (var c in e.Elements("orgnode")) { AddElementFromXml(c, orgnode); } }
/// <summary> /// </summary> /// <param name="node"> </param> /// <param name="parent"> </param> /// <exception cref="EcoProcessException"></exception> public void Add(OrgNode node, OrgNode parent = null) { if (Index.ContainsKey(node.Code)) { throw new EcoProcessException("ќрганизационна¤ структура включет в себ¤ дублирующийс¤ код узла :" + node.Code); } node.Level = 1; if (null != parent) { node.Parent = parent; node.Level = parent.Level + 1; parent.Children.Add(node); } Index[node.Code] = node; }