Files
hv2-all-in-one/ui/hv2-ui/src/app/my-parkings/my-parkings.component.ts

63 lines
1.8 KiB
TypeScript

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<DN_Parking>
displayedColumns: string[] = ["description", "premise"]
constructor(
private parkingService: ParkingService,
private premiseService: PremiseService,
private messageService: MessageService
) { }
async getParkings(): Promise<void> {
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<number, Premise>()
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<DN_Parking>(this.dnParkings)
} catch (err) {
this.messageService.add(JSON.stringify(err, undefined, 4))
}
}
ngOnInit(): void {
this.messageService.add("MyParkingsComponent.ngOnInit")
this.getParkings()
}
}