refactor: cleanup UI service method namespace
[e-mobility-charging-stations-simulator.git] / src / charging-station / Bootstrap.ts
index db884ed874285adae8c532ff6b3fccb175ec5fbb..802a944525cc4c824e6a282aa048c20ab6a0e9cc 100644 (file)
@@ -129,7 +129,7 @@ export class Bootstrap extends EventEmitter {
 
   public async stop(): Promise<void> {
     if (isMainThread && this.started === true) {
-      await this.uiServer?.sendBroadcastChannelRequest(
+      await this.uiServer?.sendInternalRequest(
         this.uiServer.buildProtocolRequest(
           Utils.generateUUID(),
           ProcedureName.STOP_CHARGING_STATION,
@@ -299,18 +299,23 @@ export class Bootstrap extends EventEmitter {
         process.exit(0);
       })
       .catch((error) => {
-        console.error(chalk.red('Error while stopping charging stations simulator:'), error);
+        console.error(chalk.red('Error while shutdowning charging stations simulator: '), error);
         process.exit(1);
       });
   };
 
-  private waitForChargingStationsStopped = async (): Promise<void> => {
+  private waitForChargingStationsStopped = async (
+    stoppedEventsToWait = this.numberOfStartedChargingStations
+  ): Promise<number> => {
     return new Promise((resolve) => {
       let stoppedEvents = 0;
+      if (stoppedEventsToWait === 0) {
+        resolve(stoppedEvents);
+      }
       this.on(ChargingStationWorkerMessageEvents.stopped, () => {
         ++stoppedEvents;
-        if (stoppedEvents === this.numberOfChargingStations) {
-          resolve();
+        if (stoppedEvents === stoppedEventsToWait) {
+          resolve(stoppedEvents);
         }
       });
     });