示例#1
0
        (IRepositoryUpdater repositoryUpdater, IPackageUpdater packageUpdater) MakeRepositoryUpdater(
            IPackageUpdateSelection updateSelection,
            List <PackageUpdateSet> updates,
            IPackageUpdater packageUpdater = null)
        {
            var sources      = Substitute.For <INuGetSourcesReader>();
            var updateFinder = Substitute.For <IUpdateFinder>();
            var fileRestore  = Substitute.For <IFileRestoreCommand>();
            var reporter     = Substitute.For <IReporter>();

            updateFinder.FindPackageUpdateSets(
                Arg.Any <IFolder>(),
                Arg.Any <NuGetSources>(),
                Arg.Any <VersionChange>())
            .Returns(updates);

            if (packageUpdater == null)
            {
                packageUpdater = Substitute.For <IPackageUpdater>();
                packageUpdater.MakeUpdatePullRequests(
                    Arg.Any <IGitDriver>(),
                    Arg.Any <RepositoryData>(),
                    Arg.Any <IReadOnlyCollection <PackageUpdateSet> >(),
                    Arg.Any <NuGetSources>(),
                    Arg.Any <SettingsContainer>())
                .Returns(1);
            }

            var repoUpdater = new RepositoryUpdater(
                sources, updateFinder, updateSelection, packageUpdater,
                Substitute.For <INuKeeperLogger>(), new SolutionsRestore(fileRestore),
                reporter);

            return(repoUpdater, packageUpdater);
        }
示例#2
0
        private IRepositoryUpdater MakeRepositoryUpdater(
            IPackageUpdater packageUpdater,
            IPackageUpdateSelection updateSelection,
            List <PackageUpdateSet> updates)
        {
            var sources      = Substitute.For <INuGetSourcesReader>();
            var updateFinder = Substitute.For <IUpdateFinder>();
            var fileRestore  = Substitute.For <IFileRestoreCommand>();
            var reporter     = Substitute.For <IAvailableUpdatesReporter>();

            updateFinder.FindPackageUpdateSets(
                Arg.Any <IFolder>(),
                Arg.Any <NuGetSources>(),
                Arg.Any <VersionChange>())
            .Returns(updates);

            packageUpdater.MakeUpdatePullRequest(
                Arg.Any <IGitDriver>(),
                Arg.Any <RepositoryData>(),
                Arg.Any <PackageUpdateSet>(),
                Arg.Any <NuGetSources>(),
                Arg.Any <SourceControlServerSettings>())
            .Returns(true);

            var repoUpdater = new RepositoryUpdater(
                sources, updateFinder, updateSelection, packageUpdater,
                Substitute.For <INuKeeperLogger>(), new SolutionsRestore(fileRestore),
                reporter);

            return(repoUpdater);
        }
示例#3
0
        public static void Main(string[] args)
        {
            GCSettings.LatencyMode = GCLatencyMode.SustainedLowLatency;
            //GCSettings.LatencyMode = GCLatencyMode.LowLatency;
            Console.WriteLine("Is server GC: " + GCSettings.IsServerGC);
            Console.WriteLine("Latency Mode: " + GCSettings.LatencyMode);

            var dataFilePath = "/tmp/data/data.zip";
            var optionsPath  = "/tmp/data/options.txt";
            var extractPath  = "zip";
            var retriever    = new FileReader();

            var dataLoader        = new DataLoader();
            var accountsFileCount = retriever.ReadAccountFilesCount(dataFilePath);
            var accountsCount     = (int)(accountsFileCount * 10000) + 22000;

            var inMemory = new InMemoryRepository(accountsCount);

            Holder.Instance.InMemory = inMemory;

            var updater = new RepositoryUpdater(inMemory);

            Holder.Instance.Updater = updater;
            dataLoader.Load(dataFilePath, extractPath, optionsPath, inMemory, updater, retriever);

            Holder.Instance.Filter           = new Filter(inMemory);
            Holder.Instance.Group            = new Group(inMemory, new GroupFactory(inMemory));
            Holder.Instance.GroupQueryParser = new GroupQueryParser();
            Holder.Instance.Recommend        = new Recommend(inMemory);
            Holder.Instance.Suggest          = new Suggest(inMemory);

            var sw = new Stopwatch();

            sw.Start();
            inMemory.CreateMainIndexes(false, sw);
            sw.Stop();

            TotalMemoryHelper.Show();

            GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
            GC.Collect();
            GC.WaitForFullGCComplete();

            TotalMemoryHelper.Show();

            CreateWebHostBuilder(args).Build().Run();
        }