Пример #1
0
 public NuGetPackageContentService(ILog log, NuGetPackageContent.IFrameworkFilter frameworkFilter = null)
 {
     Ensure.NotNull(log, "log");
     this.log             = log.Factory.Scope("Package");
     this.nuGetLog        = new NuGetLogger(this.log);
     this.frameworkFilter = frameworkFilter;
 }
Пример #2
0
        public NuGetPackageVersionService(NuGetPackageContentService contentService, ILog log, INuGetPackageFilter filter = null, NuGetPackageContent.IFrameworkFilter frameworkFilter = null)
        {
            Ensure.NotNull(contentService, "contentService");
            Ensure.NotNull(log, "log");
            this.contentService = contentService;
            this.log            = log;
            this.nuGetLog       = new NuGetLogger(log);

            if (filter == null)
            {
                filter = OkNuGetPackageFilter.Instance;
            }

            this.filter          = filter;
            this.frameworkFilter = frameworkFilter;
        }
Пример #3
0
        public NuGetSearchService(IFactory <SourceRepository, IPackageSource> repositoryFactory, ILog log, NuGetPackageContentService contentService, NuGetPackageVersionService versionService, INuGetPackageFilter filter = null, NuGetPackageContent.IFrameworkFilter frameworkFilter = 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;
            this.frameworkFilter = frameworkFilter;
        }
Пример #4
0
        public NuGetInstallService(IFactory <SourceRepository, IPackageSource> repositoryFactory, ILog log, string path, NuGetPackageContentService contentService, NuGetPackageVersionService versionService, INuGetPackageFilter packageFilter = null, NuGetPackageContent.IFrameworkFilter frameworkFilter = null)
        {
            Ensure.NotNull(repositoryFactory, "repositoryFactory");
            Ensure.NotNull(log, "log");
            Ensure.NotNull(path, "path");
            Ensure.NotNull(contentService, "contentService");
            Ensure.NotNull(versionService, "versionService");
            this.repositoryFactory = repositoryFactory;
            this.log             = log;
            this.nuGetLog        = new NuGetLogger(log);
            Path                 = path;
            this.contentService  = contentService;
            this.versionService  = versionService;
            this.frameworkFilter = frameworkFilter;

            if (packageFilter == null)
            {
                packageFilter = OkNuGetPackageFilter.Instance;
            }

            this.packageFilter = packageFilter;
        }
Пример #5
0
        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("Packages", "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(Args.Dependencies, frameworks);
            }

            NuGetPackageContent.IFrameworkFilter frameworkFilter = null;
            if (Args.Monikers.Any())
            {
                frameworkFilter = new NuGetFrameworkFilter(frameworks);
            }

            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, frameworkFilter);
            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);
            }
        }