public NuGetSearchService(IFactory <SourceRepository, IPackageSource> repositoryFactory, ILog log, NuGetPackageContentService contentService, NuGetPackageVersionService versionService, INuGetPackageFilter filter = null, INuGetSearchTermTransformer termTransformer = null) { Ensure.NotNull(repositoryFactory, "repositoryFactory"); Ensure.NotNull(log, "log"); Ensure.NotNull(contentService, "contentService"); Ensure.NotNull(versionService, "versionService"); if (filter == null) { filter = OkNuGetPackageFilter.Instance; } this.repositoryFactory = repositoryFactory; this.log = log; this.contentService = contentService; this.nuGetLog = new NuGetLogger(log); this.versionService = versionService; this.filter = filter ?? OkNuGetPackageFilter.Instance; this.queryTransformer = termTransformer ?? EmptyNuGetSearchTermTransformer.Instance; }
protected override void OnStartup(StartupEventArgs e) { MemoryLogSerializer = new MemoryLogSerializer(new DefaultLogFormatter()); LogFactory = new DefaultLogFactory("root") .AddConsole() .AddSerializer(MemoryLogSerializer); ILog log = LogFactory.Scope("Startup"); log.Debug($"Startup arguments: {Environment.NewLine}{string.Join(" ", e.Args)}"); log.Debug($"Current version: {VersionInfo.Version}"); Args = new Args(e.Args); ProcessService = new ProcessService(this, Args.ProcessNamesToKillBeforeChange ?? new string[0]); Navigator = new Navigator(this, this, this); BuildExceptionHandler(); if (!Directory.Exists(Args.Path)) { Navigator.Notify("Plugin Manager", "Missing argument '--path' - a target path to install packages to.", Navigator.MessageType.Error); Shutdown(); return; } base.OnStartup(e); PackageSources = new NuGetPackageSourceCollection(new PackageSourceProvider(new Settings(Args.Path))); IReadOnlyCollection <NuGetFramework> frameworks = ParseMonikers(Args.Monikers); NuGetSourceRepositoryFactory repositoryFactory = new NuGetSourceRepositoryFactory(); INuGetPackageFilter packageFilter = null; if (Args.Dependencies.Any()) { packageFilter = new DependencyNuGetPackageFilter(LogFactory.Scope("Filter"), Args.Dependencies, frameworks); } NuGetPackageContent.IFrameworkFilter frameworkFilter = null; if (Args.Monikers.Any()) { frameworkFilter = new NuGetFrameworkFilter(frameworks); } INuGetSearchTermTransformer termTransformer = null; if (Args.Tags != null) { termTransformer = new TagsNuGetSearchTermTransformer(Args.Tags); } var selfPackageConfiguration = new SelfPackageConfiguration(Args.SelfPackageId); SelfPackageConverter.Configuration = selfPackageConfiguration; var contentService = new NuGetPackageContentService(log, frameworkFilter); var versionService = new NuGetPackageVersionService(contentService, log, packageFilter, frameworkFilter); var searchService = new NuGetSearchService(repositoryFactory, LogFactory.Scope("Search"), contentService, versionService, packageFilter, termTransformer); var installService = new NuGetInstallService(repositoryFactory, LogFactory.Scope("Install"), Args.Path, contentService, versionService, packageFilter, frameworkFilter); var selfUpdateService = new SelfUpdateService(this, ProcessService); EnsureSelfPackageInstalled(installService); var viewModel = new MainViewModel( PackageSources, searchService, installService, selfPackageConfiguration, selfUpdateService, NuGetPackageVersionComparer.Instance ); var wnd = new MainWindow(viewModel, ProcessService, Navigator); wnd.Show(); if (Args.IsSelfUpdate) { RunSelfUpdate(wnd); } else { wnd.ViewModel.Browser.Search .Execute(); } }