private PackageProvider ImportProvider(IHostApi request, string providerName, IMetaProvider powerShellMetaProvider) { //foreach (var providerName in providers) { //var matchedProviderName = provider.As<DefaultPackageProvider>().GetPackageProviderName(); //TODO pass in Maxi, mini, and requiredVersion to LoadAvailableProvider var instance = powerShellMetaProvider.LoadAvailableProvider(request.As<IRequest>(), providerName); if (instance == null) { return null; } //Register newly created provider if (typeof(IPackageProvider).CanDynamicCastFrom(instance)) { var packageProvider = RegisterPackageProvider(instance.As<IPackageProvider>(), providerName, String.Empty, request); if (packageProvider != null) { packageProvider.ProviderPath = powerShellMetaProvider.GetProviderPath(providerName); return packageProvider; } } else { //A provider is not found request.Error(Constants.Messages.UnknownProvider, ErrorCategory.InvalidOperation.ToString(), providerName, request.FormatMessageString(Constants.Messages.UnknownProvider, providerName)); } } }