module fb { export class KundTyp { AerKundTypSaeljare: ChangeTrack; AerKundTypKoepare: ChangeTrack; constructor(data: any) { if (!data) { data = {}; } this.AerKundTypSaeljare = new ChangeTrack(data.AerKundTypSaeljare || null); this.AerKundTypKoepare = new ChangeTrack(data.AerKundTypKoepare || null); if (data.KundTyp && typeof(data.KundTyp.value) === "number") { this.setStateFromNumberRepresentation(data.KundTyp.value); } } getStateNumberRepresentation(aerUtland: boolean) { if (!aerUtland) {return null;} else if (this.AerKundTypSaeljare.value && this.AerKundTypKoepare.value) { return KundTypEnum.KOEPKUND_SAELJKUND; } else if (this.AerKundTypSaeljare.value) { return KundTypEnum.SAELJKUND; } else if (this.AerKundTypKoepare.value) { return KundTypEnum.KOEPKUND; } return KundTypEnum.NONE; } setStateFromNumberRepresentation(num: number) { switch (num) { case KundTypEnum.KOEPKUND: this.AerKundTypKoepare.setValue(true); this.AerKundTypSaeljare.setValue(false); break; case KundTypEnum.SAELJKUND: this.AerKundTypKoepare.setValue(false); this.AerKundTypSaeljare.setValue(true); break; case KundTypEnum.KOEPKUND_SAELJKUND: this.AerKundTypKoepare.setValue(true); this.AerKundTypSaeljare.setValue(true); break; case KundTypEnum.NONE: default: this.AerKundTypKoepare.setValue(false); this.AerKundTypSaeljare.setValue(false); break; } } } }