/// <summary> /// Конструктор создает объект типа директивы /// </summary> /// <param name="itemId"></param> /// <param name="shortName"></param> /// <param name="fullName"></param> /// <param name="commonName"></param> /// <param name="parent">Родительский узел</param> private GoodsClass(int itemId, string shortName, string fullName, string commonName, GoodsClass parent) { ItemId = itemId; ShortName = shortName; FullName = fullName; CommonName = commonName; _parent = parent; if (parent != null) { //Выставление пред. узла на данном уровне для тек. узла GoodsClass prevNode = parent.Children.Count > 0 ? parent.Children[parent.Children.Count - 1] : null; _prev = prevNode; //Для пред. узла на данном уровне - выставление след. узла if (prevNode != null) { prevNode._next = this; } //добавление нового дочернего узла в родительский узел parent.Children.Add(this); } _Items.Add(this); }
/* * Реализация */ #region private GoodsClass(Int32 Id, String shortName, String fullName, String commonName) : this(itemId, shortName, fullName, commonName, Unknown) /// <summary> /// Конструктор создает объект типа директивы /// </summary> /// <param name="itemId"></param> /// <param name="shortName"></param> /// <param name="fullName"></param> /// <param name="commonName"></param> private GoodsClass(int itemId, string shortName, string fullName, string commonName) : this(itemId, shortName, fullName, commonName, null) { if (_roots.Count > 0) { _prev = _roots[_roots.Count - 1]; _roots[_roots.Count - 1]._next = this; } _roots.Add(this); }
public bool IsNodeOrSubNodeOf(GoodsClass node) { if (ItemId == node.ItemId) { return(true); } if (_parent == null) { return(false); } return(_parent.IsNodeOrSubNodeOf(node)); }