- refresh() {
- this.eiProducersDataSource.loadProducers();
- this.eiProducersDataSource.eiProducersSubject().subscribe((data) => {
- this.producersDataSource.data = data;
+ public producers(): Producer[] {
+ return this.producerSubject.value;
+ }
+
+ loadProducers() {
+ this.loadingSubject.next(true);
+ let producers = [];
+
+ this.producerService.getProducerIds().pipe(
+ mergeMap(prodIds =>
+ forkJoin(prodIds.map(id => {
+ return forkJoin([
+ of(id),
+ this.producerService.getProducer(id),
+ this.producerService.getProducerStatus(id)
+ ])
+ })
+ )),
+ finalize(() => this.loadingSubject.next(false)),
+ ).subscribe(result => {
+ producers = result.map(producer => {
+ let producerObj = <Producer>{};
+ producerObj.producer_id = producer[0];
+ if (producer[1].supported_info_types) {
+ producerObj.producer_types = producer[1].supported_info_types;
+ }
+ if (producer[2].operational_state) {
+ producerObj.status = producer[2].operational_state.toString();
+ }
+ return producerObj;
+ });
+ this.producerSubject.next(producers);
+ }, err => {
+ console.error("Subscribe function error:" + err);