Example #1
0
        public void Combine(PluginMenuItem second)
        {
            this.Children.AddRange(second.Children);
            Dedupe(this);

            this.Scripts = this.Scripts.Union(second.Scripts)
                           .ToDictionary(k => k.Key, v => v.Value);

            //return first;
        }
Example #2
0
        private void Dedupe(PluginMenuItem pmi)
        {
            var g = pmi.Children.GroupBy(p => p.DirectoryName);

            foreach (var grp in g)
            {
                if (grp.Count() > 1)
                {
                    var zeroItem = grp.ElementAt(0);

                    for (int i = 1; i < grp.Count(); i++)
                    {
                        zeroItem.Combine(grp.ElementAt(i));
                        pmi.Children.Remove(grp.ElementAt(i));
                    }
                }
            }
        }