示例#1
0
        public async Task <Model.Snapshot> BuildIndexAsync(string snapshotName, Workspace workspace, CancellationToken cancellationToken = default)
        {
            var builder = new SnapshotBuilder()
            {
                Name = snapshotName
            };

            _logger.LogInformation("Generating Snapshot Index...");
            foreach (var project in workspace.CurrentSolution.Projects)
            {
                var projectBuilder = new ProjectBuilder(builder);
                await IndexProjectAsync(project, projectBuilder, cancellationToken);

                builder.Projects.Add(projectBuilder);
            }
            var snapshot = builder.Build();

            _logger.LogInformation("Generated Snapshot Index.");

            return(snapshot);
        }
示例#2
0
 public ProjectBuilder(SnapshotBuilder snapshot)
 {
     Snapshot = snapshot ?? throw new ArgumentNullException(nameof(snapshot));
 }