import { Component, OnInit } from '@angular/core'; import { MessageService } from '../message.service'; import { ParkingService, PremiseService } from '../data-object-service'; import { Parking, Premise } from '../data-objects'; import { MatTableDataSource } from '@angular/material/table' interface DN_Parking { parking: Parking premise: Premise } @Component({ selector: 'app-my-parkings', templateUrl: './my-parkings.component.html', styleUrls: ['./my-parkings.component.css'] }) export class MyParkingsComponent implements OnInit { parkings: Parking[] premises: Premise[] dnParkings: DN_Parking[] = [] dataSource: MatTableDataSource displayedColumns: string[] = ["description", "premise"] constructor( private parkingService: ParkingService, private premiseService: PremiseService, private messageService: MessageService ) { } async getParkings(): Promise { try { this.messageService.add("Trying to load parkings") this.parkings = await this.parkingService.getParkings() this.messageService.add("Parkings loaded") this.messageService.add("Trying to load premises") this.premises = await this.premiseService.getPremises() this.messageService.add(`Premises loaded: ${ JSON.stringify(this.premises, undefined, 4) }`) const premisesDict = new Map() for (let p of this.premises) { premisesDict.set(p.id, p) } for (let p of this.parkings) { this.dnParkings.push({ parking: p, premise: premisesDict.get(p.premise) }) } this.dataSource = new MatTableDataSource(this.dnParkings) } catch (err) { this.messageService.add(JSON.stringify(err, undefined, 4)) } } ngOnInit(): void { this.messageService.add("MyParkingsComponent.ngOnInit") this.getParkings() } }