Mono.Addins.Database.AddinIndex.InsertSortedAddin C# (CSharp) Method

InsertSortedAddin() private method

private InsertSortedAddin ( HashSet inserted, Dictionary lists, AddinDescription desc ) : void
inserted HashSet
lists Dictionary
desc Mono.Addins.Description.AddinDescription
return void
        void InsertSortedAddin(HashSet<string> inserted, Dictionary<string,List<AddinDescription>> lists, AddinDescription desc)
        {
            string sid = desc.AddinId + " " + desc.Domain;
            if (!inserted.Add (sid))
                return;

            foreach (ModuleDescription mod in desc.AllModules) {
                foreach (Dependency dep in mod.Dependencies) {
                    AddinDependency adep = dep as AddinDependency;
                    if (adep == null)
                        continue;
                    var descs = FindDescriptions (desc.Domain, adep.FullAddinId);
                    if (descs.Count > 0) {
                        foreach (AddinDescription sd in descs)
                            InsertSortedAddin (inserted, lists, sd);
                    }
                }
            }
            List<AddinDescription> list;
            if (!lists.TryGetValue (desc.Domain, out list))
                lists [desc.Domain] = list = new List<AddinDescription> ();

            list.Add (desc);
        }