예제 #1
0
        private void UpdateCategories(string categoryString, double level)
        {
            if (string.IsNullOrEmpty(categoryString))
                return;

            var newCategory = new DinamoCategory()
            {
                OriginalName = categoryString,
                CleanName = GetCleanCategory(categoryString)
            };

            int offset = 1;

            if (_categoriesStack.Count == 0)
                _categoriesStack.Push(newCategory);
            else
            {
                while (_categoriesStack.Count >= level - offset)
                    _categoriesStack.Pop();

                if (!string.IsNullOrEmpty(newCategory.CleanName))
                    // если категория совпала, то нет смысла её добавлять
                    if (_categoriesStack.Count == 0 || newCategory.CleanName != _categoriesStack.Peek().CleanName)
                        _categoriesStack.Push(newCategory);
            }
        }
예제 #2
0
        private void UpdateCategories(string categoryString)
        {
            if (string.IsNullOrEmpty(categoryString))
                return;

            var newCategory = new DinamoCategory()
            {
                OriginalName = categoryString,
                CleanName = GetCleanCategory(categoryString)
            };

            while (_categoriesStack.Count != 0)
            {
                if (!newCategory.FirstBlock.StartsWith(_categoriesStack.Peek().FirstBlock))
                {
                    _categoriesStack.Pop();
                }
                else
                {
                    if (!string.IsNullOrEmpty(newCategory.CleanName))
                        // если категория совпала, то нет смысла её добавлять
                        if (newCategory.CleanName != _categoriesStack.Peek().CleanName)
                            _categoriesStack.Push(newCategory);
                    break;
                }
            }

            if (_categoriesStack.Count == 0)
            {
                _categoriesStack.Push(newCategory);
            }
        }