Sage.Modules.ModuleConfiguration.ResolveDependencies C# (CSharp) Method

ResolveDependencies() private static method

private static ResolveDependencies ( ModuleConfiguration config ) : IEnumerable
config ModuleConfiguration
return IEnumerable
        private static IEnumerable<ModuleConfiguration> ResolveDependencies(ModuleConfiguration config)
        {
            List<ModuleConfiguration> result = new List<ModuleConfiguration>();

            foreach (string moduleKey in config.ModuleDependencies)
            {
                ModuleConfiguration reference;
                if (Project.Configuration.Modules.TryGetValue(moduleKey, out reference))
                {
                    result.Add(reference);
                    IEnumerable<ModuleConfiguration> innerDependencies = ModuleConfiguration.ResolveDependencies(reference);
                    result.AddRange(innerDependencies.Where(innerConfig => !result.Contains(innerConfig)));
                }
            }

            return result;
        }