public ValueTask <Solution> GetSolutionAsync(ServiceBrokerClient client, PinnedSolutionInfo solutionInfo, CancellationToken cancellationToken)
        {
            var assetSource   = new SolutionAssetSource(client);
            var workspace     = GetWorkspace();
            var assetProvider = workspace.CreateAssetProvider(solutionInfo, SolutionAssetCache, assetSource);

            return(workspace.GetSolutionAsync(assetProvider, solutionInfo.SolutionChecksum, solutionInfo.FromPrimaryBranch, solutionInfo.WorkspaceVersion, solutionInfo.ProjectId, cancellationToken));
        }
Example #2
0
        public async ValueTask <Solution> GetSolutionAsync(ServiceBrokerClient client, Checksum solutionChecksum, CancellationToken cancellationToken)
        {
            var assetSource   = new SolutionAssetSource(client);
            var workspace     = GetWorkspace();
            var assetProvider = workspace.CreateAssetProvider(solutionChecksum, SolutionAssetCache, assetSource);

            var(solution, _) = await workspace.RunWithSolutionAsync(
                assetProvider,
                solutionChecksum,
                static _ => ValueTaskFactory.FromResult(false),
                cancellationToken).ConfigureAwait(false);

            return(solution);
        }
Example #3
0
        public async ValueTask <T> RunServiceAsync <T>(
            ServiceBrokerClient client,
            Checksum solutionChecksum,
            Func <Solution, ValueTask <T> > implementation,
            CancellationToken cancellationToken)
        {
            var assetSource   = new SolutionAssetSource(client);
            var workspace     = GetWorkspace();
            var assetProvider = workspace.CreateAssetProvider(solutionChecksum, SolutionAssetCache, assetSource);

            var(_, result) = await workspace.RunWithSolutionAsync(
                assetProvider,
                solutionChecksum,
                implementation,
                cancellationToken).ConfigureAwait(false);

            return(result);
        }