Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 19 additions & 11 deletions New_Extensibility_Model/Samples/VSProjectQueryAPISample/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,12 @@ Below is a showcase of queries that are available in the Project Query API
In project query, you also have the ability to invoke build actions on the solution level. These build actions include: `BuildAsync`, `RebuildAsync`, `CleanAsync`, `DebugLaunchAsync`, and `LaunchAsync`.

```csharp
var result = await querySpace.Solutions
.BuildAsync(cancellationToken);
IQueryResults<ISolutionSnapshot> solutions = await querySpace.QuerySolutionAsync(s => s, cancellationToken);

foreach (var solution in solutions)
{
await solution.AsQueryable().BuildAsync(cancellationToken);
}
```

### Loading/Unloading a Project
Expand Down Expand Up @@ -165,7 +169,12 @@ await querySpace.UpdateSolutionAsync(
`SaveAsync` is an API call that can be used on the solution level.

```csharp
var result = await querySpace.Solutions.SaveAsync(cancellationToken);
IQueryResults<ISolutionSnapshot> solutions = await querySpace.QuerySolutionAsync(s => s, cancellationToken);

foreach (var solution in solutions)
{
await solution.SaveAsync(cancellationToken);
}
```


Expand Down Expand Up @@ -217,11 +226,10 @@ await result.First().BuildAsync(cancellationToken);
In the example below, we specify the name of the project we would like to update. We then call `Rename` while passing in the new name of the project.

```csharp
var result = await querySpace.Projects
.Where(p => p.Name == "ConsoleApp1")
.AsUpdatable()
.Rename("NewProjectName")
.ExecuteAsync(cancellationToken);
var result = await querySpace.UpdateProjectsAsync(
project => project.Where(p => p.Name == "ConsoleApp1"),
project => project.Rename("NewProjectName"),
cancellationToken);
```


Expand All @@ -241,9 +249,9 @@ In the code sample, we will query the projects in a solution and skip the first

```csharp
var result = await querySpace.QueryProjectsAsync(
project => project.With(p => p.Name)
.Skip(1),
cancellationToken);
project => project.With(p => p.Name)
.Skip(1),
cancellationToken);
```

### Tracking Queries
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,12 @@ public class RenameProjectCommand : Command
/// <inheritdoc />
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
var serviceBroker = context.Extensibility.ServiceBroker;
ProjectQueryableSpace querySpace = new ProjectQueryableSpace(serviceBroker: serviceBroker, joinableTaskContext: null);
var result = await querySpace.Projects
.Where(p => p.Name == "ConsoleApp1")
.AsUpdatable()
.Rename("NewProjectName")
.ExecuteAsync(cancellationToken);
WorkspacesExtensibility querySpace = this.Extensibility.Workspaces();

IQueryResults<IProjectSnapshot> consoleApp1QueryResults = await querySpace.UpdateProjectsAsync(
project => project.Where(p => p.Name == "ConsoleApp1"),
project => project.Rename("NewProjectName"),
cancellationToken);

await this.Extensibility.Shell().ShowPromptAsync("Renamed Project to NewProjectName.", PromptOptions.OK, cancellationToken);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ public class SolutionBuildCommand : Command
/// <inheritdoc />
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
IServiceBroker serviceBroker = context.Extensibility.ServiceBroker;
ProjectQueryableSpace querySpace = new ProjectQueryableSpace(serviceBroker: serviceBroker, joinableTaskContext: null);
var result = await querySpace.Solutions
.BuildAsync(cancellationToken);
WorkspacesExtensibility querySpace = this.Extensibility.Workspaces();
IQueryResults<ISolutionSnapshot> solutions = await querySpace.QuerySolutionAsync(s => s, cancellationToken);
foreach (var solution in solutions)
{
await solution.AsQueryable().BuildAsync(cancellationToken);
}

await this.Extensibility.Shell().ShowPromptAsync($"Building the solution.", PromptOptions.OK, cancellationToken);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@ public class SolutionSaveCommand : Command
/// <inheritdoc />
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
IServiceBroker serviceBroker = context.Extensibility.ServiceBroker;
ProjectQueryableSpace querySpace = new ProjectQueryableSpace(serviceBroker: serviceBroker, joinableTaskContext: null);
var result = await querySpace.Solutions.SaveAsync(cancellationToken);
WorkspacesExtensibility querySpace = this.Extensibility.Workspaces();
IQueryResults<ISolutionSnapshot> solutions = await querySpace.QuerySolutionAsync(s => s, cancellationToken);
foreach (var solution in solutions)
{
await solution.SaveAsync(cancellationToken);
}

await this.Extensibility.Shell().ShowPromptAsync($"Saving the solution.", PromptOptions.OK, cancellationToken);
}
Expand Down