private async createBlockchainDataManagerInstance()

in src/resourceExplorers/BlockchainDataManagerResourceExplorer.ts [430:490]


  private async createBlockchainDataManagerInstance(
    azureClient: AzureBlockchainServiceClient,
    bdmItems: IAzureBlockchainDataManagerDto[],
    location: string,
    memberName: string,
    transactionNodeName: string,
    eventGridUrl: string,
  ): Promise<BlockchainDataManagerProject> {
    const { bdmResource, subscriptionId, resourceGroup } = azureClient;

    const bodyParamsForCreateBDM: ICreateBlockchainDataManagerDto = {
      location,
      properties: {
        sku: '',
        state: Constants.provisioningState.stopped,
      },
    };

    const bodyParamsForCreateBDMInput: ICreateBlockchainDataManagerInputDto = {
      properties: {
        dataSource: {
          enableBackfilling: 'False',
          resourceId: this.getTransactionNodeUrl(subscriptionId, resourceGroup, memberName, transactionNodeName),
        },
        inputType: 'Ethereum',
      },
    };

    const bodyParamsForCreateBDMOutput: ICreateBlockchainDataManagerOutputDto = {
      properties: {
        dataSource: {
          resourceId: eventGridUrl,
        },
        outputType: 'EventGrid',
      },
    };

    const connectionName = await this.getBlockchainDataManagerConnectionName();
    const bdmName = await this.getBlockchainDataManagerName(bdmItems);

    return await window.withProgress({
      location: ProgressLocation.Window,
      title: `${Constants.statusBarMessages.creatingBlockchainDataManager} - ${bdmName}`,
    }, async () => {

      const createdBDM = await bdmResource.createBlockchainDataManager(bdmName, bodyParamsForCreateBDM);
      const createdInput =
        await bdmResource.createBlockchainDataManagerInput(bdmName, transactionNodeName, bodyParamsForCreateBDMInput);
      const createdOutput =
        await bdmResource.createBlockchainDataManagerOutput(bdmName, connectionName, bodyParamsForCreateBDMOutput);
      await this.startBlockchainDataManager(bdmResource, createdBDM.id, bdmName);

      const bdmProject = new BlockchainDataManagerProject(bdmName, subscriptionId, resourceGroup);
      const bdmInputs = await this.getBlockchainDataManagerInputs([createdInput], subscriptionId, resourceGroup);
      const bdmOutputs = await this.getBlockchainDataManagerOutputs([createdOutput], subscriptionId, resourceGroup);

      bdmProject.setChildren([bdmInputs, bdmOutputs]);

      return bdmProject;
    });
  }