Exemplo n.º 1
0
        // #TODO GetPath will be expensive !!!!
        public List <CodeSnippet> FindNodes(string find)
        {
            DictionaryList <CodeSnippet, string> _items = CodeLib.Instance.CodeSnippets.Where(p => LocalUtils.LastPart(p.GetPath()).ToLower().Contains(find.ToLower())).ToDictionaryList(p => p.Id);

            _items.RegisterLookup("PATH", p => p.GetPath());

            DictionaryList <CodeSnippet, string> _paths = new DictionaryList <CodeSnippet, string>(p => p.GetPath());

            foreach (CodeSnippet item in _items)
            {
                List <CodeSnippet> _parents = GetParents(item.GetPath());

                foreach (CodeSnippet parent in _parents)
                {
                    if (!_paths.ContainsKey(parent.GetPath()) && (_items.Lookup("PATH", parent.GetPath()).FirstOrDefault() == null))
                    {
                        _paths.Add(parent);
                    }
                }
            }

            _items.AddRange(_paths);
            return(_items.ToList());
        }
        public void AddingNullRangeDoesNothing()
        {
            var target = new DictionaryList<string, object>
            {
                { "key1", 11 }
            };

            target.AddRange(null);

            Assert.AreEqual(1, target.Count);
            Assert.AreEqual(1, target["key1"].Count);
            Assert.AreEqual(11, target["key1"][0]);
        }
        public void AddsRangeOfValues()
        {
            var target = new DictionaryList<string, object>
            {
                { "key1", 11 }
            };

            var source  = new DictionaryList<string, object>
            {
                { "key1", 111 },
                { "key2", 22 },
                { "key2", 222 },
                { "key3", "3" }
            };

            target.AddRange(source);

            Assert.AreEqual(3, target.Count);
            Assert.AreEqual(2, target["key1"].Count);
            Assert.AreEqual(11, target["key1"][0]);
            Assert.AreEqual(111, target["key1"][1]);
            Assert.AreEqual(2, target["key2"].Count);
            Assert.AreEqual(22, target["key2"][0]);
            Assert.AreEqual(222, target["key2"][1]);
            Assert.AreEqual(1, target["key3"].Count);
            Assert.AreEqual("3", target["key3"][0]);
        }