in src/resourceExplorers/BlockchainDataManagerResourceExplorer.ts [83:126]
public async createProject(
consortiumResourceExplorer: ConsortiumResourceExplorer,
createConsortiumCallback: (consortium: AzureBlockchainProject) => Promise<void>,
azureClient?: AzureBlockchainServiceClient,
subscriptionItem?: SubscriptionItem,
resourceGroupItem?: ResourceGroupItem)
: Promise<BlockchainDataManagerProject> {
Telemetry.sendEvent('BlockchainDataManagerResourceExplorer.createProject');
await this.waitForLogin();
if (!azureClient || !subscriptionItem) {
subscriptionItem = await this.getOrSelectSubscriptionItem();
resourceGroupItem = await this.getOrCreateResourceGroupItem(subscriptionItem);
azureClient = await this.getAzureClient(subscriptionItem, resourceGroupItem);
}
const eventGridClient = await this.getEventGridClient(subscriptionItem, resourceGroupItem as ResourceGroupItem);
const selectedConsortium = await this.getSelectedConsortium(consortiumResourceExplorer, azureClient);
if (!(selectedConsortium instanceof ConsortiumItem)) {
const child = await consortiumResourceExplorer
.createAzureConsortium(azureClient, subscriptionItem, Constants.availableBlockchainDataManagerLocations);
await createConsortiumCallback(child);
Telemetry.sendEvent('BlockchainDataManagerResourceExplorer.createProject.createAzureBlockchainProject');
throw new CancellationEvent();
}
const selectedMember =
await this.getSelectedMember(consortiumResourceExplorer, azureClient, selectedConsortium.memberName);
const bdmItems = await azureClient.bdmResource.getBlockchainDataManagerList();
const selectedTransactionNode =
await this.getSelectedTransactionNode(azureClient, bdmItems, selectedMember.label, selectedConsortium.location);
const selectedEventGrid = await this.getSelectedEventGrid(eventGridClient, selectedConsortium.location);
return this.createBlockchainDataManagerInstance(
azureClient,
bdmItems,
selectedConsortium.location,
selectedMember.label,
Constants.getTransactionNodeName(selectedMember.label, selectedTransactionNode.transactionNodeName),
selectedEventGrid.url);
}