Orc.NuGetExplorer.PackageManager.GetPackageDownloaderInstance C# (CSharp) Method

GetPackageDownloaderInstance() private method

private GetPackageDownloaderInstance ( IPackageDetails packageDetails ) : object
packageDetails IPackageDetails
return object
        private object GetPackageDownloaderInstance(IPackageDetails packageDetails)
        {
            var innerPackagePropertyInfo = packageDetails.GetType().GetPropertyEx("Package");
            if (innerPackagePropertyInfo == null)
            {
                return null;
            }

            var innerPackage = innerPackagePropertyInfo.GetValue(packageDetails, null);
            if (innerPackage == null)
            {
                return null;
            }

            var downloaderPropertyInfo = innerPackage.GetType().GetPropertyEx("Downloader");
            if (downloaderPropertyInfo == null)
            {
                return null;
            }

            var downloader = downloaderPropertyInfo.GetValue(innerPackage, null);
            if (downloader == null)
            {
                return null;
            }

            return downloader;
        }