Assessment core extension (#10154)

This commit is contained in:
Vladimir Chernov
2020-05-29 01:17:41 +03:00
committed by GitHub
parent 0d544660e0
commit 8288360cc4
47 changed files with 1813 additions and 58 deletions

View File

@@ -27,6 +27,7 @@ import { IExtHostContext } from 'vs/workbench/api/common/extHost.protocol';
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
import { assign } from 'vs/base/common/objects';
import { serializableToMap } from 'sql/base/common/map';
import { IAssessmentService } from 'sql/workbench/services/assessment/common/interfaces';
/**
* Main thread class for handling data protocol management registration.
@@ -53,7 +54,8 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData
@ITaskService private _taskService: ITaskService,
@IProfilerService private _profilerService: IProfilerService,
@ISerializationService private _serializationService: ISerializationService,
@IFileBrowserService private _fileBrowserService: IFileBrowserService
@IFileBrowserService private _fileBrowserService: IFileBrowserService,
@IAssessmentService private _assessmentService: IAssessmentService
) {
super();
if (extHostContext) {
@@ -447,6 +449,23 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData
return undefined;
}
public $registerSqlAssessmentServicesProvider(providerId: string, handle: number): Promise<any> {
const self = this;
this._assessmentService.registerProvider(providerId, <azdata.SqlAssessmentServicesProvider>{
providerId: providerId,
assessmentInvoke(connectionUri: string, targetType: number): Thenable<azdata.SqlAssessmentResult> {
return self._proxy.$assessmentInvoke(handle, connectionUri, targetType);
},
getAssessmentItems(connectionUri: string, targetType: number): Thenable<azdata.SqlAssessmentResult> {
return self._proxy.$getAssessmentItems(handle, connectionUri, targetType);
},
generateAssessmentScript(items: azdata.SqlAssessmentResultItem[]): Thenable<azdata.ResultStatus> {
return self._proxy.$generateAssessmentScript(handle, items);
}
});
return undefined;
}
public $registerCapabilitiesServiceProvider(providerId: string, handle: number): Promise<any> {
const self = this;
this._capabilitiesService.registerProvider(<azdata.CapabilitiesProvider>{