예제 #1
0
        /// <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);
        }
예제 #2
0
        /*
         * Реализация
         */

        #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);
        }
예제 #3
0
        public bool IsNodeOrSubNodeOf(GoodsClass node)
        {
            if (ItemId == node.ItemId)
            {
                return(true);
            }

            if (_parent == null)
            {
                return(false);
            }
            return(_parent.IsNodeOrSubNodeOf(node));
        }