Bottles.PackagingRuntimeGraph.FindAllPackages C# (CSharp) Method

FindAllPackages() public method

public FindAllPackages ( ) : IEnumerable
return IEnumerable
        public IEnumerable<IPackageInfo> FindAllPackages()
        {
            var result = new List<IPackageInfo>();

            _diagnostics.LogExecutionOnEach(_packageLoaders, (currentLoader, log) => {
                IPackageInfo[] packageInfos = currentLoader.Load(log).ToArray();
                _diagnostics.LogPackages(currentLoader, packageInfos);

                packageInfos.Each(pak => {
                    if (result.Any(x => x.Name == pak.Name))
                    {
                        _diagnostics.LogFor(pak)
                            .Trace("Bottle named {0} already found by a previous loader.  Ignoring.", pak.Name);
                    }
                    else
                    {
                        result.Add(pak);
                    }
                });
            });

            return result;
        }