import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'; import { RoleOrganizationType } from '@app/core/common/enum/role-organization-type'; import { Reference } from '@app/core/model/reference/reference'; import { User } from '@app/core/model/user/user'; import { Guid } from '@common/types/guid'; export class UserProfileEditorModel { public id: Guid; public name: String; public language: any; public culture: any; public timezone: String; public organization: Reference; public roleOrganization: RoleOrganizationType; fromModel(item: User): UserProfileEditorModel { this.id = item.id; this.name = item.name; this.language = item.additionalInfo.language; this.timezone = item.additionalInfo.timezone; this.culture = item.additionalInfo.culture; this.organization = item.additionalInfo.organization; this.roleOrganization = item.additionalInfo.roleOrganization; return this; } buildForm(availableLanguages: any[]): UntypedFormGroup { const formGroup = new UntypedFormBuilder().group({ id: new UntypedFormControl(this.id), name: new UntypedFormControl(this.name), language: new UntypedFormControl(this.language ? availableLanguages.filter(x => x === this.language).pop() : '', [Validators.required]), timezone: new UntypedFormControl(this.timezone, [Validators.required]), culture: new UntypedFormControl(this.culture, [Validators.required]), organization: new UntypedFormControl(this.organization), roleOrganization: new UntypedFormControl(this.roleOrganization), }); return formGroup; } }