private done()

in src/deviceExplorer.ts [131:166]


    private done(op: string, label: string, resolve, reject, hostName: string = null, outputChannel: vscode.OutputChannel = this._outputChannel, iotHubConnectionString?: string) {
        return (err, deviceInfo, res) => {
            const eventName = `AZ.${label.replace(/\s/g, ".")}.${op}`;
            if (err) {
                TelemetryClient.sendEvent(eventName, { Result: "Fail" }, iotHubConnectionString);
                this.outputLine(label, `[${op}] error: ${err.toString()}`, outputChannel);
                reject(err);
            }
            if (res) {
                let result = "Fail";
                if (res.statusCode < 300) {
                    result = "Success";
                    if (op === "Create" || op === "Delete") {
                        // Workaround for https://github.com/microsoft/vscode-azure-iot-toolkit/issues/331
                        setTimeout(() => {
                            vscode.commands.executeCommand("azure-iot-toolkit.refresh");
                        }, 500);
                    }
                }
                TelemetryClient.sendEvent(eventName, { Result: result }, iotHubConnectionString);
                this.outputLine(label, `[${op}][${result}] status: ${res.statusCode} ${res.statusMessage}`, outputChannel);
            }
            if (deviceInfo) {
                if (deviceInfo.authentication.SymmetricKey.primaryKey != null) {
                    deviceInfo.connectionString = ConnectionString.createWithSharedAccessKey(hostName,
                        deviceInfo.deviceId, deviceInfo.authentication.SymmetricKey.primaryKey);
                }
                if (deviceInfo.authentication.x509Thumbprint.primaryThumbprint != null) {
                    deviceInfo.connectionString = ConnectionString.createWithX509Certificate(hostName, deviceInfo.deviceId);
                }
                this.outputLine(label, `[${op}] device info: ${JSON.stringify(deviceInfo, null, 2)}`, outputChannel);
                resolve(deviceInfo);
            }
            resolve();
        };
    }