import { Component, OnInit } from '@angular/core'; import { MessageService } from '../message.service'; import { CommercialPremiseService, PremiseService } from '../data-object-service'; import { CommercialPremise, Premise } from '../data-objects'; import { MatTableDataSource } from '@angular/material/table' interface DN_CommercialPremise { commercialPremise: CommercialPremise premise: Premise } @Component({ selector: 'app-my-commercial-units', templateUrl: './my-commercial-units.component.html', styleUrls: ['./my-commercial-units.component.css'] }) export class MyCommercialUnitsComponent implements OnInit { commercialPremises: CommercialPremise[] premises: Premise[] dnCommercialPremises: DN_CommercialPremise[] = [] dataSource: MatTableDataSource displayedColumns: string[] = ["description", "premise", "area"] constructor( private commercialPremiseService: CommercialPremiseService, private premiseService: PremiseService, private messageService: MessageService ) { } async getCommercialPremises(): Promise { try { this.messageService.add("Trying to load commercialPremises") this.commercialPremises = await this.commercialPremiseService.getCommercialPremises() this.messageService.add("CommercialPremises 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 f of this.commercialPremises) { this.dnCommercialPremises.push({ commercialPremise: f, premise: premisesDict.get(f.premise) }) } this.dataSource = new MatTableDataSource(this.dnCommercialPremises) } catch (err) { this.messageService.add(JSON.stringify(err, undefined, 4)) } } ngOnInit(): void { this.messageService.add("MyCommercialUnitsComponent.ngOnInit") this.getCommercialPremises() } }