{"version":3,"file":"main.js","mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZpD;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app.component.ts","./src/app/app.module.ts","./src/app/building/building-detail/building-detail-edit-floors/building-detail-edit-floors.component.ts","./src/app/building/building-detail/building-detail-edit-usages/building-detail-edit-usages.component.ts","./src/app/building/building-detail/building-detail-edit/building-detail-edit.component.ts","./src/app/building/building-detail/building-detail.component.ts","./src/app/building/building-detail/building-usage.component.ts","./src/app/building/building-document-overview/building-document-overview.component.ts","./src/app/building/building-incident-detail/building-incident-detail.component.ts","./src/app/building/building-incident-list/building-incident-list.component.ts","./src/app/building/building-incident/incident-state.service.ts","./src/app/building/building-list/building-list.component.ts","./src/app/building/building-overview/building-overview.component.ts","./src/app/building/building-room-detail/building-room-detail.component.ts","./src/app/building/building-room-list/building-room-list.component.ts","./src/app/building/building.module.ts","./src/app/building/building/building.component.ts","./src/app/building/defect-list/defect-list.component.ts","./src/app/building/document-building-equipment/document-building-equipment.component.ts","./src/app/building/document-incident/document-incident.component.ts","./src/app/building/equipment-detail/equipment-detail-edit-inspection-duties/equipment-detail-edit-inspection-duties.component.ts","./src/app/building/equipment-detail/equipment-detail-edit/equipment-detail-edit.component.ts","./src/app/building/equipment-detail/equipment-detail.component.ts","./src/app/building/equipment-feature/equipment-feature-edit/equipment-feature-edit.component.ts","./src/app/building/equipment-feature/equipment-feature.component.ts","./src/app/building/equipment-history/equipment-history.component.ts","./src/app/building/equipment-incident-detail/equipment-incident-detail.component.ts","./src/app/building/equipment-incident-list/equipment-incident-list.component.ts","./src/app/building/equipment-list/equipment-list.component.ts","./src/app/building/equipment-module/equipment-module.component.ts","./src/app/building/equipment-overview/equipment-overview.component.ts","./src/app/building/incident-calendar/custom-calendar-event-title-formatter.ts","./src/app/building/incident-calendar/incident-calendar.component.ts","./src/app/building/incident-overview/incident-overview.component.ts","./src/app/building/installEquipment.service.ts","./src/app/building/kpiFilter.enum.ts","./src/app/building/module-detail/module-detail-edit/module-detail-edit.component.ts","./src/app/building/module-detail/module-detail.component.ts","./src/app/building/module-feature/module-feature-edit/module-feature-edit.component.ts","./src/app/building/module-feature/module-feature.component.ts","./src/app/building/module-overview/module-overview.component.ts","./src/app/building/router-throughput/router.throughput.component.ts","./src/app/building/start/start.component.ts","./src/app/building/wizard/building/building-wizard-data/building-wizard-data.component.ts","./src/app/building/wizard/building/building-wizard-equipment/building-wizard-equipment.component.ts","./src/app/building/wizard/building/building-wizard-location/building-wizard-location.component.ts","./src/app/building/wizard/building/building-wizard-model.ts","./src/app/building/wizard/building/building-wizard-navigation-paths.ts","./src/app/building/wizard/building/building-wizard-progress/building-wizard-progress.component.ts","./src/app/building/wizard/building/building-wizard-usage/building-wizard-usage.component.ts","./src/app/building/wizard/building/building-wizard.component.ts","./src/app/building/wizard/building/building-wizard.service.ts","./src/app/building/wizard/defect/defect-wizard-data/defect-wizard-data.component.ts","./src/app/building/wizard/defect/defect-wizard-document/defect-wizard-document.component.ts","./src/app/building/wizard/defect/defect-wizard-equipment/defect-wizard-equipment.component.ts","./src/app/building/wizard/defect/defect-wizard-navigation-paths.enum.ts","./src/app/building/wizard/defect/defect-wizard-progress/defect-wizard-progress.component.ts","./src/app/building/wizard/defect/defect-wizard.component.ts","./src/app/building/wizard/defect/defect-wizard.service.ts","./src/app/building/wizard/document/document-wizard-data/document-wizard-data.component.ts","./src/app/building/wizard/document/document-wizard-equipment/document-wizard-equipment.component.ts","./src/app/building/wizard/document/document-wizard-incident-data/document-wizard-incident-data.component.ts","./src/app/building/wizard/document/document-wizard-incident/document-wizard-incident.component.ts","./src/app/building/wizard/document/document-wizard-model.ts","./src/app/building/wizard/document/document-wizard-navigation-paths.enum.ts","./src/app/building/wizard/document/document-wizard-progress/document-wizard-progress.component.ts","./src/app/building/wizard/document/document-wizard-type/document-wizard-type.component.ts","./src/app/building/wizard/document/document-wizard.component.ts","./src/app/building/wizard/document/document-wizard.service.ts","./src/app/building/wizard/equipment/equipment-wizard-data/equipment-wizard-data.component.ts","./src/app/building/wizard/equipment/equipment-wizard-model.ts","./src/app/building/wizard/equipment/equipment-wizard-navigation-paths.enum.ts","./src/app/building/wizard/equipment/equipment-wizard-progress/equipment-wizard-progress.component.ts","./src/app/building/wizard/equipment/equipment-wizard-technical/equipment-wizard-technical.component.ts","./src/app/building/wizard/equipment/equipment-wizard-type/equipment-wizard-type.component.ts","./src/app/building/wizard/equipment/equipment-wizard.component.ts","./src/app/building/wizard/equipment/equipment-wizard.service.ts","./src/app/building/wizard/incident/incident-wizard-contact/incident-wizard-contact.component.ts","./src/app/building/wizard/incident/incident-wizard-data/incident-wizard-data.component.ts","./src/app/building/wizard/incident/incident-wizard-equipment/incident-wizard-equipment.component.ts","./src/app/building/wizard/incident/incident-wizard-model.ts","./src/app/building/wizard/incident/incident-wizard-navigation-paths.enum.ts","./src/app/building/wizard/incident/incident-wizard-progress/incident-wizard-progress.component.ts","./src/app/building/wizard/incident/incident-wizard.component.ts","./src/app/building/wizard/incident/incident-wizard.service.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard-api-service.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard-data/inspectionduty-wizard-data.component.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard-model.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard-navigation-paths.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard-other-equipments/inspectionduty-wizard-other-equipments.component.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard-progress/inspectionduty-wizard-progress.component.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard-service.ts","./src/app/building/wizard/inspectionduty/inspectionduty-wizard.component.ts","./src/app/building/wizard/module/module-wizard-data/module-wizard-data.component.ts","./src/app/building/wizard/module/module-wizard-model.ts","./src/app/building/wizard/module/module-wizard-navigation-paths.enum.ts","./src/app/building/wizard/module/module-wizard-progress/module-wizard-progress.component.ts","./src/app/building/wizard/module/module-wizard-technical/module-wizard-technical.component.ts","./src/app/building/wizard/module/module-wizard-type/module-wizard-type.component.ts","./src/app/building/wizard/module/module-wizard.component.ts","./src/app/building/wizard/module/module-wizard.service.ts","./src/app/contract/contract-detail/contract-detail.component.ts","./src/app/contract/contract-list/contract-list.component.ts","./src/app/contract/contract-overview/contract-overview.component.ts","./src/app/contract/contract.module.ts","./src/app/contract/contract/contract.component.ts","./src/app/contract/equipment-list/equipment-list.component.ts","./src/app/contract/start/start.component.ts","./src/app/contract/wizard/contract/contract-wizard-general-data/contract-wizard-general-data.component.ts","./src/app/contract/wizard/contract/contract-wizard-install-equipments/contract-wizard-install-equipments.component.ts","./src/app/contract/wizard/contract/contract-wizard-maintenance-data/contract-wizard-maintenance-data.component.ts","./src/app/contract/wizard/contract/contract-wizard-model.ts","./src/app/contract/wizard/contract/contract-wizard-navigation-paths.enum.ts","./src/app/contract/wizard/contract/contract-wizard-progress/contract-wizard-progress.component.ts","./src/app/contract/wizard/contract/contract-wizard-service-contact/contract-wizard-service-contact.component.ts","./src/app/contract/wizard/contract/contract-wizard.component.ts","./src/app/contract/wizard/contract/contract-wizard.service.ts","./src/app/core/auth/auth-guard.service.ts","./src/app/core/auth/auth.infointerceptor.ts","./src/app/core/auth/auth.interceptor.ts","./src/app/core/auth/auth.module.ts","./src/app/core/auth/auth.service.ts","./src/app/core/auth/global-error.handler.ts","./src/app/core/bootstrap/app.config.ts","./src/app/core/components/address/address.component.ts","./src/app/core/components/building/building-documents-input-data.ts","./src/app/core/components/building/building-edit-usages-input-data.ts","./src/app/core/components/building/building-list-input-data.ts","./src/app/core/components/building/documents-missing-only/core-building-documents-missing-only.component.ts","./src/app/core/components/building/documents/core-building-documents.component.ts","./src/app/core/components/building/edit-usages/core-building-edit-usages.component.ts","./src/app/core/components/building/list/core-building-list.component.ts","./src/app/core/components/contract/contract-list-input-data.ts","./src/app/core/components/contract/list/core-contract-list.component.ts","./src/app/core/components/contract/set-maintenance/core-contract-set-maintenance.component.ts","./src/app/core/components/equipment/documents/core-equipment-documents.component.ts","./src/app/core/components/equipment/edit-inspection-duties/core-edit-inspection-duties.component.ts","./src/app/core/components/equipment/edit-inspection-duties/editInspectionDutyGroup.ts","./src/app/core/components/equipment/edit-inspection-duties/editOperatorTask.ts","./src/app/core/components/equipment/equipment-documents-input-data.ts","./src/app/core/components/equipment/equipment-edit-inspection-duties-input-data.ts","./src/app/core/components/equipment/equipment-list-input-data.ts","./src/app/core/components/equipment/list-accordion/core-equipment-list-accordion.component.ts","./src/app/core/components/equipment/list/core-equipment-list.component.ts","./src/app/core/components/incident/incident-create-output-data.ts","./src/app/core/components/incident/incident-data-grid/incident-filter/incident-filter.component.ts","./src/app/core/components/incident/incident-detail-link-output-data.ts","./src/app/core/components/incident/incident-detail/incident-detail-navigation-paths.enum.ts","./src/app/core/components/incident/incident-detail/incident-detail.component.ts","./src/app/core/components/incident/incident-list-input-data.ts","./src/app/core/components/incident/incident-list-view/incident-list-view.component.ts","./src/app/core/components/incident/incident-list-view/incident-row/incident-row.component.ts","./src/app/core/components/incident/incident-list-view/incident-tab/incident-tab.component.ts","./src/app/core/components/incident/incident-type.ts","./src/app/core/components/incident/incident-view.ts","./src/app/core/components/infographic/infographic.component.ts","./src/app/core/components/selectable-items/selectable-items.component.ts","./src/app/core/components/service-contact/add-service-contact/add-service-contact.component.ts","./src/app/core/components/upload/document-upload.component.ts","./src/app/core/components/upload/image-upload-model.ts","./src/app/core/components/upload/image-upload-service.ts","./src/app/core/components/upload/image-upload.component.ts","./src/app/core/config/google-maps.config.ts","./src/app/core/core.module.ts","./src/app/core/datepicker/clickOutside.directive.ts","./src/app/core/datepicker/customDateParserFormatter.ts","./src/app/core/datepicker/datepicker-i18n.ts","./src/app/core/datepicker/datepicker.pipe.ts","./src/app/core/form/provide-parent-form-group.ts","./src/app/core/form/provide-parent-form.ts","./src/app/core/gui/scrollToListItem.directive.ts","./src/app/core/gui/text-truncate-title.directive.ts","./src/app/core/model/attributeDTO.ts","./src/app/core/model/building.ts","./src/app/core/model/extendedMaintenanceContractMapping.ts","./src/app/core/model/gaeb.ts","./src/app/core/model/incident.ts","./src/app/core/model/inspectionDuty.ts","./src/app/core/model/installEquipment.ts","./src/app/core/model/mandator.ts","./src/app/core/model/odata.ts","./src/app/core/odata-services/odata.coreapi.service.ts","./src/app/core/odata/odata.coreapi.ts","./src/app/core/odata/odataclient-builder.ts","./src/app/core/odata/odataclient-context.ts","./src/app/core/odata/odataclient-operation.ts","./src/app/core/odata/odataclient-primitives.ts","./src/app/core/odata/odataclient-response.ts","./src/app/core/odata/odataclient.ts","./src/app/core/pipes/dateCompare.pipe.ts","./src/app/core/pipes/dateFormat.pipe.ts","./src/app/core/pipes/dateTimeFormat.pipe.ts","./src/app/core/pipes/fileSize.pipe.ts","./src/app/core/pipes/filter.pipe.ts","./src/app/core/pipes/filter2.pipe.ts","./src/app/core/pipes/order.pipe.ts","./src/app/core/pipes/secureDownloadToken.pipe.ts","./src/app/core/popup/confirmation.modal.ts","./src/app/core/popup/image-preview.modal.ts","./src/app/core/popup/office-preview.modal.ts","./src/app/core/popup/pdf.modal.ts","./src/app/core/popup/popup.service.ts","./src/app/core/shared/global.service.ts","./src/app/core/shared/logger.service.ts","./src/app/core/shared/login.service.ts","./src/app/core/shared/navigator.service.ts","./src/app/core/shared/services/attribute-values.service.ts","./src/app/core/shared/services/building.service.ts","./src/app/core/shared/services/mandator.service.ts","./src/app/core/shared/services/shared/excel.service.ts","./src/app/core/shared/services/shared/file.service.ts","./src/app/core/tools/utils.ts","./src/app/core/validators/country.validator.ts","./src/app/core/validators/optionalEmail.validator.ts","./src/app/core/validators/region.validator.ts","./src/app/dashboard/conformity/conformity-detail/conformity-detail.component.ts","./src/app/dashboard/conformity/conformity-list/conformity-list.component.ts","./src/app/dashboard/dashboard-boxes/conformity-box/conformity-box.component.ts","./src/app/dashboard/dashboard-boxes/dashboard-boxes.component.ts","./src/app/dashboard/dashboard-boxes/economy-box/economy-box.component.ts","./src/app/dashboard/dashboard-boxes/integrity-box/integrity-box.component.ts","./src/app/dashboard/dashboard.component.ts","./src/app/dashboard/dashboard.module.ts","./src/app/dashboard/integrity/buildings-missing-documents-only/buildings-missing-documents-only.component.ts","./src/app/dashboard/integrity/buildings-missing-documents/buildings-missing-documents.component.ts","./src/app/dashboard/integrity/buildings-no-equipment/buildings-no-equipment.component.ts","./src/app/dashboard/integrity/buildings-no-usage/building-edit-usages/building-edit-usages.component.ts","./src/app/dashboard/integrity/buildings-no-usage/building-no-usage-state.service.ts","./src/app/dashboard/integrity/buildings-no-usage/buildings-no-usage.component.ts","./src/app/dashboard/integrity/equipments-contract-not-scheduled/equipments-contract-not-scheduled.component.ts","./src/app/dashboard/integrity/equipments-contract-not-scheduled/equipments-contracts-set-termination/equipments-contracts-set-termination.component.ts","./src/app/dashboard/integrity/equipments-missing-documents/equipments-missing-documents.component.ts","./src/app/dashboard/integrity/equipments-no-contract/equipment-choose-contract-action/equipment-choose-contract-action.component.ts","./src/app/dashboard/integrity/equipments-no-contract/equipment-set-contract/equipment-set-contract.component.ts","./src/app/dashboard/integrity/equipments-no-contract/equipments-no-contract-state.service.ts","./src/app/dashboard/integrity/equipments-no-contract/equipments-no-contract.component.ts","./src/app/dashboard/integrity/equipments-no-inspection-duties/equipment-no-inspection-duties-state.service.ts","./src/app/dashboard/integrity/equipments-no-inspection-duties/equipment-set-inspection-duties/equipment-set-inspection-duties.component.ts","./src/app/dashboard/integrity/equipments-no-inspection-duties/equipments-no-inspection-duties.component.ts","./src/app/dashboard/integrity/equipments-not-scheduled-inspection-duties/equipment-not-scheduled-inspection-duties-state.service.ts","./src/app/dashboard/integrity/equipments-not-scheduled-inspection-duties/equipment-terminate-inspection-duties/equipment-terminate-inspection-duties.component.ts","./src/app/dashboard/integrity/equipments-not-scheduled-inspection-duties/equipments-not-scheduled-inspection-duties.component.ts","./src/app/dashboard/integrity/missing-document-upload/missing-document-state.service.ts","./src/app/dashboard/integrity/missing-document-upload/missing-document-upload.component.ts","./src/app/dashboard/integrity/shared/equipments-contract-handling/contract-handling-input-data.ts","./src/app/dashboard/integrity/shared/equipments-contract-handling/equipments-contract-handling.component.ts","./src/app/dashboard/range-of-services/range-of-services.component.ts","./src/app/global/change-password/change-password.component.ts","./src/app/global/contract-data-processing/article/contract-data-processing-article.component.ts","./src/app/global/contract-data-processing/contract-data-processing.component.ts","./src/app/global/data-protection/data-protection.component.ts","./src/app/global/export/export-calculation/export-calculation-buildings/export-calculation-buildings.component.ts","./src/app/global/export/export-calculation/export-calculation-inspection-duties/export-calculation-inspection-duties.component.ts","./src/app/global/export/export-calculation/export-calculation.component.ts","./src/app/global/export/export-navigation-paths.enum.ts","./src/app/global/export/export.component.ts","./src/app/global/export/gaeb/export-gaeb.component.ts","./src/app/global/export/incidents/export-incidents.component.ts","./src/app/global/export/inspection-duty/export-inspection-duty.component.ts","./src/app/global/export/maintenance-contract/export-maintenance-contract.component.ts","./src/app/global/export/portfolio/export-portfolio.component.ts","./src/app/global/global.module.ts","./src/app/global/manage-users/manage-users.component.ts","./src/app/global/mandator/mandator-detail/mandator-detail.component.ts","./src/app/global/mandator/mandator-list/mandator-list.component.ts","./src/app/global/mandator/wizard/mandator-wizard-agreement/mandator-wizard-agreement.component.ts","./src/app/global/mandator/wizard/mandator-wizard-confirm/mandator-wizard-confirm.component.ts","./src/app/global/mandator/wizard/mandator-wizard-data/mandator-wizard-data.component.ts","./src/app/global/mandator/wizard/mandator-wizard-done/mandator-wizard-done.component.ts","./src/app/global/mandator/wizard/mandator-wizard-model.ts","./src/app/global/mandator/wizard/mandator-wizard-navigation-paths.enum.ts","./src/app/global/mandator/wizard/mandator-wizard-progress/mandator-wizard-progress.component.ts","./src/app/global/mandator/wizard/mandator-wizard.component.ts","./src/app/global/mandator/wizard/mandator-wizard.service.ts","./src/app/global/profile/advanced/advanced.component.ts","./src/app/global/profile/profile.component.ts","./src/app/global/service-provider/service-provider.component.ts","./src/app/global/specification-of-services/specification-of-services.component.ts","./src/app/global/terms-of-use/terms-of-use.component.ts","./src/app/login-landing/login-landing.component.ts","./src/app/login/login.component.ts","./src/app/logout/logout.component.ts","./src/app/news/news.component.ts","./src/app/news/news.module.ts","./src/app/news/news.service.ts","./src/app/news/notification/notification.component.ts","./src/app/page-not-found/page-not-found.component.ts","./src/app/search/search.module.ts","./src/app/search/search/search-building/search-building.component.ts","./src/app/search/search/search-install-equipment/search-install-equipment.component.ts","./src/app/search/search/search-install-module/search-install-module.component.ts","./src/app/search/search/search-navigation-paths.enum.ts","./src/app/search/search/search.component.ts","./src/app/service-contact/service-contact-detail/service-contact-detail.component.ts","./src/app/service-contact/service-contact-list/service-contact-list.component.ts","./src/app/service-contact/service-contact.module.ts","./src/app/service-contact/service-contact/service-contact.component.ts","./src/app/service-contact/start/start.component.ts","./src/app/service-contact/wizard/service-contact/service-contact-wizard.component.ts","./src/environments/environment.ts","./src/extentions/array.ts","./src/main.ts","ignored|D:\\a\\1\\s\\Source\\OB3\\node_modules\\pdfjs-dist\\build|canvas","ignored|D:\\a\\1\\s\\Source\\OB3\\node_modules\\pdfjs-dist\\build|fs","ignored|D:\\a\\1\\s\\Source\\OB3\\node_modules\\pdfjs-dist\\build|http","ignored|D:\\a\\1\\s\\Source\\OB3\\node_modules\\pdfjs-dist\\build|https","ignored|D:\\a\\1\\s\\Source\\OB3\\node_modules\\pdfjs-dist\\build|url","ignored|D:\\a\\1\\s\\Source\\OB3\\node_modules\\pdfjs-dist\\build|zlib"],"sourcesContent":["import {\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport {\r\n BodyOutputType,\r\n ToasterConfig,\r\n ToasterService,\r\n} from \"angular2-toaster\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\nimport { switchMap, map } from \"rxjs/operators\";\r\nimport { AuthService } from \"./core/auth/auth.service\";\r\nimport { Mandator } from \"./core/model/mandator\";\r\nimport { Operations } from \"./core/odata/odata.coreapi\";\r\nimport { ConfirmationModal } from \"./core/popup/confirmation.modal\";\r\nimport { GlobalService } from \"./core/shared/global.service\";\r\nimport { MandatorWizardModel } from \"./global/mandator/wizard/mandator-wizard-model\";\r\nimport { MandatorWizardService } from \"./global/mandator/wizard/mandator-wizard.service\";\r\nimport { NewsService } from \"./news/news.service\";\r\nimport { Utils } from \"./core/tools/utils\";\r\nimport { ODataCoreService } from \"./core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { LoginService } from \"./core/shared/login.service\";\r\n\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: \"./app.component.html\",\r\n styleUrls: [\"./app.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n isCollapsed: boolean = true;\r\n\r\n config: ToasterConfig = new ToasterConfig({\r\n animation: \"fade\",\r\n timeout: 5000,\r\n mouseoverTimerStop: false,\r\n bodyOutputType: BodyOutputType.TrustedHtml,\r\n });\r\n\r\n mandators: Mandator[];\r\n _mandator: Mandator;\r\n\r\n isLoggedIn: boolean;\r\n newsCount: number = 0;\r\n\r\n @ViewChild(\"advPopupContent\")\r\n advPopupContent: any;\r\n mandatorWizardModel: MandatorWizardModel;\r\n\r\n @ViewChild(\"contactPopupContent\")\r\n contactPopupContent: any;\r\n message: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n public authService: AuthService,\r\n private router: Router,\r\n private loginService: LoginService,\r\n private globalService: GlobalService,\r\n private newsService: NewsService,\r\n private modalService: NgbModal,\r\n private mandatorWizardService: MandatorWizardService,\r\n private toasterService: ToasterService,\r\n private odataCoreService: ODataCoreService,\r\n ) {\r\n // this language will be used as a fallback when a translation isn't found in the current language\r\n this.translateService.setDefaultLang(\"de\");\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n this.translateService.use(\"de\");\r\n }\r\n\r\n ngOnInit() {\r\n // collapse menu on navigation\r\n this.subscriptions.add(\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.isCollapsed = true;\r\n }\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n combineLatest(\r\n this.authService.isLoggedIn(),\r\n this.authService.mandatorChanged()\r\n ).subscribe(([isLoggedIn]) => {\r\n this.isLoggedIn = isLoggedIn;\r\n if (isLoggedIn) {\r\n this.newsCount = 0;\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Account.Query()\r\n .OrderBy(\"Name\")\r\n .Expand((x) => {\r\n x.Expand(\"Rights\", (y) => {\r\n y.Filter((z) =>\r\n z.EqualsField(\r\n \"Identity\",\r\n Guid.parse(localStorage.getItem(\"infoUserIdentity\"))\r\n )\r\n );\r\n });\r\n x.Expand(\"Statistics\"),\r\n x.Expand(\"User\"),\r\n x.Expand(\"AccountDataProcessingAgreement\", (y) => {\r\n y.Expand(\"Country\");\r\n }),\r\n x.Expand(\"Profile\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Mandator(), i);\r\n })\r\n )\r\n )\r\n .subscribe((mandators) => {\r\n this.mandators = mandators;\r\n\r\n if (this.mandators && this.mandators.length) {\r\n // read mandator from local storage if available\r\n const mandatorId = this.authService.getMandator();\r\n if (mandatorId) {\r\n const findMandator = this.mandators.filter(\r\n (m) => m.Identity === mandatorId\r\n );\r\n if (findMandator && findMandator.length > 0) {\r\n this.mandator = findMandator[0];\r\n }\r\n }\r\n\r\n // preselect mandator from user config\r\n if (!this.mandator) {\r\n this.subscriptions.add(\r\n this.loginService\r\n .readSettings(AuthService.USER_MANDATOR_CONFIG)\r\n .subscribe((res) => {\r\n if (res) {\r\n const findMandator = this.mandators.filter(\r\n (m) => m.Identity === res[\"value\"]\r\n );\r\n if (findMandator && findMandator.length > 0) {\r\n this.mandator = findMandator[0];\r\n this.authService.setMandator(res[\"value\"]);\r\n }\r\n }\r\n\r\n // preselect first mandator\r\n if (!this.mandator) {\r\n this.mandator = this.mandators[0];\r\n this.chooseMandator(this.mandator);\r\n }\r\n\r\n // get news count for mandator\r\n this.subscriptions.add(\r\n this.loginService\r\n .readSettings(\r\n \"Ob2Webclient_LastNotificationDate_\" +\r\n localStorage.getItem(\"mandator\")\r\n )\r\n .pipe(\r\n switchMap((date) => {\r\n let cutoff = new Date();\r\n cutoff.setDate(cutoff.getDate() - 30);\r\n if (date) {\r\n const cutoff2 = new Date(date);\r\n if (cutoff.getTime() < cutoff2.getTime()) {\r\n cutoff = cutoff2;\r\n }\r\n }\r\n\r\n return this.odataCoreService.ActionLog.Query()\r\n .Filter((x) =>\r\n x.GreaterThanOrEquals(\"Created\", cutoff)\r\n )\r\n .Count()\r\n .then((x) => x);\r\n })\r\n )\r\n .subscribe((res) => {\r\n this.newsCount = +res;\r\n })\r\n );\r\n })\r\n );\r\n } else {\r\n // get news count for mandator\r\n this.subscriptions.add(\r\n this.loginService\r\n .readSettings(\r\n \"Ob2Webclient_LastNotificationDate_\" +\r\n localStorage.getItem(\"mandator\")\r\n )\r\n .pipe(\r\n switchMap((date) => {\r\n let cutoff = new Date();\r\n cutoff.setDate(cutoff.getDate() - 30);\r\n if (date) {\r\n const cutoff2 = new Date(date);\r\n if (cutoff.getTime() < cutoff2.getTime()) {\r\n cutoff = cutoff2;\r\n }\r\n }\r\n return this.odataCoreService.ActionLog.Query()\r\n .Filter((x) =>\r\n x.GreaterThanOrEquals(\"Created\", cutoff)\r\n )\r\n .Count()\r\n .then((x) => x);\r\n })\r\n )\r\n .subscribe((res) => {\r\n this.newsCount = +res;\r\n })\r\n );\r\n }\r\n }\r\n })\r\n );\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n set mandator(mandator: Mandator) {\r\n this.authService.serviceContactMandator =\r\n mandator.AccountType === Operations.AccountTypes.ServiceProvider;\r\n this.authService.userReadOnly = mandator.Rights[0].CanEdit === false;\r\n\r\n mandator.isOwnerOwner =\r\n mandator.User.Email === this.authService.getUserEmail();\r\n if (mandator.isOwnerOwner) {\r\n if (\r\n !mandator?.AccountDataProcessingAgreement &&\r\n (!localStorage.getItem(\"data_processing_agreement\") ||\r\n localStorage.getItem(\"data_processing_agreement\") === \"false\")\r\n ) {\r\n localStorage.setItem(\"data_processing_agreement\", \"true\");\r\n\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"AppComponent._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"AppComponent._modal_message\",\r\n { mandatorId: mandator.Identity }\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"AppComponent._modal_yes\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"AppComponent._modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n // mandator data for popup\r\n this.mandatorWizardService.startWizard();\r\n this.mandatorWizardModel = this.mandatorWizardService.getCurrentMandator();\r\n // we need to load countries for country data\r\n if (mandator.Profile != null) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Country.Query()\r\n .OrderBy(\"Id\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => Utils.mapAllJSONDatesToDates(i))\r\n )\r\n )\r\n .subscribe((countries) => {\r\n this.mandatorWizardService.editWizard(\r\n mandator,\r\n countries.find(\r\n (c) =>\r\n c.Id === mandator.Profile.Address.CountryInfo.Id\r\n )\r\n );\r\n })\r\n );\r\n } else {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Country.Query()\r\n .OrderBy(\"Id\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => Utils.mapAllJSONDatesToDates(i))\r\n )\r\n )\r\n .subscribe((countries) => {\r\n this.mandatorWizardService.editWizard(\r\n mandator,\r\n countries.find((c) => c.Id === 0)\r\n );\r\n })\r\n );\r\n }\r\n // open adv popup with mandator data\r\n this.modalService\r\n .open(this.advPopupContent, { windowClass: \"adv-modal\" })\r\n .result.then((result) => {\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(mandator.Identity))\r\n .Actions()\r\n .SignDataProcessingAgreementInOperationsOnAccountInOperations()\r\n .Execute()\r\n .then((res) => {\r\n mandator.AccountDataProcessingAgreement = <\r\n Operations.AccountDataProcessingAgreement\r\n >{}; // create at least empty agreement so that we know it is agreed\r\n });\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n }\r\n this._mandator = mandator;\r\n }\r\n\r\n get mandator() {\r\n return this._mandator;\r\n }\r\n\r\n get userEmail() {\r\n const userEmail = this.authService.getUserEmail();\r\n if (userEmail && userEmail.length > 23) {\r\n return userEmail.substring(0, 18).concat(\" ...\");\r\n } else {\r\n return userEmail;\r\n }\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n profile() {\r\n this.router.navigate([\"/global/profile\"]);\r\n }\r\n\r\n changePassword() {\r\n this.router.navigate([\"/global/change-password\"]);\r\n }\r\n\r\n manageMandators() {\r\n this.router.navigate([\"/global/mandator\"]);\r\n }\r\n\r\n manageUsers() {\r\n this.router.navigate([\"/global/manage-users\"]);\r\n }\r\n\r\n export() {\r\n this.router.navigate([\"/global/export\"]);\r\n }\r\n\r\n termsOfUse() {\r\n this.router.navigate([\"/global/terms-of-use\"]);\r\n }\r\n\r\n dataProtection() {\r\n this.router.navigate([\"/global/data-protection\"]);\r\n }\r\n\r\n chooseMandator(mandator: Mandator): void {\r\n localStorage.setItem(\"data_processing_agreement\", \"false\");\r\n\r\n this.mandator = mandator;\r\n this.authService.setMandator(mandator.Identity);\r\n this.subscriptions.add(\r\n this.loginService\r\n .saveSettings(AuthService.USER_MANDATOR_CONFIG, mandator.Identity)\r\n .subscribe((res) => {\r\n if (mandator.isOwner && !mandator.Statistics.BuildingCount) {\r\n // do full page reload to building wizard\r\n const url = this.router\r\n .createUrlTree([\"/building\", \"wizard\"])\r\n .toString();\r\n this.router\r\n .navigateByUrl(\"/skipThisPage\", { skipLocationChange: true })\r\n .then(() => this.router.navigateByUrl(url));\r\n } else {\r\n // navigate to dashboard with full reload\r\n const url = this.router.createUrlTree([\"/dashboard\"]).toString();\r\n this.router\r\n .navigateByUrl(\"/skipThisPage\", { skipLocationChange: true })\r\n .then(() => this.router.navigateByUrl(url));\r\n }\r\n })\r\n );\r\n }\r\n\r\n setAdvancedMode() {\r\n this.authService.advancedMode = !this.authService.advancedMode;\r\n // reload page\r\n const url = this.router.url;\r\n this.router\r\n .navigateByUrl(\"/skipThisPage\", { skipLocationChange: true })\r\n .then(() => this.router.navigateByUrl(url));\r\n }\r\n\r\n showContact() {\r\n this.modalService\r\n .open(this.contactPopupContent, { windowClass: \"contact-modal\" })\r\n .result.then((result) => {\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(localStorage.getItem(\"mandator\")))\r\n .Actions()\r\n .SendContactRequestInOperationsOnAccountInOperations()\r\n .Parameters(this.message)\r\n .Execute()\r\n .then((res) => {\r\n this.message = \"\";\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"AppComponent._contact_success\")\r\n );\r\n });\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n}\r\n","import { registerLocaleData } from \"@angular/common\";\r\nimport {\r\n HttpClient,\r\n HttpClientModule,\r\n HttpClientJsonpModule,\r\n} from \"@angular/common/http\";\r\nimport localeDe from \"@angular/common/locales/de\";\r\nimport {\r\n APP_INITIALIZER,\r\n LOCALE_ID,\r\n NgModule,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n} from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport {\r\n RouterModule,\r\n Routes,\r\n UrlMatchResult,\r\n UrlSegment,\r\n} from \"@angular/router\";\r\nimport { NgbCollapseModule, NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateLoader, TranslateModule } from \"@ngx-translate/core\";\r\nimport { TranslateHttpLoader } from \"@ngx-translate/http-loader\";\r\nimport { ToasterModule } from \"angular2-toaster\";\r\nimport { PdfViewerModule } from \"ng2-pdf-viewer\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { BuildingModule } from \"./building/building.module\";\r\nimport { ContractModule } from \"./contract/contract.module\";\r\nimport { AuthModule } from \"./core/auth/auth.module\";\r\nimport { AppConfig } from \"./core/bootstrap/app.config\";\r\nimport { CoreModule } from \"./core/core.module\";\r\nimport { DashboardModule } from \"./dashboard/dashboard.module\";\r\nimport { GlobalModule } from \"./global/global.module\";\r\nimport { LoginComponent } from \"./login/login.component\";\r\nimport { LoginLandingComponent } from \"./login-landing/login-landing.component\";\r\nimport { LogoutComponent } from \"./logout/logout.component\";\r\nimport { NewsModule } from \"./news/news.module\";\r\nimport { PageNotFoundComponent } from \"./page-not-found/page-not-found.component\";\r\nimport { SearchModule } from \"./search/search.module\";\r\nimport { ServiceContactModule } from \"./service-contact/service-contact.module\";\r\nimport { ODataCoreService } from \"../app/core/odata-services/odata.coreapi.service\";\r\nimport { GoogleMapsConfig } from \"./core/config/google-maps.config\";\r\nimport { firstValueFrom } from \"rxjs\";\r\n\r\nregisterLocaleData(localeDe, \"de\");\r\n\r\nexport function loadGlobalModule() {\r\n return GlobalModule;\r\n}\r\nexport function loadBuildingModule() {\r\n return BuildingModule;\r\n}\r\nexport function loadContractModule() {\r\n return ContractModule;\r\n}\r\nexport function loadServiceContactModule() {\r\n return ServiceContactModule;\r\n}\r\nexport function loadDashboardModule() {\r\n return DashboardModule;\r\n}\r\nexport function loadSearchModule() {\r\n return SearchModule;\r\n}\r\nexport function loadNewsModule() {\r\n return NewsModule;\r\n}\r\n\r\nexport function WStartMatcher(url: UrlSegment[]): UrlMatchResult {\r\n if (url.length < 2) {\r\n return null;\r\n }\r\n\r\n const reg1 = /^w$/i;\r\n const reg2 = /^start$/i;\r\n const url1 = url[0].toString();\r\n const url2 = url[1].toString();\r\n\r\n if (url1.match(reg1) && url2.match(reg2)) {\r\n return { consumed: url };\r\n }\r\n\r\n return null;\r\n}\r\n\r\nconst routes: Routes = [\r\n { path: \"\", redirectTo: \"/dashboard\", pathMatch: \"full\" },\r\n { matcher: WStartMatcher, redirectTo: \"/dashboard\", pathMatch: \"full\" },\r\n { path: \"global\", loadChildren: loadGlobalModule },\r\n { path: \"dashboard\", loadChildren: loadDashboardModule },\r\n { path: \"building\", loadChildren: loadBuildingModule },\r\n { path: \"contract\", loadChildren: loadContractModule },\r\n { path: \"service-contact\", loadChildren: loadServiceContactModule },\r\n { path: \"search\", loadChildren: loadSearchModule },\r\n { path: \"news\", loadChildren: loadNewsModule },\r\n { path: \"logout\", component: LogoutComponent },\r\n { path: \"login\", component: LoginComponent },\r\n { path: \"login-landing\", component: LoginLandingComponent },\r\n { path: \"**\", component: PageNotFoundComponent },\r\n];\r\n\r\nexport function loadAppConfig(gmConfig: GoogleMapsConfig, config: AppConfig) {\r\n return () => config.load().then(() => firstValueFrom(gmConfig.load()));\r\n}\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n //add hash at the end of translation file so the browsers don't cache the file\r\n return new TranslateHttpLoader(\r\n http,\r\n \"/assets/i18n/\",\r\n \".json?cb=\" + new Date().getTime()\r\n );\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LogoutComponent,\r\n LoginComponent,\r\n LoginLandingComponent,\r\n PageNotFoundComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n HttpClientModule,\r\n HttpClientJsonpModule,\r\n GlobalModule,\r\n BuildingModule,\r\n ContractModule,\r\n ServiceContactModule,\r\n DashboardModule,\r\n SearchModule,\r\n NewsModule,\r\n AuthModule,\r\n CoreModule,\r\n NgbModule,\r\n RouterModule.forRoot(\r\n routes,\r\n // { enableTracing: true } // <-- debugging purposes only)\r\n { relativeLinkResolution: \"legacy\" }\r\n ),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient],\r\n },\r\n }),\r\n PdfViewerModule,\r\n ToasterModule.forRoot(),\r\n NgbCollapseModule,\r\n ],\r\n providers: [\r\n GoogleMapsConfig,\r\n AppConfig,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: loadAppConfig,\r\n deps: [GoogleMapsConfig, AppConfig, ODataCoreService],\r\n multi: true,\r\n },\r\n {\r\n provide: LOCALE_ID,\r\n useValue: \"de\",\r\n },\r\n ODataCoreService,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, Subscription, from } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { Selectable } from './../../../core/model/common';\r\nimport { ConfirmationModal } from './../../../core/popup/confirmation.modal';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-building-detail-edit-floors',\r\n templateUrl: './building-detail-edit-floors.component.html',\r\n styleUrls: ['./building-detail-edit-floors.component.scss']\r\n})\r\nexport class BuildingDetailEditFloorsComponent implements OnInit, OnDestroy {\r\n\r\n building: PropertyCore.Building;\r\n buildingFloor: PropertyCore.Building;\r\n floors: Selectable[];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n buildingIdentity: string;\r\n constructor(\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.buildingIdentity = params.get('id');\r\n\r\n this.subscriptions.add(from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingIdentity))\r\n .Expand(x => {\r\n x.Expand(\"Floors\");\r\n }) \r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe(res => {\r\n this.buildingFloor = res;\r\n }));\r\n\r\n return combineLatest(\r\n from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingIdentity))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n ,\r\n from(this.odataCoreService.Floor.Query()\r\n .OrderBy(\"Order\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n ,\r\n from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingIdentity))\r\n .Expand(x => {\r\n x.Expand(\"Floors\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].Floors.map(f => Utils.mapAllJSONDatesToDates(f)).sort((a, b) => a.Order - b.Order))));\r\n })).subscribe(([building, allFloors, buildingFloors]) => {\r\n this.building = building;\r\n this.floors = allFloors;\r\n this.floors.forEach(f => {\r\n buildingFloors.forEach(bf => (f.Id === bf.Id ? (f.selected = true) : null));\r\n });\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingDetailEditFloor._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingDetailEditFloor._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingDetailEditFloor._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingDetailEditFloor._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n let fIds = this.floors.filter(f => f.selected).map(f => f.Id);\r\n let linkFloor = fIds.filter(x => !this.getFloorIds(this.buildingFloor.Floors).includes(x));\r\n let unlinkFloor = this.getFloorIds(this.buildingFloor.Floors).filter(x => !fIds.includes(x));\r\n\r\n\r\n let x: number = 0;\r\n while (x < linkFloor.length) {\r\n await this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.building.Identity))\r\n .Value(\"Floors\", this.odataCoreService.Floor.Get().Key(linkFloor[x]).Bind())\r\n .Post()\r\n x++;\r\n }\r\n\r\n let y: number = 0;\r\n while (y < unlinkFloor.length) {\r\n await this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.building.Identity))\r\n .Value(\"Floors\", this.odataCoreService.Floor.Get().Key(unlinkFloor[y]).Bind())\r\n .Delete()\r\n \r\n y++;\r\n }\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n}\r\n\r\n getFloorIds(floors): number[] {\r\n let floorIds: number[] = [];\r\n floors.forEach(ut => {\r\n floorIds.push(ut.Id);\r\n });\r\n return floorIds;\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nimport { BuildingEditUsagesInputData } from './../../../core/components/building/building-edit-usages-input-data';\r\nimport { ConfirmationModal } from './../../../core/popup/confirmation.modal';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\n\r\n@Component({\r\n selector: 'app-building-detail-edit-usages',\r\n templateUrl: './building-detail-edit-usages.component.html',\r\n styleUrls: ['./building-detail-edit-usages.component.scss']\r\n})\r\nexport class BuildingDetailEditUsagesComponent implements OnInit, OnDestroy {\r\n inputData: BuildingEditUsagesInputData = new BuildingEditUsagesInputData();\r\n buildingUT: string;\r\n subscriptions: Subscription = new Subscription();\r\n buildingIdentity: string;\r\n building: PropertyCore.Building;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.inputData.buildingUsageTypes$ = this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.UsageType.Query()\r\n .Filter(x =>\r\n x.Any(\"Regions\", \"r: r/Id eq \" +params.get('regionId') + \"\"))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n ));\r\n\r\n this.inputData.building$ = this.route.root.firstChild.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.buildingUT = params.get('id');\r\n\r\n from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0]))).subscribe(res => {\r\n this.building = res;\r\n });\r\n\r\n return from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(isDirty: boolean): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingDetailEditUsage._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingDetailEditUsage._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingDetailEditUsage._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingDetailEditUsage._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate(['/building', this.buildingUT, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate(['/building', this.buildingUT, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n }\r\n\r\n async handleSaveRequest(btIds: number[]): Promise {\r\n let x: number = 0;\r\n \r\n while (btIds.length > x) {\r\n var existingUsageType = this.building.UsageTypes.filter(function(usageTypeId){\r\n return usageTypeId.Id == btIds[x];\r\n });\r\n \r\n // Add UsageType that is newly selected by the user, and ignore the current select usagetype\r\n if(existingUsageType.length == 0){\r\n await this.odataCoreService.Building.Link().Key(Guid.parse(this.buildingUT))\r\n .Value(\"UsageTypes\", this.odataCoreService.UsageType.Get().Key(btIds[x]).Bind())\r\n .Post()\r\n }\r\n x++;\r\n }\r\n\r\n let y: number = 0;\r\n while (this.building.UsageTypes.length > y) {\r\n var buildingUsageTypes = this.building.UsageTypes;\r\n var selectedUsageType = btIds.filter(function(usageTypeId){\r\n return usageTypeId == buildingUsageTypes[y].Id;\r\n });\r\n\r\n if(selectedUsageType.length == 0){\r\n await this.odataCoreService.Building.Link().Key(Guid.parse(this.buildingUT))\r\n .Value(\"UsageTypes\", this.odataCoreService.UsageType.Get().Key(buildingUsageTypes[y].Id).Bind())\r\n .Delete()\r\n }\r\n y++;\r\n }\r\n\r\n this.router.navigate(['/building', this.buildingUT, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { ConfirmationModal } from './../../../core/popup/confirmation.modal';\r\nimport { ILogger } from './../../../core/shared/logger.service';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { Common } from '../../../core/model/odata';\r\n\r\n\r\n@Component({\r\n selector: 'app-building-detail-edit',\r\n templateUrl: './building-detail-edit.component.html',\r\n styleUrls: ['./building-detail-edit.component.scss']\r\n})\r\nexport class BuildingDetailEditComponent implements OnInit, OnDestroy {\r\n\r\n building: PropertyCore.Building;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n logger: ILogger;\r\n\r\n buildingIdentity: string;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.buildingIdentity = params.get('id');\r\n return from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingIdentity))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n }) \r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }))\r\n .subscribe(res => {\r\n this.building = res;\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingDetailEdit._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingDetailEdit._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingDetailEdit._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingDetailEdit._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n await this.odataCoreService.Building.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Building())\r\n .Key(Guid.parse(this.building.Identity))\r\n .ValueProperty(\"Name\", this.building.Name)\r\n .ValueProperty(\"Address\", this.mapAddress(this.building.Address))\r\n .ValueProperty(\"Location\", {\r\n Longitude: this.building.Location.Longitude,\r\n Latitude: this.building.Location.Latitude\r\n })\r\n .ValueProperty(\"Size\", this.building.Size)\r\n .ValueProperty(\"YearOfConstruction\", this.building.YearOfConstruction)\r\n .Exec();\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n };\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n\r\n if (address.RegionInfo != null && address.RegionInfo.hasOwnProperty('Code')) {\r\n entity.Region = address.RegionInfo['Code'];\r\n }\r\n if (address.CountryInfo != null && address.CountryInfo.hasOwnProperty('Code')) {\r\n entity.Country = address.CountryInfo['Code'];\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap, Router } from \"@angular/router\";\r\nimport { NgbCarouselConfig, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { Subscription, Observable, from } from \"rxjs\";\r\nimport { switchMap } from \"rxjs/operators\";\r\nimport { PropertyCore } from \"../../core/odata/odata.coreapi\";\r\nimport { AuthService } from \"../../core/auth/auth.service\";\r\nimport { ConfirmationModal } from \"../../core/popup/confirmation.modal\";\r\nimport { PopupService } from \"../../core/popup/popup.service\";\r\nimport { GlobalService } from \"../../core/shared/global.service\";\r\nimport { InstallEquipmentKpiFilter } from \"../kpiFilter.enum\";\r\nimport { ODataPath } from \"../../core/odata/odataclient\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { Utils } from \"../../core/tools/utils\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { AppConfig } from \"../../core/bootstrap/app.config\";\r\nimport { FileItem } from \"ng2-file-upload\";\r\nimport { ImageUploadModel } from \"../../core/components/upload/image-upload-model\";\r\nimport { ImageUploadService } from \"../../core/components/upload/image-upload-service\";\r\n\r\n@Component({\r\n selector: \"app-building-detail\",\r\n templateUrl: \"./building-detail.component.html\",\r\n styleUrls: [\"./building-detail.component.scss\"],\r\n providers: [NgbCarouselConfig], // add NgbCarouselConfig to the component providers\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class BuildingDetailComponent implements OnInit, OnDestroy {\r\n private register: any;\r\n private response: string;\r\n imageUploadModel: ImageUploadModel;\r\n images: PropertyCore.Image[];\r\n imgIdx = 0;\r\n building: PropertyCore.Building;\r\n overDueIncidentsLength = 0;\r\n nextThreeMonthsIncidentsLength = 0;\r\n defectIncidentsLength = 0;\r\n equipmentsNoInspectionDutyAssigned = 0;\r\n equipmentsInspectionDutyUnterminated = 0;\r\n equipmentsNoMaintenanceContract = 0;\r\n equipmentNoMaintenanceDesired = false;\r\n equipmentsNoDocumentation = 0;\r\n buildingIdentity: string;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private globalService: GlobalService,\r\n private config: NgbCarouselConfig,\r\n private popupService: PopupService,\r\n private odataCoreService: ODataCoreService,\r\n private appConfig: AppConfig,\r\n private imageUploadService: ImageUploadService\r\n ) {\r\n config.interval = 5000;\r\n config.wrap = true;\r\n config.keyboard = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n this.imageUploadModel.entityType = \"Building\";\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n this.buildingIdentity = params.get(\"id\");\r\n return from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingIdentity))\r\n .Expand((x) => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])));\r\n })\r\n )\r\n .subscribe((building) => {\r\n this.building = building;\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsPlanned\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.building.Identity))\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.nextThreeMonthsIncidentsLength = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsOverdue\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.building.Identity))\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.overDueIncidentsLength = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDefective\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.building.Identity))\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.defectIncidentsLength = result))\r\n ).subscribe()\r\n );\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get(\"id\")))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) =>\r\n res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(img.Identity))\r\n .Raw()\r\n .ToUrlString(false);\r\n return img;\r\n })\r\n )\r\n )\r\n )\r\n )\r\n .subscribe((images) => {\r\n this.images = images;\r\n this.imgIdx = 0;\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n .Or.Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), false)\r\n .And.EqualsField(\"IsRenterResponsibility\", false)\r\n .And.EqualsField(\"IsNoMaintenanceDesired\", true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsNoDocumentation = result))\r\n )\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentsNoDocumentation = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsMaintained\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsNoMaintenanceContract = result))\r\n )\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentsNoMaintenanceContract = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .EqualsField(\"IsNoMaintenanceDesired\", true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsNoMaintenanceContract = result))\r\n )\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentsNoMaintenanceContract = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsInspectionDutiesAssigned\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsNoInspectionDutyAssigned = result))\r\n )\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentsNoInspectionDutyAssigned = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"HasInspectionDutyUnterminated\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsInspectionDutyUnterminated = result))\r\n )\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentsInspectionDutyUnterminated = result))\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onImageUpload(event): void {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.building.Identity))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(img.Identity))\r\n .Raw()\r\n .ToUrlString(false);\r\n return img;\r\n })\r\n )\r\n )\r\n .subscribe((res) => {\r\n this.images = res;\r\n this.imgIdx = this.images.length - 1;\r\n this.imageUploadService.resetCurrentImageUploadModel();\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n this.imageUploadModel.entityType = \"Building\";\r\n })\r\n );\r\n }\r\n\r\n onAddFile(file: FileItem): void {\r\n this.imageUploadModel.file.push(file);\r\n }\r\n\r\n nextImg(): void {\r\n this.imgIdx++;\r\n if (this.imgIdx === this.images.length) {\r\n this.imgIdx = 0;\r\n }\r\n }\r\n\r\n prevImg(): void {\r\n this.imgIdx--;\r\n if (this.imgIdx === -1) {\r\n this.imgIdx = this.images.length - 1;\r\n }\r\n }\r\n\r\n async deleteImg(): Promise {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"BuildingDetail._deleteImage_modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"BuildingDetail._deleteImage_modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"BuildingDetail._deleteImage_modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"BuildingDetail._deleteImage_modal_cancel\");\r\n\r\n modalRef.result\r\n .then(async (val) => {\r\n this.images[this.imgIdx].Identity;\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.odataCoreService.Image.Delete().Key(Guid.parse(this.images[this.imgIdx].Identity)).Exec();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"BuildingDetail._deleteImage_success\"));\r\n // reload images after delete\r\n let res = await this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.building.Identity))\r\n .Expand((x) => {\r\n x.Expand(\"Images\");\r\n })\r\n .Exec()\r\n .then((x) => x.value);\r\n let res2 = res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(img.Identity))\r\n .Raw()\r\n .ToUrlString(false);\r\n return img;\r\n });\r\n this.images = res2;\r\n // nav to next image after the deleted one\r\n this.prevImg();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n async sortImg(): Promise {\r\n if (this.images.length == 2) {\r\n await this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(this.images[this.imgIdx].Identity))\r\n .Actions()\r\n .SortInOperationsOnImageInPropertyCore()\r\n .Parameters(Guid.createEmpty().toString())\r\n .Execute();\r\n await this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(this.images[this.imgIdx].Identity))\r\n .Actions()\r\n .SortInOperationsOnImageInPropertyCore()\r\n .Parameters(Guid.createEmpty().toString())\r\n .Execute();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"BuildingDetail._sortImage_success\"));\r\n // reload images after sort\r\n let res = await this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.building.Identity))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Exec()\r\n .then((x) => x.value);\r\n let res2 = res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n });\r\n this.images = res2;\r\n // nav to first image\r\n this.imgIdx = 0;\r\n } else {\r\n await this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(this.images[this.imgIdx].Identity))\r\n .Actions()\r\n .SortInOperationsOnImageInPropertyCore()\r\n .Parameters(Guid.createEmpty().toString())\r\n .Execute();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"BuildingDetail._sortImage_success\"));\r\n // reload images after sort\r\n let res = await this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.building.Identity))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Exec()\r\n .then((x) => x.value);\r\n let res2 = res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n });\r\n this.images = res2;\r\n // nav to first image\r\n this.imgIdx = 0;\r\n }\r\n }\r\n\r\n showImg(): void {\r\n this.popupService.openImagePreviewModal(this.images[this.imgIdx].DownloadToken);\r\n }\r\n\r\n equipmentWizard(): void {\r\n this.router.navigate([\"building\", \"wizard\", this.building.Identity, \"equipment\"]);\r\n }\r\n\r\n usageTypeWizard(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"edit\", \"usages\", this.building.Address.RegionInfo.Id],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n goToEquipmentNoMaintenance(): void {\r\n this.router.navigate(\r\n [\r\n \"building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n },\r\n },\r\n ],\r\n {\r\n queryParams: {\r\n filter: InstallEquipmentKpiFilter.NoMaintenanceContract.toString(),\r\n },\r\n queryParamsHandling: \"merge\",\r\n }\r\n );\r\n }\r\n\r\n goToEquipmentNoInspectionDuties(): void {\r\n this.router.navigate(\r\n [\r\n \"building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n },\r\n },\r\n ],\r\n {\r\n queryParams: {\r\n filter: InstallEquipmentKpiFilter.NoInspectionDutySelected.toString(),\r\n },\r\n queryParamsHandling: \"merge\",\r\n }\r\n );\r\n }\r\n\r\n goToEquipmentNotScheduledInspectionDuties(): void {\r\n this.router.navigate(\r\n [\r\n \"building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n },\r\n },\r\n ],\r\n {\r\n queryParams: {\r\n filter: InstallEquipmentKpiFilter.NoInspectionDutyTerminated.toString(),\r\n },\r\n queryParamsHandling: \"merge\",\r\n }\r\n );\r\n }\r\n\r\n goToTodoInspections(): void {\r\n this.router.navigate([\r\n \"building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\r\n \"building\",\r\n \"view\",\r\n {\r\n outlets: {\r\n tab: [\r\n \"incident\",\r\n {\r\n outlets: {\r\n incidentstyle: [\"list\", { tab: [\"todoFuture\"] }],\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n goToOverdueInspections(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\r\n \"building\",\r\n \"view\",\r\n {\r\n outlets: {\r\n tab: [\r\n \"incident\",\r\n {\r\n outlets: { incidentstyle: [\"list\", { tab: [\"overdue\"] }] },\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n goToDefectInspections(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"defect\"] } }],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n goToDocuments(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"document\", { outlets: { tab: [\"building-equipment\"] } }],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n edit(): void {\r\n this.router.navigate([\"/building\", \"wizard\", this.building.Identity]);\r\n }\r\n\r\n editBuildingUsage(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"edit\", \"usages\", this.building.Address.RegionInfo.Id],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n editRooms(): void {\r\n this.router.navigate([\"/building\", this.building.Identity, { outlets: { left: [\"room-list\"] } }]);\r\n }\r\n\r\n editFloors(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"edit\", \"floors\"],\r\n },\r\n },\r\n ]);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-building-usage',\r\n templateUrl: './building-usage.component.html',\r\n styleUrls: ['./building-usage.component.scss']\r\n})\r\nexport class BuildingUsageComponent implements OnInit {\r\n\r\n public isEdit: boolean;\r\n\r\n @Input()\r\n building: PropertyCore.Building;\r\n\r\n constructor(\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n editBuildingUsage(): void {\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['list'], right: ['building', 'edit', 'usages', this.building.Address.RegionInfo.Id] } }]);\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-building-document-overview',\r\n templateUrl: './building-document-overview.component.html',\r\n styleUrls: ['./building-document-overview.component.scss']\r\n})\r\nexport class BuildingDocumentOverviewComponent implements OnInit, OnDestroy {\r\n\r\n building: PropertyCore.Building;\r\n currentTab: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['incident'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n\r\n this.subscriptions.add(this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd), map(() => this.route))\r\n .subscribe((event) => {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['incident'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n }));\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n })).subscribe(building => this.building = building));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onNavChange(changeEvent: NgbNavChangeEvent) {\r\n this.router.navigate([{ outlets: { tab: [changeEvent.nextId] } }], { relativeTo: this.route });\r\n }\r\n\r\n}\r\n","import { NavigatorService } from '../../core/shared/navigator.service';\r\nimport { DocumentType } from '../wizard/document/document-wizard-model';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { Observable, Subscription, from } from 'rxjs';\r\nimport { flatMap, switchMap, tap, map } from 'rxjs/operators';\r\n\r\nimport { IncidentCreateOuputData } from '../../core/components/incident/incident-create-output-data';\r\nimport { Incident } from '../../core/model/incident';\r\nimport { IncidentState } from '../building-incident/incident-state.service';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-building-incident-detail',\r\n templateUrl: './building-incident-detail.component.html',\r\n styleUrls: ['./building-incident-detail.component.scss']\r\n})\r\nexport class BuildingIncidentDetailComponent implements OnInit, OnDestroy {\r\n incident$: Observable;\r\n defects$: Observable;\r\n\r\n buildingUT: string;\r\n incidentUT: string;\r\n showClose: boolean;\r\n isIncidentView: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: IncidentState,\r\n private navigator: NavigatorService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.incident$ = this.route.paramMap.pipe(\r\n tap((params: ParamMap) => this.incidentUT = params.get(('id'))),\r\n switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Event.Query()\r\n .Expand(x => {\r\n x.Expand(\"Response\"),\r\n x.Expand(\"Schedule\", xa => {\r\n xa.Expand(\"InspectionDuty\", xaa => {\r\n xaa.Select(\"Id\"),\r\n xaa.Expand(\"OperatorTask\", xaaa => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\")\r\n })\r\n }),\r\n xa.Expand(\"MaintenanceContract\", xab => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", xabb => {\r\n xabb.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"Building\", xb => {\r\n xb.Select(\"Name\"),\r\n xb.Select(\"Id\"),\r\n xb.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Equipment\", xc => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\"),\r\n xc.Expand(\"Room\", xcc => {\r\n xcc.Select(\"Name\"),\r\n xcc.Select(\"Id\"),\r\n xcc.Select(\"Identity\")\r\n xcc.Expand(\"Floor\", xccc => {\r\n xccc.Select(\"Id\"),\r\n xccc.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"ServiceProvider\", xd => {\r\n xd.Select(\"Name\"),\r\n xd.Select(\"Id\"),\r\n xd.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Module\", xe => {\r\n xe.Select(\"Name\"),\r\n xe.Select(\"Id\"),\r\n xe.Select(\"Identity\"),\r\n xe.Expand(\"ModuleType\", xee => {\r\n xee.Select(\"Code\"),\r\n xee.Select(\"Id\"),\r\n xee.Select(\"Name\")\r\n })\r\n })\r\n x.Expand(\"KpiMarker\")\r\n })\r\n .Filter(x => x\r\n .EqualsField(\"Id\", (+params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Incident(), res[0])\r\n }))\r\n }));\r\n this.defects$ = this.incident$.pipe(flatMap(inc => \r\n from(this.odataCoreService.Event.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Parent\", \"Identity\"), Guid.parse(inc.Identity)))\r\n .Expand(x => {\r\n x.Expand(\"Parent\", y => {\r\n y.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Schedule\"),\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\"),\r\n y.Select(\"CustomId\")\r\n }),\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Incident(), i);\r\n })))\r\n ));\r\n\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe((params: ParamMap) => this.buildingUT = params.get('id')));\r\n\r\n this.showClose = this.route.snapshot.data.close;\r\n\r\n try {\r\n this.isIncidentView = this.route.snapshot.parent.firstChild.firstChild.firstChild.url[0].path === 'incident';\r\n } finally {\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(): void {\r\n if (this.route.parent.firstChild.snapshot.url[0].path === 'building') {\r\n const buildingTab = this.route.parent.firstChild.firstChild.firstChild.snapshot.url[0].path;\r\n if (this.route.parent.firstChild.firstChild.firstChild.firstChild) {\r\n const incidentStyle = this.route.parent.firstChild.firstChild.firstChild.firstChild.snapshot.url[0].path;\r\n\r\n\r\n if (this.route.parent.firstChild.firstChild.firstChild.firstChild.snapshot.params.date) {\r\n this.router.navigate(['/building', this.buildingUT, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', { outlets: { tab: [buildingTab, { outlets: { 'incidentstyle': [incidentStyle, { date: this.route.parent.firstChild.firstChild.firstChild.snapshot.params.date }] } }] } }]\r\n }\r\n }]);\r\n } else if (this.route.parent.firstChild.firstChild.firstChild.firstChild.snapshot.params.tab) {\r\n const incidentTab = this.route.parent.firstChild.firstChild.firstChild.firstChild.snapshot.params.tab;\r\n if (this.route.parent.firstChild.firstChild.firstChild.firstChild.snapshot.params.subtab) {\r\n const incidentSubTab = this.route.parent.firstChild.firstChild.firstChild.firstChild.snapshot.params.subtab;\r\n this.router.navigate(['/building', this.buildingUT, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', {\r\n outlets: {\r\n tab: [buildingTab, {\r\n outlets: {\r\n 'incidentstyle': [incidentStyle, {\r\n tab: [incidentTab],\r\n subtab: [incidentSubTab]\r\n }]\r\n }\r\n }]\r\n }\r\n }]\r\n }\r\n }]);\r\n } else {\r\n this.router.navigate(['/building', this.buildingUT, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', { outlets: { tab: [buildingTab, { outlets: { 'incidentstyle': [incidentStyle, { tab: [incidentTab] }] } }] } }]\r\n }\r\n }]);\r\n }\r\n } else {\r\n this.router.navigate(['/building', this.buildingUT, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', { outlets: { tab: [buildingTab, { outlets: { 'incidentstyle': [incidentStyle] } }] } }]\r\n }\r\n }]);\r\n }\r\n } else {\r\n this.router.navigate(['/building', this.buildingUT, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', { outlets: { tab: [buildingTab] } }]\r\n }\r\n }]);\r\n }\r\n } else {\r\n console.log('could not find a back-route from incident-detail panel!');\r\n }\r\n }\r\n\r\n\r\n handleCreateRequest(data: IncidentCreateOuputData): void {\r\n this.router.navigate(['building', 'wizard', data.buildingUT, 'defect', data.incidentId]);\r\n }\r\n\r\n handleSetProcessedRequest(): void {\r\n this.state.notify(IncidentState.ACTION_CHANGE_INCIDENT);\r\n }\r\n\r\n handleRefreshRequest(): void {\r\n this.state.notify(IncidentState.ACTION_CHANGE_INCIDENT);\r\n }\r\n\r\n handlePostSaveRequest(): void {\r\n this.navigator.provideBackUrl(this.router.routerState.snapshot.url, IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT);\r\n this.router.navigate(['building', 'wizard', this.buildingUT, 'document', 'building'], {\r\n queryParams: {\r\n type: DocumentType.INCIDENT,\r\n incidentId: this.incidentUT,\r\n returnUrl: true\r\n }, queryParamsHandling: 'merge'\r\n });\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { map, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { NavigatorService } from '../../core/shared/navigator.service';\r\nimport { IncidentDetailLinkOutputData } from '../../core/components/incident/incident-detail-link-output-data';\r\nimport { IncidentListInputData } from '../../core/components/incident/incident-list-input-data';\r\nimport { IncidentType } from '../../core/components/incident/incident-type';\r\nimport { IncidentView } from '../../core/components/incident/incident-view';\r\nimport { IncidentState } from '../building-incident/incident-state.service';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Incident } from 'app/core/model/incident';\r\n\r\n\r\n@Component({\r\n selector: 'app-building-incident-list',\r\n templateUrl: './building-incident-list.component.html',\r\n styleUrls: ['./building-incident-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BuildingIncidentListComponent implements OnInit, OnDestroy {\r\n\r\n currentViewTab: IncidentView;\r\n\r\n currentTypeTab: IncidentType = IncidentType.NONE;\r\n\r\n inputData: IncidentListInputData = new IncidentListInputData();\r\n\r\n buildingId: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: IncidentState,\r\n private navigator: NavigatorService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.inputData.allowedViews = [IncidentView.ALL, IncidentView.TODOFUTURE, IncidentView.DONE, IncidentView.OVERDUE];\r\n\r\n this.inputData.variableScrollHeight = '431';\r\n\r\n\r\n this.inputData.allIncidents$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return this.route.root.firstChild.paramMap\r\n .pipe(tap(params => (this.buildingId = params.get('id'))), switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.Event\r\n .Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get('id'))))\r\n .Select(\"Identity\", \"Id\", \"Type\", \"Guidelines\", \"DueDate\")\r\n .Expand(x => {\r\n x.Expand(\"Schedule\", y => {\r\n y.Select(\"CycleUnit\");\r\n y.Select(\"Cycle\");\r\n y.Expand(\"InspectionDuty\", y => {\r\n y.Select(\"OperatorTask\");\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Guidelines\");\r\n z.Select(\"Qualification\");\r\n });\r\n });\r\n y.Expand(\"MaintenanceContract\", z => {\r\n z.Select(\"StartDate\");\r\n z.Expand(\"ServiceProvider\", za => {\r\n za.Select(\"Name\");\r\n })\r\n });\r\n });\r\n x.Expand(\"Documents\", y => {\r\n y.Select(\"DocumentType\"),\r\n y.Expand(\"DocumentType\", z => {\r\n z.Select(\"Id\"),\r\n z.Select(\"Name\")\r\n })\r\n });\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n y.Select(\"CustomId\");\r\n });\r\n x.Expand(\"ServiceProvider\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"KpiMarker\");\r\n })\r\n .OrderBy(\"DueDate\", \"asc\")\r\n .Exec()\r\n .then(x =>\r\n x.value\r\n ))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Incident(), i)\r\n })))),\r\n tap(inc => {\r\n inc.sort((a, b) => {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n }));\r\n }));\r\n\r\n this.inputData.currentView$ = this.route.paramMap\r\n .pipe(map(p => IncidentView.getIncidentView(p.get('tab'))), tap(val => (this.currentViewTab = val)));\r\n\r\n this.inputData.currentType$ = this.route.paramMap\r\n .pipe(map(p => IncidentType.getIncidentType(p.get('subtab'))), tap(val => (this.currentTypeTab = val)));\r\n\r\n this.inputData.currentIncidentId$ = this.route.parent.parent.parent.parent.children[1].paramMap\r\n .pipe(map(params => +params.get('id')));\r\n\r\n if (this.navigator.getNavigationAction() === IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT) {\r\n this.inputData.navigateToFirstListItem = true;\r\n }\r\n this.navigator.finishNavigation();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleViewTabChangeRequest($event: string) {\r\n this.currentViewTab = IncidentView.getIncidentView($event);\r\n this.router.navigate([{ tab: [this.currentViewTab] }], { relativeTo: this.route });\r\n }\r\n\r\n handleTypeTabChangeRequest($event: string) {\r\n this.currentTypeTab = IncidentType.getIncidentType($event);\r\n this.router.navigate([{ tab: [this.currentViewTab], subtab: [this.currentTypeTab] }], { relativeTo: this.route });\r\n }\r\n\r\n handleDetailPageRequest($event: IncidentDetailLinkOutputData) {\r\n const id = $event.id;\r\n const subTab = $event.type;\r\n\r\n if (subTab) {\r\n this.router.navigate([\r\n 'building',\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\r\n 'building', 'view',\r\n {\r\n outlets: {\r\n tab: ['incident', {\r\n outlets: {\r\n 'incidentstyle': ['list', {\r\n tab: [this.currentViewTab],\r\n subtab: [subTab]\r\n }]\r\n }\r\n }]\r\n }\r\n }\r\n ],\r\n right: ['incident', id]\r\n }\r\n }\r\n ]);\r\n } else {\r\n this.router.navigate([\r\n 'building',\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: ['building', 'view', { outlets: { tab: ['incident', { outlets: { 'incidentstyle': ['list', { tab: [this.currentViewTab] }] } }] } }],\r\n right: ['incident', id]\r\n }\r\n }\r\n ]);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class IncidentState {\r\n\r\n public static readonly NAVIGATION_ACTION_NEXT_INCIDENT = 'nav_action_next_incident';\r\n\r\n public static readonly ACTION_CHANGE_INCIDENT = 'action_change_incident';\r\n\r\n private subject: Subject = new Subject();\r\n\r\n constructor() {}\r\n\r\n notify(notificationtext: string) {\r\n this.subject.next(notificationtext);\r\n }\r\n\r\n registerForNotification(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { BuildingListInputData } from './../../core/components/building/building-list-input-data';\r\nimport { from } from 'rxjs';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Utils } from '../../core/tools/utils';\r\n\r\n@Component({\r\n selector: 'app-building-list',\r\n templateUrl: './building-list.component.html',\r\n styleUrls: ['./building-list.component.scss']\r\n})\r\nexport class BuildingListComponent implements OnInit {\r\n\r\n inputData: BuildingListInputData = new BuildingListInputData();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.inputData.translatedListTitle = 'BuildingList._h1_buildingOverview';\r\n this.inputData.currentBuildingUT$ = this.route.parent.paramMap.pipe(map( (params: ParamMap) => params.get('id')));\r\n this.inputData.buildings$ = from(this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n this.inputData.scrollStyle = { 'max-height': 'calc(100vh - 500px)' };\r\n }\r\n\r\n handleDetailPageRequest(building: PropertyCore.Building) {\r\n this.router.navigate(['/building', building.Identity, { outlets: { left: ['list'], right: ['building']}}]);\r\n }\r\n\r\n handleBuildingWizardRequest() {\r\n this.router.navigate(['building', 'wizard']);\r\n }\r\n\r\n handleMapMarkerRequest(buildingUT: string) {\r\n this.router.navigate(['/building', buildingUT, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, NavigationExtras, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { AuthService } from './../../core/auth/auth.service';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n@Component({\r\n selector: 'app-building-overview',\r\n templateUrl: './building-overview.component.html',\r\n styleUrls: ['./building-overview.component.scss']\r\n})\r\nexport class BuildingOverviewComponent implements OnInit, OnDestroy {\r\n\r\n showMenu: boolean;\r\n building: PropertyCore.Building;\r\n currentTab: string;\r\n isDefect: boolean;\r\n isIncident: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n\r\n this.subscriptions.add(this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd), map(() => this.route))\r\n .subscribe((event) => {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n }));\r\n\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n })).subscribe(building => this.building = building));\r\n // Menu is only viewable when ist on the right side\r\n if (this.route.parent.outlet === 'left') {\r\n this.showMenu = false;\r\n } else {\r\n this.showMenu = true;\r\n }\r\n\r\n // 'Defects of' BuildingName or 'eqipments of' BuildingName\r\n if (this.route.snapshot.parent.firstChild.firstChild) {\r\n if (this.route.snapshot.parent.firstChild.firstChild.url[0].path === 'defect') {\r\n this.isDefect = true;\r\n this.isIncident = false;\r\n } else if (this.route.snapshot.parent.firstChild.firstChild.url[0].path === 'incident') {\r\n this.isIncident = true;\r\n this.isDefect = false;\r\n }\r\n } else {\r\n this.isDefect = false;\r\n this.isIncident = false\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n getShowMenu() {\r\n if (this.showMenu) {\r\n return 'block';\r\n } else {\r\n return 'none';\r\n }\r\n }\r\n showDocumentsIcons(): boolean {\r\n return this.route.parent.outlet === 'right';\r\n }\r\n\r\n onNavChange(changeEvent: NgbNavChangeEvent) {\r\n const navigationExtras: NavigationExtras = { relativeTo: this.route };\r\n this.currentTab = changeEvent.nextId;\r\n\r\n if (this.route.parent.outlet === 'left') {\r\n this.router.navigate(['/building', this.building.Identity, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', { outlets: { tab: [changeEvent.nextId] } }]\r\n }\r\n }], navigationExtras);\r\n } else {\r\n this.router.navigate([{ outlets: { tab: [changeEvent.nextId] } }], navigationExtras);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { combineLatest, Subscription, from } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { ConfirmationModal } from './../../core/popup/confirmation.modal';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-building-room-detail',\r\n templateUrl: './building-room-detail.component.html',\r\n styleUrls: ['./building-room-detail.component.scss']\r\n})\r\nexport class BuildingRoomDetailComponent implements OnInit, OnDestroy {\r\n\r\n buildingUT: string;\r\n\r\n room: PropertyCore.Room;\r\n\r\n editMode: boolean;\r\n editRoom: PropertyCore.Room;\r\n floors: PropertyCore.Floor[];\r\n formSubmitted: boolean;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(combineLatest(\r\n this.route.root.firstChild.paramMap.pipe(map(params => params.get('id'))),\r\n this.route.paramMap.pipe(map(params => params.get('id'))))\r\n .pipe(switchMap(([buildingUT, buildingRoomUT]) => {\r\n this.buildingUT = buildingUT;\r\n return from(this.odataCoreService.Room.Query()\r\n .Expand(x => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter(x => x\r\n .EqualsField(\"Identity\", Guid.parse(buildingRoomUT)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n })).subscribe(room => {\r\n this.room = room;\r\n this.editMode = false;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n async edit(): Promise {\r\n this.editMode = true;\r\n this.editRoom = Object.assign({}, this.room);\r\n\r\n if (!this.floors) {\r\n let res = await this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingUT))\r\n .Expand(x => {\r\n x.Expand(\"Floors\");\r\n })\r\n .Exec().then(x => x.value)\r\n this.floors = res[0].Floors.map(f => Utils.mapAllJSONDatesToDates(f)).sort((a, b) => a.Order - b.Order)\r\n }\r\n }\r\n\r\n close(isDirty: boolean = true):void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingRoomDetail._modal_message');\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingRoomDetail._modal_title');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingRoomDetail._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingRoomDetail._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n if (this.editMode) {\r\n this.editMode = false;\r\n } else {\r\n this.router.navigate(['/building', this.buildingUT, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n if (this.editMode) {\r\n this.editMode = false;\r\n } else {\r\n this.router.navigate(['/building', this.buildingUT, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n }\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n await this.odataCoreService.Room.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Room())\r\n .Key(Guid.parse(this.editRoom.Identity))\r\n .ValueProperty(\"Name\", this.editRoom.Name)\r\n .Exec()\r\n await this.odataCoreService.Room.Link()\r\n .Key(Guid.parse(this.editRoom.Identity))\r\n .Value(\"Floor\", this.odataCoreService.Floor.Get().Key(this.editRoom.Floor.Id).Bind())\r\n .Post()\r\n this.room = Object.assign({}, this.editRoom);\r\n this.editMode = false;\r\n\r\n // hard reload of both sides\r\n const url = this.router.createUrlTree(['/building', this.buildingUT, { outlets: { left: ['room-list'], right: ['room', this.editRoom.Identity] } }]).toString();\r\n this.router.navigateByUrl('/skipThisPage', { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n \r\n \r\n }\r\n\r\n async delete(): Promise {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingRoomDetail._modal_message_delete');\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingRoomDetail._modal_title');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingRoomDetail._button_delete');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingRoomDetail._button_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n if (this.editRoom.Statistics.EquipmentCount > 0 || this.editRoom.Statistics.ModuleCount > 0) {\r\n this.toasterService.pop('warning', '', this.translateService.instant('BuildingRoomDetail._delete_error_info', { ieCount: this.editRoom.Statistics.EquipmentCount, imCount: this.editRoom.Statistics.ModuleCount }));\r\n } else {\r\n this.odataCoreService.Room.Delete()\r\n .Key(Guid.parse(this.editRoom.Identity))\r\n .Exec();\r\n // hard reload of left side and loading another room\r\n const url = this.router.createUrlTree(['/building', this.buildingUT, { outlets: { left: ['room-list'], right: null } }]).toString();\r\n this.router.navigateByUrl('/skipThisPage', { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n compareId(val1: {Id: number}, val2: {Id: number}): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { combineLatest, Subscription, from } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-building-room-list',\r\n templateUrl: './building-room-list.component.html',\r\n styleUrls: ['./building-room-list.component.scss']\r\n})\r\nexport class BuildingRoomListComponent implements OnInit, OnDestroy {\r\n\r\n building: PropertyCore.Building;\r\n\r\n rooms: PropertyCore.Room[];\r\n floors: PropertyCore.Floor[];\r\n\r\n searchFilter: string = '';\r\n floorFilter: string = '';\r\n\r\n newRoomName: string;\r\n newRoomFloor: PropertyCore.Floor;\r\n buildingIdentity: string;\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.buildingIdentity = params.get('id');\r\n return combineLatest(\r\n from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingIdentity))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n ,\r\n from(this.odataCoreService.Room.Query()\r\n .Expand(x => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.buildingIdentity)))\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value ))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n ,\r\n from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingIdentity))\r\n .Expand(x => {\r\n x.Expand(\"Floors\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].Floors.map(f => Utils.mapAllJSONDatesToDates(f)).sort((a, b) => a.Order - b.Order))));\r\n }))\r\n .subscribe(([building, rooms, floors]) => {\r\n this.building = building;\r\n this.rooms = rooms;\r\n this.floors = floors;\r\n\r\n // navigate to first room\r\n if (this.rooms && this.rooms.length && (!this.route.snapshot.parent || !this.route.snapshot.parent.children || this.route.snapshot.parent.children.length < 2 || !this.route.snapshot.parent.children[1].url || !this.route.snapshot.parent.children[1].url.length || this.route.snapshot.parent.children[1].url[0].path !== 'room')) {\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['room-list'], right: ['room', this.rooms[0].Identity] } }]);\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n async openNewRoomPopup(content): Promise {\r\n this.modalService.open(content).result.then(async result => {\r\n // on new room save click\r\n let res = await this.odataCoreService.Room.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Room())\r\n .ValueProperty(\"Name\", this.newRoomName)\r\n .ValuePropertyBinding(\"Floor\", this.odataCoreService.Floor.Get().Key(this.newRoomFloor.Id).Bind())\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.building.Identity)).Bind())\r\n .Exec();\r\n let res2 = await this.odataCoreService.Room.Query()\r\n .Expand(x => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.buildingIdentity)))\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value);\r\n this.rooms = res2.map(i => Utils.mapAllJSONDatesToDates(i))\r\n // select new room\r\n const newRoomUT = this.rooms.filter(r => r.Id === res);\r\n if (newRoomUT && newRoomUT.length) {\r\n this.router.navigate(['/building', this.building.Identity, { outlets: { left: ['room-list'], right: ['room', newRoomUT[0].Identity] } }]);\r\n }\r\n this.newRoomName = null;\r\n this.newRoomFloor = null;\r\n }).catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\nimport { AuthGuard } from \"./../core/auth/auth-guard.service\";\r\nimport { CoreModule } from \"./../core/core.module\";\r\nimport { GlobalService } from \"./../core/shared/global.service\";\r\nimport { BuildingDetailEditFloorsComponent } from \"./building-detail/building-detail-edit-floors/building-detail-edit-floors.component\";\r\nimport { BuildingDetailEditUsagesComponent } from \"./building-detail/building-detail-edit-usages/building-detail-edit-usages.component\";\r\nimport { BuildingDetailEditComponent } from \"./building-detail/building-detail-edit/building-detail-edit.component\";\r\nimport { BuildingDetailComponent } from \"./building-detail/building-detail.component\";\r\nimport { BuildingUsageComponent } from \"./building-detail/building-usage.component\";\r\nimport { BuildingDocumentOverviewComponent } from \"./building-document-overview/building-document-overview.component\";\r\nimport { BuildingIncidentDetailComponent } from \"./building-incident-detail/building-incident-detail.component\";\r\nimport { BuildingIncidentListComponent } from \"./building-incident-list/building-incident-list.component\";\r\nimport { IncidentState } from \"./building-incident/incident-state.service\";\r\nimport { BuildingListComponent } from \"./building-list/building-list.component\";\r\nimport { BuildingOverviewComponent } from \"./building-overview/building-overview.component\";\r\nimport { BuildingRoomDetailComponent } from \"./building-room-detail/building-room-detail.component\";\r\nimport { BuildingRoomListComponent } from \"./building-room-list/building-room-list.component\";\r\nimport { BuildingComponent } from \"./building/building.component\";\r\nimport { DefectListComponent } from \"./defect-list/defect-list.component\";\r\nimport { DocumentBuildingEquipmentComponent } from \"./document-building-equipment/document-building-equipment.component\";\r\nimport { DocumentIncidentComponent } from \"./document-incident/document-incident.component\";\r\nimport { EquipmentDetailEditInspectionDutiesComponent } from \"./equipment-detail/equipment-detail-edit-inspection-duties/equipment-detail-edit-inspection-duties.component\";\r\nimport { EquipmentDetailEditComponent } from \"./equipment-detail/equipment-detail-edit/equipment-detail-edit.component\";\r\nimport { EquipmentDetailComponent } from \"./equipment-detail/equipment-detail.component\";\r\nimport { EquipmentFeatureEditComponent } from \"./equipment-feature/equipment-feature-edit/equipment-feature-edit.component\";\r\nimport { EquipmentFeatureComponent } from \"./equipment-feature/equipment-feature.component\";\r\nimport { EquipmentHistoryComponent } from \"./equipment-history/equipment-history.component\";\r\nimport { EquipmentIncidentDetailComponent } from \"./equipment-incident-detail/equipment-incident-detail.component\";\r\nimport { EquipmentIncidentListComponent } from \"./equipment-incident-list/equipment-incident-list.component\";\r\nimport { EquipmentListComponent } from \"./equipment-list/equipment-list.component\";\r\nimport { EquipmentModuleComponent } from \"./equipment-module/equipment-module.component\";\r\nimport { EquipmentOverviewComponent } from \"./equipment-overview/equipment-overview.component\";\r\nimport { IncidentCalendarComponent } from \"./incident-calendar/incident-calendar.component\";\r\nimport { IncidentOverviewComponent } from \"./incident-overview/incident-overview.component\";\r\nimport { InstallEquipmentService } from \"./installEquipment.service\";\r\nimport { ModuleDetailEditComponent } from \"./module-detail/module-detail-edit/module-detail-edit.component\";\r\nimport { ModuleDetailComponent } from \"./module-detail/module-detail.component\";\r\nimport { ModuleFeatureEditComponent } from \"./module-feature/module-feature-edit/module-feature-edit.component\";\r\nimport { ModuleFeatureComponent } from \"./module-feature/module-feature.component\";\r\nimport { ModuleOverviewComponent } from \"./module-overview/module-overview.component\";\r\nimport { RouterThroughputComponent } from \"./router-throughput/router.throughput.component\";\r\nimport { StartComponent } from \"./start/start.component\";\r\nimport { BuildingWizardDataComponent } from \"./wizard/building/building-wizard-data/building-wizard-data.component\";\r\nimport { BuildingWizardEquipmentComponent } from \"./wizard/building/building-wizard-equipment/building-wizard-equipment.component\";\r\nimport { BuildingWizardLocationComponent } from \"./wizard/building/building-wizard-location/building-wizard-location.component\";\r\nimport { BuildingWizardUsageComponent } from \"./wizard/building/building-wizard-usage/building-wizard-usage.component\";\r\nimport { BuildingWizardProgressComponent } from \"./wizard/building/building-wizard-progress/building-wizard-progress.component\";\r\nimport { BuildingWizardComponent } from \"./wizard/building/building-wizard.component\";\r\nimport { BuildingWizardService } from \"./wizard/building/building-wizard.service\";\r\nimport { DefectWizardDataComponent } from \"./wizard/defect/defect-wizard-data/defect-wizard-data.component\";\r\nimport { DefectWizardDocumentComponent } from \"./wizard/defect/defect-wizard-document/defect-wizard-document.component\";\r\nimport { DefectWizardEquipmentComponent } from \"./wizard/defect/defect-wizard-equipment/defect-wizard-equipment.component\";\r\nimport { DefectWizardProgressComponent } from \"./wizard/defect/defect-wizard-progress/defect-wizard-progress.component\";\r\nimport { DefectWizardComponent } from \"./wizard/defect/defect-wizard.component\";\r\nimport { DefectWizardService } from \"./wizard/defect/defect-wizard.service\";\r\nimport { DocumentWizardDataComponent } from \"./wizard/document/document-wizard-data/document-wizard-data.component\";\r\nimport { DocumentWizardEquipmentComponent } from \"./wizard/document/document-wizard-equipment/document-wizard-equipment.component\";\r\nimport { DocumentWizardIncidentDataComponent } from \"./wizard/document/document-wizard-incident-data/document-wizard-incident-data.component\";\r\nimport { DocumentWizardIncidentComponent } from \"./wizard/document/document-wizard-incident/document-wizard-incident.component\";\r\nimport { DocumentWizardProgressComponent } from \"./wizard/document/document-wizard-progress/document-wizard-progress.component\";\r\nimport { DocumentWizardTypeComponent } from \"./wizard/document/document-wizard-type/document-wizard-type.component\";\r\nimport { DocumentWizardComponent } from \"./wizard/document/document-wizard.component\";\r\nimport { DocumentWizardService } from \"./wizard/document/document-wizard.service\";\r\nimport { EquipmentWizardDataComponent } from \"./wizard/equipment/equipment-wizard-data/equipment-wizard-data.component\";\r\nimport { EquipmentWizardProgressComponent } from \"./wizard/equipment/equipment-wizard-progress/equipment-wizard-progress.component\";\r\nimport { EquipmentWizardTechnicalComponent } from \"./wizard/equipment/equipment-wizard-technical/equipment-wizard-technical.component\";\r\nimport { EquipmentWizardTypeComponent } from \"./wizard/equipment/equipment-wizard-type/equipment-wizard-type.component\";\r\nimport { EquipmentWizardComponent } from \"./wizard/equipment/equipment-wizard.component\";\r\nimport { EquipmentWizardService } from \"./wizard/equipment/equipment-wizard.service\";\r\nimport { IncidentWizardContactComponent } from \"./wizard/incident/incident-wizard-contact/incident-wizard-contact.component\";\r\nimport { IncidentWizardDataComponent } from \"./wizard/incident/incident-wizard-data/incident-wizard-data.component\";\r\nimport { IncidentWizardEquipmentComponent } from \"./wizard/incident/incident-wizard-equipment/incident-wizard-equipment.component\";\r\nimport { IncidentWizardProgressComponent } from \"./wizard/incident/incident-wizard-progress/incident-wizard-progress.component\";\r\nimport { IncidentWizardComponent } from \"./wizard/incident/incident-wizard.component\";\r\nimport { IncidentWizardService } from \"./wizard/incident/incident-wizard.service\";\r\nimport { ModuleWizardDataComponent } from \"./wizard/module/module-wizard-data/module-wizard-data.component\";\r\nimport { ModuleWizardProgressComponent } from \"./wizard/module/module-wizard-progress/module-wizard-progress.component\";\r\nimport { ModuleWizardTechnicalComponent } from \"./wizard/module/module-wizard-technical/module-wizard-technical.component\";\r\nimport { ModuleWizardTypeComponent } from \"./wizard/module/module-wizard-type/module-wizard-type.component\";\r\nimport { ModuleWizardComponent } from \"./wizard/module/module-wizard.component\";\r\nimport { ModuleWizardService } from \"./wizard/module/module-wizard.service\";\r\nimport { ImageUploadService } from \"../core/components/upload/image-upload-service\";\r\nimport { LoginService } from \"app/core/shared/login.service\";\r\nimport { InspectiondutyWizardComponent } from \"app/building/wizard/inspectionduty/inspectionduty-wizard.component\";\r\nimport { InspectiondutyWizardProgressComponent } from \"./wizard/inspectionduty/inspectionduty-wizard-progress/inspectionduty-wizard-progress.component\";\r\nimport { InspectiondutyWizardDataComponent } from \"./wizard/inspectionduty/inspectionduty-wizard-data/inspectionduty-wizard-data.component\";\r\nimport { InspectiondutyWizardService } from \"./wizard/inspectionduty/inspectionduty-wizard-service\";\r\nimport { InspectiondutyWizardOtherEquipmentsComponent } from \"./wizard/inspectionduty/inspectionduty-wizard-other-equipments/inspectionduty-wizard-other-equipments.component\";\r\n\r\nconst routes: Routes = [\r\n // browsing navigation routes\r\n {\r\n path: \"building\",\r\n component: StartComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: BuildingListComponent,\r\n },\r\n ],\r\n },\r\n // *************************\r\n // wizard navigation routes\r\n // *************************\r\n {\r\n path: \"building\",\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n {\r\n path: \"wizard\",\r\n children: [\r\n {\r\n path: \":id\",\r\n component: BuildingWizardComponent,\r\n data: { editMode: true },\r\n },\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: BuildingWizardComponent,\r\n },\r\n {\r\n path: \":id/equipment\",\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: EquipmentWizardComponent,\r\n data: { navigateBack: \"building\" },\r\n },\r\n {\r\n path: \":id\",\r\n component: EquipmentWizardComponent,\r\n data: { navigateBack: \"equipment\" },\r\n },\r\n {\r\n path: \":id/inspectionduty\",\r\n component: InspectiondutyWizardComponent,\r\n data: { navigateBack: \"equipment\" },\r\n },\r\n ],\r\n },\r\n {\r\n path: \":id/module\",\r\n children: [\r\n {\r\n path: \":id\",\r\n component: ModuleWizardComponent,\r\n data: { navigateBack: \"equipment\" },\r\n },\r\n ],\r\n },\r\n {\r\n path: \":id/incident\",\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: IncidentWizardComponent,\r\n data: { navigateBack: \"building\" },\r\n },\r\n {\r\n path: \":id\",\r\n component: IncidentWizardComponent,\r\n data: { navigateBack: \"building\" },\r\n },\r\n ],\r\n },\r\n {\r\n path: \":id/defect\",\r\n children: [\r\n {\r\n path: \":id\",\r\n component: DefectWizardComponent,\r\n data: { navigateBack: \"building\" },\r\n },\r\n {\r\n path: \":id/dashboard\",\r\n component: DefectWizardComponent,\r\n data: { navigateBack: \"dashboard-conformity-defect\" },\r\n },\r\n ],\r\n },\r\n {\r\n path: \":id/document\",\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: DocumentWizardComponent,\r\n },\r\n {\r\n path: \"dashboard\",\r\n component: DocumentWizardComponent,\r\n data: { navigateBack: \"dashboard\" },\r\n },\r\n {\r\n path: \"building\",\r\n component: DocumentWizardComponent,\r\n data: { navigateBack: \"building\" },\r\n },\r\n ],\r\n },\r\n {\r\n path: \":id/inspectionduty\",\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: InspectiondutyWizardComponent,\r\n },\r\n {\r\n path: \"dashboard\",\r\n component: InspectiondutyWizardComponent,\r\n data: { navigateBack: \"dashboard\" },\r\n },\r\n {\r\n path: \"building\",\r\n component: InspectiondutyWizardComponent,\r\n data: { navigateBack: \"building\" },\r\n },\r\n {\r\n path: \"equipment\",\r\n component: InspectiondutyWizardComponent,\r\n data: { navigateBack: \"equipment\" },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"equipment\",\r\n children: [\r\n {\r\n path: \":id/inspectionduty\",\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: InspectiondutyWizardComponent,\r\n },\r\n {\r\n path: \"dashboard\",\r\n component: InspectiondutyWizardComponent,\r\n data: { navigateBack: \"dashboard\" },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n // *************************\r\n // detail navigation routes\r\n // *************************\r\n {\r\n path: \"building/:id\",\r\n component: BuildingComponent,\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n // 1 level page setup\r\n {\r\n outlet: \"left\",\r\n path: \"list\",\r\n component: BuildingListComponent,\r\n data: {\r\n animation: \"1-building-list\",\r\n },\r\n },\r\n // documents handling\r\n {\r\n outlet: \"right\",\r\n path: \"document\",\r\n component: BuildingDocumentOverviewComponent,\r\n data: {\r\n animation: \"1-building\",\r\n },\r\n children: [\r\n {\r\n path: \"incident\",\r\n component: DocumentIncidentComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"building-equipment\",\r\n component: DocumentBuildingEquipmentComponent,\r\n outlet: \"tab\",\r\n },\r\n ],\r\n },\r\n //building handling\r\n {\r\n outlet: \"right\",\r\n path: \"building\",\r\n component: RouterThroughputComponent,\r\n data: {\r\n animation: \"1-building\",\r\n },\r\n children: [\r\n // edit views\r\n {\r\n path: \"edit/floors\",\r\n component: BuildingDetailEditFloorsComponent,\r\n },\r\n {\r\n path: \"edit/usages/:regionId\",\r\n component: BuildingDetailEditUsagesComponent,\r\n },\r\n {\r\n path: \"edit\",\r\n component: BuildingDetailEditComponent,\r\n },\r\n // tabbed equipment views\r\n { path: \"\", redirectTo: \"view\", pathMatch: \"full\" },\r\n //{ path: 'overdue', redirectTo: '/building/:id/(left:list//right:building/view/(tab:incident/(incidentstyle:list;tab=overdue)))', pathMatch: 'full'},\r\n // { path: '', redirectTo: '/home/(catoutlet:cats//dogoutlet:dogs)', pathMatch: 'full' },\r\n {\r\n path: \"view\",\r\n component: BuildingOverviewComponent,\r\n children: [\r\n {\r\n path: \"details\",\r\n component: BuildingDetailComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"equipment\",\r\n component: EquipmentListComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"incident\",\r\n component: IncidentOverviewComponent,\r\n outlet: \"tab\",\r\n children: [\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"calendar\",\r\n component: IncidentCalendarComponent,\r\n data: {\r\n location: \"building\",\r\n },\r\n },\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"list\",\r\n component: BuildingIncidentListComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: \"defect\",\r\n component: DefectListComponent,\r\n outlet: \"tab\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n // 2 level page setup\r\n\r\n {\r\n outlet: \"left\",\r\n path: \"building\",\r\n component: RouterThroughputComponent,\r\n data: {\r\n animation: \"2-building\",\r\n },\r\n children: [\r\n // edit views\r\n {\r\n path: \"edit/floors\",\r\n component: BuildingDetailEditFloorsComponent,\r\n },\r\n {\r\n path: \"edit/usages/:regionId\",\r\n component: BuildingDetailEditUsagesComponent,\r\n },\r\n {\r\n path: \"edit\",\r\n component: BuildingDetailEditComponent,\r\n },\r\n // tabbed equipment views\r\n { path: \"\", redirectTo: \"view\", pathMatch: \"full\" },\r\n {\r\n path: \"view\",\r\n component: BuildingOverviewComponent,\r\n children: [\r\n {\r\n path: \"details\",\r\n component: BuildingDetailComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"equipment\",\r\n component: EquipmentListComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"incident\",\r\n component: IncidentOverviewComponent,\r\n outlet: \"tab\",\r\n children: [\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"calendar\",\r\n component: IncidentCalendarComponent,\r\n data: {\r\n location: \"building\",\r\n },\r\n },\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"list\",\r\n component: BuildingIncidentListComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: \"defect\",\r\n component: DefectListComponent,\r\n outlet: \"tab\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n {\r\n outlet: \"left\",\r\n path: \"room-list\",\r\n component: BuildingRoomListComponent,\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"room/:id\",\r\n component: BuildingRoomDetailComponent,\r\n },\r\n\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/:id\",\r\n component: RouterThroughputComponent,\r\n data: {\r\n animation: \"2-equipment\",\r\n close: true,\r\n },\r\n children: [\r\n // full frame edit components\r\n {\r\n path: \"edit/inspection-duties\",\r\n component: EquipmentDetailEditInspectionDutiesComponent,\r\n data: {\r\n close: true,\r\n },\r\n },\r\n {\r\n path: \"edit\",\r\n component: EquipmentDetailEditComponent,\r\n data: {\r\n close: true,\r\n },\r\n },\r\n {\r\n path: \"edit/feature\",\r\n component: EquipmentFeatureEditComponent,\r\n data: {\r\n close: true,\r\n },\r\n },\r\n\r\n // tabbed equipment views\r\n { path: \"\", redirectTo: \"view\", pathMatch: \"full\" },\r\n {\r\n path: \"view\",\r\n component: EquipmentOverviewComponent,\r\n data: {\r\n close: true,\r\n },\r\n children: [\r\n {\r\n path: \"details\",\r\n component: EquipmentDetailComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"modules\",\r\n component: EquipmentModuleComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"features\",\r\n component: EquipmentFeatureComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"incident\",\r\n component: IncidentOverviewComponent,\r\n outlet: \"tab\",\r\n children: [\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"calendar\",\r\n component: IncidentCalendarComponent,\r\n data: {\r\n location: \"equipment\",\r\n },\r\n },\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"list\",\r\n component: EquipmentIncidentListComponent,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"incident/:id\",\r\n component: BuildingIncidentDetailComponent,\r\n data: {\r\n animation: \"2-incident\",\r\n close: true,\r\n },\r\n },\r\n\r\n // 3 level page setup\r\n\r\n {\r\n outlet: \"left\",\r\n path: \"equipment/:id\",\r\n component: RouterThroughputComponent,\r\n data: {\r\n animation: \"3-equipment\",\r\n },\r\n children: [\r\n // full frame edit components\r\n {\r\n path: \"edit/inspection-duties\",\r\n component: EquipmentDetailEditInspectionDutiesComponent,\r\n },\r\n {\r\n path: \"edit\",\r\n component: EquipmentDetailEditComponent,\r\n },\r\n {\r\n path: \"edit/feature\",\r\n component: EquipmentFeatureEditComponent,\r\n },\r\n\r\n // tabbed equipment views\r\n { path: \"\", redirectTo: \"view\", pathMatch: \"full\" },\r\n {\r\n path: \"view\",\r\n component: EquipmentOverviewComponent,\r\n children: [\r\n {\r\n path: \"details\",\r\n component: EquipmentDetailComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"modules\",\r\n component: EquipmentModuleComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"features\",\r\n component: EquipmentFeatureComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"incident\",\r\n component: IncidentOverviewComponent,\r\n outlet: \"tab\",\r\n children: [\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"calendar\",\r\n component: IncidentCalendarComponent,\r\n data: {\r\n location: \"equipment\",\r\n },\r\n },\r\n {\r\n outlet: \"incidentstyle\",\r\n path: \"list\",\r\n component: EquipmentIncidentListComponent,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/incident/:id\",\r\n component: EquipmentIncidentDetailComponent,\r\n data: {\r\n animation: \"3-incident\",\r\n close: true,\r\n },\r\n },\r\n\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/module/edit/:id\",\r\n component: ModuleDetailEditComponent,\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/module/:id\",\r\n component: ModuleOverviewComponent,\r\n data: {\r\n animation: \"3-module\",\r\n close: true,\r\n },\r\n children: [\r\n {\r\n path: \"details\",\r\n component: ModuleDetailComponent,\r\n outlet: \"tab\",\r\n },\r\n {\r\n path: \"features\",\r\n component: ModuleFeatureComponent,\r\n outlet: \"tab\",\r\n },\r\n ],\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/module/edit/feature/:id\",\r\n component: ModuleFeatureEditComponent,\r\n data: {\r\n animation: \"3-module\",\r\n close: true,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [FormsModule, CoreModule, RouterModule.forChild(routes)],\r\n declarations: [\r\n BuildingListComponent,\r\n BuildingRoomListComponent,\r\n BuildingRoomDetailComponent,\r\n EquipmentListComponent,\r\n EquipmentDetailComponent,\r\n EquipmentModuleComponent,\r\n EquipmentFeatureComponent,\r\n EquipmentHistoryComponent,\r\n EquipmentIncidentListComponent,\r\n BuildingOverviewComponent,\r\n BuildingDetailComponent,\r\n BuildingIncidentListComponent,\r\n BuildingComponent,\r\n StartComponent,\r\n BuildingUsageComponent,\r\n EquipmentDetailEditInspectionDutiesComponent,\r\n EquipmentFeatureEditComponent,\r\n BuildingIncidentDetailComponent,\r\n EquipmentOverviewComponent,\r\n EquipmentWizardProgressComponent,\r\n EquipmentWizardDataComponent,\r\n EquipmentWizardTechnicalComponent,\r\n EquipmentWizardComponent,\r\n EquipmentWizardTypeComponent,\r\n BuildingWizardComponent,\r\n BuildingWizardDataComponent,\r\n BuildingWizardLocationComponent,\r\n BuildingWizardUsageComponent,\r\n BuildingWizardEquipmentComponent,\r\n BuildingWizardProgressComponent,\r\n ModuleDetailComponent,\r\n ModuleWizardComponent,\r\n ModuleWizardDataComponent,\r\n ModuleWizardTechnicalComponent,\r\n ModuleWizardProgressComponent,\r\n ModuleWizardTypeComponent,\r\n BuildingDetailEditComponent,\r\n BuildingDetailEditUsagesComponent,\r\n BuildingDetailEditFloorsComponent,\r\n IncidentOverviewComponent,\r\n IncidentCalendarComponent,\r\n IncidentWizardComponent,\r\n IncidentWizardProgressComponent,\r\n IncidentWizardDataComponent,\r\n IncidentWizardEquipmentComponent,\r\n IncidentWizardContactComponent,\r\n DefectListComponent,\r\n DefectWizardComponent,\r\n DefectWizardProgressComponent,\r\n DefectWizardDocumentComponent,\r\n DefectWizardDataComponent,\r\n DefectWizardEquipmentComponent,\r\n ModuleOverviewComponent,\r\n ModuleFeatureComponent,\r\n ModuleFeatureEditComponent,\r\n ModuleDetailEditComponent,\r\n EquipmentDetailEditComponent,\r\n BuildingDocumentOverviewComponent,\r\n DocumentIncidentComponent,\r\n DocumentBuildingEquipmentComponent,\r\n RouterThroughputComponent,\r\n DocumentWizardComponent,\r\n DocumentWizardProgressComponent,\r\n DocumentWizardDataComponent,\r\n DocumentWizardTypeComponent,\r\n DocumentWizardEquipmentComponent,\r\n DocumentWizardIncidentComponent,\r\n DocumentWizardIncidentDataComponent,\r\n EquipmentIncidentDetailComponent,\r\n InspectiondutyWizardComponent,\r\n InspectiondutyWizardProgressComponent,\r\n InspectiondutyWizardDataComponent,\r\n InspectiondutyWizardOtherEquipmentsComponent,\r\n ],\r\n exports: [InspectiondutyWizardComponent, RouterModule],\r\n providers: [\r\n GlobalService,\r\n LoginService,\r\n InstallEquipmentService,\r\n EquipmentWizardService,\r\n BuildingWizardService,\r\n ModuleWizardService,\r\n IncidentWizardService,\r\n DefectWizardService,\r\n DocumentWizardService,\r\n ImageUploadService,\r\n InspectiondutyWizardService,\r\n IncidentState,\r\n ],\r\n})\r\nexport class BuildingModule {}\r\n","import { animate, AnimationMetadata, group, query, style, transition, trigger } from '@angular/animations';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, RouterOutlet } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nconst leftContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ 'z-index': 2, transform: 'translate3d(100%,0,0)' }), { optional: true }), // entering panel must be over the leaving from right side in order to routerLinkActive to work\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) //'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst leftContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' }))),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nconst rightContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(100%,0,0)' }), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) //'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst rightContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nexport const leftPanelSideAnimations: AnimationMetadata = trigger('leftAnimations', [\r\n transition('init => *', []), //denies any animation from 'init' state\r\n transition('void => *', []), //denies animation from 'null' state\r\n transition('2-building => 1-building-list', leftContentMoveToRight),\r\n transition('3-equipment => 2-building', leftContentMoveToRight), //pressed close on 3-incident\r\n transition('3-module => 2-building', leftContentMoveToRight),\r\n transition('* => 2-building', leftContentMoveToLeft),\r\n transition('* => 3-equipment', leftContentMoveToLeft),\r\n transition('* => 3-module', leftContentMoveToLeft)\r\n]);\r\n\r\n\r\n/**\r\n * xyz => * : when moving forward to the right side: use rightContentMoveToLeft\r\n * abc => xyz : when moving backwards (close button) from abc to xyz: use rightContentMoveToRight\r\n */\r\nexport const rightPanelSideAnimations: AnimationMetadata = trigger('rightAnimations', [\r\n transition('init => *', []), //denies any animation from 'init' state\r\n transition('* => init', []), //denies any animation to 'init' state\r\n transition('void => *', []), //denies animation from 'null' state\r\n transition('1-building => *', rightContentMoveToLeft),\r\n transition('2-equipment => 1-building', rightContentMoveToRight), // pressed close on 2-equipment\r\n transition('2-incident => 1-building', rightContentMoveToRight), // pressed close on 2-incident\r\n transition('2-equipment => *', rightContentMoveToLeft),\r\n transition('2-incident => 2-equipment', rightContentMoveToRight),\r\n transition('3-module => 2-equipment', rightContentMoveToRight),\r\n transition('3-incident => 2-equipment', rightContentMoveToRight)\r\n //transition('2-equipment => 2-incident', []),\r\n //transition('2-incident => 2-equipment', []),\r\n //transition('* => 2-equipment', rightContentMoveFromRight),\r\n //transition('* => 3-module', rightContentMoveToRight)\r\n]);\r\n\r\n\r\n@Component({\r\n selector: 'app-building',\r\n templateUrl: './building.component.html',\r\n styleUrls: ['./building.component.scss'],\r\n animations: [leftPanelSideAnimations, rightPanelSideAnimations]\r\n})\r\nexport class BuildingComponent implements OnInit, OnDestroy {\r\n\r\n isWizard: boolean = false;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n public prepareRouteTransition(outlet: RouterOutlet) {\r\n const result = outlet.activatedRouteData['animation'] || 'init';\r\n return result;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.url.subscribe(url => {\r\n this.isWizard = (url.length > 2) && (url[2].path.toLowerCase() === 'wizard');\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { startWith, switchMap, map } from 'rxjs/operators';\r\n\r\nimport { Incident } from '../../core/model/incident';\r\nimport { IncidentState } from '../building-incident/incident-state.service';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\nimport { Guid } from 'guid-typescript';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi'\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-defect-list',\r\n templateUrl: './defect-list.component.html',\r\n styleUrls: ['./defect-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DefectListComponent implements OnInit, OnDestroy {\r\n buildingId: string;\r\n defects: PropertyCore.Event[];\r\n\r\n searchFilter: string = '';\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private state: IncidentState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.subscriptions.add(this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return this.route.root.firstChild.paramMap.pipe(switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.Event\r\n .Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get('id'))).And\r\n .NotEqualsPath(ODataPath.For(\"Response\", \"DefectRating\"), \"Undefined\"))\r\n .Expand(x => {\r\n x.Expand(\"Response\", y => {\r\n y.Expand(\"User\")\r\n });\r\n x.Expand(\"Schedule\", y => {\r\n y.Expand(\"MaintenanceContract\"),\r\n y.Expand(\"InspectionDuty\", y => {\r\n y.Select(\"OperatorTask\"),\r\n y.Expand(\"OperatorTask\")\r\n });\r\n });\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\")\r\n });\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\"),\r\n y.Select(\"CustomId\")\r\n });\r\n })\r\n .Exec()\r\n .then(x =>\r\n x.value\r\n ))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Incident(), i);\r\n })))\r\n ));\r\n })).subscribe(res => this.defects = res));\r\n\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe(params => this.buildingId = params.get('id')));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { of, Subject, Subscription, from } from 'rxjs';\r\nimport { mergeMap, startWith } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './../../core/auth/auth.service';\r\nimport { BuildingDocumentsInputData } from './../../core/components/building/building-documents-input-data';\r\nimport { EquipmentDocumentsInputData } from './../../core/components/equipment/equipment-documents-input-data';\r\n\r\nimport { DocumentType } from './../wizard/document/document-wizard-model';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from 'app/core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-document-building-equipment',\r\n templateUrl: './document-building-equipment.component.html',\r\n styleUrls: ['./document-building-equipment.component.scss']\r\n})\r\nexport class DocumentBuildingEquipmentComponent implements OnInit, OnDestroy {\r\n\r\n buildingDocumentsInputData: BuildingDocumentsInputData = new BuildingDocumentsInputData();\r\n buildingDocumentsSubject = new Subject();\r\n equipmentDocumentsInputData: EquipmentDocumentsInputData = new EquipmentDocumentsInputData();\r\n equipmentDocumentsSubject = new Subject();\r\n\r\n buildingUT: string;\r\n\r\n _searchFilter: string;\r\n searchFilterSubject = new Subject();\r\n\r\n DOCUMENT_TYPE_BUILDING = DocumentType.BUILDING;\r\n DOCUMENT_TYPE_EQUIPMENT = DocumentType.EQUIPMENT;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.parent.paramMap.subscribe((params: ParamMap) => {\r\n this.buildingUT = params.get('id');\r\n\r\n this.buildingDocumentsInputData.buildingDocument$ = this.buildingDocumentsSubject.asObservable().pipe(startWith(''), mergeMap(() =>\r\n from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingUT))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypeMarkers\",\r\n y => {\r\n y.Expand(\"DocumentType\")\r\n y.Filter(z => z\r\n .EqualsField(\"IsRequired\", true).And\r\n .EqualsField(\"IsMissing\", true))\r\n })\r\n x.Expand(\"Documents\",\r\n y => {\r\n y.Expand(\"DocumentType\")\r\n }) \r\n })\r\n .Exec().then(x => x.value))));\r\n\r\n this.buildingDocumentsInputData.searchFilter$ = this.searchFilterSubject.asObservable().pipe(startWith(''));\r\n this.buildingDocumentsInputData.currentBuildingUT$ = of(this.buildingUT);\r\n this.buildingDocumentsInputData.currentDocumentTypeId$ = of(null);\r\n\r\n this.equipmentDocumentsInputData.buildingEquipmentDocument$ = this.equipmentDocumentsSubject.asObservable().pipe(startWith(''), mergeMap(() =>\r\n from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingUT))\r\n .Expand(x => {\r\n x.Expand(\"Equipments\",\r\n y => {\r\n y.OrderBy('Name')\r\n y.Expand(\"Documents\", z => z\r\n .Expand(\"DocumentType\"))\r\n y.Expand(\"DocumentTypeMarkers\", z => {\r\n z.Expand(\"DocumentType\")\r\n .Filter(a => a\r\n .EqualsField(\"IsRequired\", true).And\r\n .EqualsField(\"IsMissing\", true))\r\n y.Expand(\"Room\", z => {\r\n z.Expand(\"Floor\")\r\n })\r\n })\r\n y.Expand(\"KpiMarker\")\r\n y.Filter(z => z\r\n .Any(\"Documents\",\"\").Or\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true).And\r\n .EqualsField(\"IsRenterResponsibility\", false).Or\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), false).And\r\n .EqualsField(\"IsRenterResponsibility\", false).And\r\n .EqualsField(\"IsNoMaintenanceDesired\",true)\r\n )\r\n })\r\n })\r\n .Exec().then(x => x.value))));\r\n\r\n\r\n this.equipmentDocumentsInputData.searchFilter$ = this.searchFilterSubject.asObservable().pipe(startWith(''));\r\n this.equipmentDocumentsInputData.currentEquipmentUT$ = of(null);\r\n this.equipmentDocumentsInputData.currentDocumentTypeId$ = of(null);\r\n }));\r\n}\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n reloadBuildingDocuments() {\r\n this.buildingDocumentsSubject.next('');\r\n }\r\n\r\n reloadEquipmentDocuments() {\r\n this.equipmentDocumentsSubject.next('');\r\n }\r\n\r\n documentWizard(buildingUT: string, type: number = undefined, documentType: number = undefined, installEquipmentUT: string = undefined) {\r\n this.router.navigate(['building', 'wizard', buildingUT, 'document'], { queryParams: { type: type, documentType: documentType, ieUT: installEquipmentUT }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n get searchFilter(): string {\r\n return this._searchFilter;\r\n }\r\n\r\n set searchFilter(searchFilter: string) {\r\n this._searchFilter = searchFilter;\r\n this.searchFilterSubject.next(searchFilter);\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap, Router } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { Subscription, from } from \"rxjs\";\r\nimport { switchMap } from \"rxjs/operators\";\r\n\r\nimport { PropertyCore } from \"../../core/odata/odata.coreapi\";\r\nimport { Document } from \"./../../core/model/document\";\r\nimport { ConfirmationModal } from \"./../../core/popup/confirmation.modal\";\r\nimport { PopupService } from \"./../../core/popup/popup.service\";\r\nimport { DocumentType } from \"./../wizard/document/document-wizard-model\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { Utils } from \"../../core/tools/utils\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\nimport { Building } from \"app/core/model/building\";\r\nimport { FilterByPipe } from \"app/core/pipes/filter.pipe\";\r\n\r\n@Component({\r\n selector: \"app-document-incident\",\r\n templateUrl: \"./document-incident.component.html\",\r\n styleUrls: [\"./document-incident.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DocumentIncidentComponent implements OnInit, OnDestroy {\r\n building: PropertyCore.Building;\r\n buildingDocumentHierarchy: PropertyCore.Building;\r\n\r\n searchFilter: string;\r\n\r\n editDocument: Document;\r\n\r\n eventDocumentCount = 0;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private popupService: PopupService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService,\r\n private filterByPipe: FilterByPipe\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n return from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get(\"id\")))\r\n .Expand((x) => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])));\r\n })\r\n )\r\n .subscribe((building) => (this.building = building))\r\n );\r\n\r\n this.loadDocuments();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n private async loadDocuments() {\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n return from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get(\"id\")))\r\n .Expand((x) => {\r\n x.Expand(\"Events\", (y) => {\r\n y.Expand(\"Documents\", (z) => {\r\n z.Expand(\"DocumentType\");\r\n });\r\n });\r\n x.Expand(\"Equipments\", (y) => {\r\n y.Expand(\"Events\", (z) => {\r\n z.Expand(\"Documents\", (a) => {\r\n a.Expand(\"DocumentType\");\r\n });\r\n z.Expand(\"Schedule\", (a) => {\r\n a.Select(\"CycleUnit\");\r\n a.Select(\"Cycle\");\r\n a.Select(\"InspectionDuty\");\r\n a.Expand(\"InspectionDuty\", (b) => {\r\n b.Select(\"OperatorTask\");\r\n b.Expand(\"OperatorTask\", (c) => {\r\n c.Select(\"Guidelines\");\r\n });\r\n });\r\n });\r\n });\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n return Object.assign(\r\n new Building(),\r\n Utils.mapAllJSONDatesToDates(i)\r\n );\r\n })\r\n )\r\n );\r\n })\r\n )\r\n .subscribe((res) => {\r\n res.forEach(\r\n (building) =>\r\n (building.Events = building.Events.filter(\r\n (events) => !!events.Documents.length\r\n ))\r\n );\r\n res.forEach(\r\n (building) =>\r\n (building.Equipments = building.Equipments.filter((equipments) =>\r\n equipments.Events.find((events) => !!events.Documents.length)\r\n ))\r\n );\r\n\r\n let a = 0;\r\n if (res[0].Events.length !== 0) {\r\n while (res[0].Events.length > a) {\r\n this.eventDocumentCount =\r\n res[0].Events[a].Documents.length + this.eventDocumentCount;\r\n a++;\r\n }\r\n }\r\n\r\n this.buildingDocumentHierarchy = res.length === 1 ? res[0] : null;\r\n })\r\n );\r\n }\r\n\r\n documentWizard() {\r\n this.router.navigate(\r\n [\"building\", \"wizard\", this.building.Identity, \"document\"],\r\n {\r\n queryParams: { type: DocumentType.INCIDENT },\r\n queryParamsHandling: \"merge\",\r\n }\r\n );\r\n }\r\n\r\n showDocument(doc: Document) {\r\n if (!doc.IsVirtual) {\r\n if (doc.Name.endsWith(\".pdf\")) {\r\n this.popupService.openPdfModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false),\r\n doc.Name\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".jpg\") ||\r\n doc.Name.endsWith(\".jpeg\") ||\r\n doc.Name.endsWith(\".png\")\r\n ) {\r\n this.popupService.openImagePreviewModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false)\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".doc\") ||\r\n doc.Name.endsWith(\".docx\") ||\r\n doc.Name.endsWith(\".xls\") ||\r\n doc.Name.endsWith(\".xlsx\") ||\r\n doc.Name.endsWith(\".ppt\") ||\r\n doc.Name.endsWith(\".pptx\")\r\n ) {\r\n this.popupService.openOfficePreviewModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false),\r\n doc.Name\r\n );\r\n } else {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"DocumentList._preview_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"DocumentList._preview_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"DocumentList._preview_download\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"DocumentList._preview_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n this.globalService\r\n .downloadDocument(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false)\r\n )\r\n .subscribe((data) => {\r\n const blob = new Blob([data], {\r\n type: \"application/octet-stream\",\r\n });\r\n // if (navigator.msSaveBlob) {\r\n // // IE 10+\r\n // navigator.msSaveBlob(blob, doc.Name);\r\n // } else {\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = doc.Name;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //}\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n }\r\n }\r\n\r\n edit(event: MouseEvent, document: Document, content: any) {\r\n event.stopPropagation();\r\n this.editDocument = Object.assign({}, document);\r\n this.modalService.open(content);\r\n }\r\n\r\n delete(closeModal: () => void) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"DocumentList._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"DocumentList._modal_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"DocumentList._modal_yes\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"DocumentList._modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then(async (val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.odataCoreService.Document.Delete()\r\n .Key(Guid.parse(this.editDocument.Identity))\r\n .Exec();\r\n closeModal();\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"DocumentList._deleteDocument_success\"\r\n )\r\n );\r\n this.eventDocumentCount = 0;\r\n this.loadDocuments();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n async save(closeModal: () => Promise) {\r\n await this.odataCoreService.Document.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .Key(Guid.parse(this.editDocument.Identity))\r\n .ValueProperty(\"Description\", this.editDocument.Description)\r\n .Exec();\r\n closeModal();\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"DocumentList._saveDocument_success\")\r\n );\r\n this.eventDocumentCount = 0;\r\n this.loadDocuments();\r\n }\r\n\r\n countDocuments(events: PropertyCore.Event[]) {\r\n return events.map((i) => i.Documents.length).reduce((a, b) => a + b, 0);\r\n }\r\n\r\n isEquipmentHidden(equipment: PropertyCore.Equipment): boolean {\r\n let docsCount = 0;\r\n equipment.Events.forEach(ev => {\r\n const matchDocs = this.filterByPipe.transform(ev.Documents, this.searchFilter, ['Type', 'Description', 'Name', 'Created', 'incidentGuidelines', 'incidentDueDate'])\r\n docsCount += matchDocs.length\r\n });\r\n return docsCount === 0;\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {Subscription, from, Observable} from 'rxjs';\r\nimport {map, switchMap} from 'rxjs/operators';\r\nimport {EditInspectionDutyGroup} from '../../../core/components/equipment/edit-inspection-duties/editInspectionDutyGroup';\r\nimport {EquipmentEditInspectionDutiesInputData} from '../../../core/components/equipment/equipment-edit-inspection-duties-input-data';\r\nimport {EquipmentEditInspectionDutiesSaveOutputData} from '../../../core/components/equipment/equipment-edit-inspection-duties-save-output-data';\r\nimport {InstallEquipmentService} from '../../installEquipment.service';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { Common } from '../../../core/odata/odata.coreapi';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\nimport { EditOperatorTask } from '../../../core/components/equipment/edit-inspection-duties/editOperatorTask';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-detail-edit-inspection-duties',\r\n templateUrl: './equipment-detail-edit-inspection-duties.component.html',\r\n styleUrls: ['./equipment-detail-edit-inspection-duties.component.scss']\r\n})\r\nexport class EquipmentDetailEditInspectionDutiesComponent implements OnInit, OnDestroy {\r\n inputData = new EquipmentEditInspectionDutiesInputData();\r\n\r\n buildingUT: string;\r\n installEquipmentUT: string;\r\n showClose: boolean;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private installEquipmentService: InstallEquipmentService,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.installEquipment$ = this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.installEquipmentUT = params.get('id');\r\n return from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n })); \r\n \r\n this.inputData.equipmentOperatorTaskMarkers$ = this.route.parent.paramMap.pipe(switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"OperatorTaskMarkers\", y => {\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Id\")\r\n z.Select(\"Identity\")\r\n z.Select(\"Guidelines\")\r\n z.Select(\"Subject\")\r\n z.Select(\"Deadline\")\r\n z.Select(\"Qualification\")\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n z.Select(\"IsRelevant\")\r\n z.Expand(\"ModuleTypes\")\r\n })\r\n y.Filter(z => z\r\n .Equals(ODataPath.For(\"OperatorTask\", \"IsRelevant\"), true).Or\r\n .EqualsField(\"IsMissing\", false))\r\n }),\r\n x.Expand(\"InspectionDuties\", y => {\r\n y.Expand(\"Schedule\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n z.Select(\"CycleStart\")\r\n }),\r\n y.Expand(\"OperatorTask\", z=> {\r\n z.Select(\"Identity\")\r\n z.Select(\"Id\")\r\n })\r\n y.Filter(z => z\r\n .EqualsField(\"IsDisabled\", false))\r\n })\r\n })\r\n .Select(\"Identity\")\r\n .Exec()\r\n .then(x => x.value))) \r\n , map(id => {\r\n const activatedInspectionDuties = id[0].InspectionDuties;\r\n const idg: EditOperatorTask[] = []\r\n id.forEach(x => {\r\n let a: number = 0;\r\n while (a < x.OperatorTaskMarkers.length) {\r\n\r\n let activatedOperatorTaskId = x.OperatorTaskMarkers[a].OperatorTask.Id;\r\n\r\n let activatedInspectionDutyItem = \r\n activatedInspectionDuties.filter(x => x.OperatorTask.Id == activatedOperatorTaskId).length != 0 ? \r\n activatedInspectionDuties.filter(x => x.OperatorTask.Id == activatedOperatorTaskId)[0] : null;\r\n \r\n let idgItem; \r\n idgItem = new EditOperatorTask();\r\n if(x.OperatorTaskMarkers[a].OperatorTask.ModuleTypes) {\r\n idgItem.imName = x.OperatorTaskMarkers[a].OperatorTask.ModuleTypes.map(m => m.Name).join(\", \");\r\n }\r\n idgItem.guideline = x.OperatorTaskMarkers[a].OperatorTask.Guidelines;\r\n idgItem.deadline = x.OperatorTaskMarkers[a].OperatorTask.Deadline;\r\n idgItem.subject = x.OperatorTaskMarkers[a].OperatorTask.Subject;\r\n idgItem.qualification = x.OperatorTaskMarkers[a].OperatorTask.Qualification;\r\n idgItem.operatortaskId = x.OperatorTaskMarkers[a].OperatorTask.Id;\r\n idgItem.operatortaskIdentity = x.OperatorTaskMarkers[a].OperatorTask.Identity;\r\n idgItem.cycle = x.OperatorTaskMarkers[a].OperatorTask.Cycle;\r\n idgItem.cycleUnit = x.OperatorTaskMarkers[a].OperatorTask.CycleUnit;\r\n idgItem.isMissing = x.OperatorTaskMarkers[a].IsMissing;\r\n\r\n if (activatedInspectionDutyItem != null){\r\n idgItem.aCycle = activatedInspectionDutyItem.Schedule.Cycle;\r\n idgItem.aCycleUnit = activatedInspectionDutyItem.Schedule.CycleUnit;\r\n if(activatedInspectionDutyItem.Schedule.CycleStart == null){\r\n idgItem.aCycleStart = null;\r\n idgItem.aCycleStartIsNotEmpty = false;\r\n } else {\r\n idgItem.aCycleStart = new Date(activatedInspectionDutyItem.Schedule.CycleStart);\r\n idgItem.aCycleStartIsNotEmpty = true;\r\n } \r\n idgItem.aInspectionDutyIdentity = activatedInspectionDutyItem.Identity;\r\n } else{\r\n idgItem.aCycle = null;\r\n idgItem.aCycleUnit = null;\r\n idgItem.aCycleStart = null;\r\n idgItem.aCycleStartIsNotEmpty = false;\r\n idgItem.aInspectionDutyIdentity = null;\r\n }\r\n\r\n idg.push(idgItem) \r\n a++;\r\n }\r\n });\r\n idg.sort((a, b) => {\r\n const imNameCompare = a.imName ? a.imName.localeCompare(b.imName) : (b.imName ? -b.imName.localeCompare(a.imName) : 0);\r\n return imNameCompare ? imNameCompare : (a.guideline ? a.guideline.localeCompare(b.guideline) : (b.guideline ? -b.guideline.localeCompare(a.guideline) : 0));\r\n });\r\n return idg;\r\n }));\r\n\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe(params => (this.buildingUT = params.get('id'))));\r\n \r\n this.inputData.showHeader = false;\r\n \r\n // this.inputData.showClose = this.route.snapshot.data.close;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(): void {\r\n this.router.navigate([\r\n '/building',\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['equipment']}}],\r\n right: ['equipment', this.installEquipmentUT]\r\n }\r\n }\r\n ], {queryParamsHandling: 'merge'});\r\n }\r\n\r\n handleSaveRequest(): void {\r\n this.toasterService.pop('success', '', this.translateService.instant('EquipmentDetailEditInspection._toastr_success'));\r\n this.handleCloseRequest();\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { combineLatest, Observable, of, Subject, Subscription, from } from \"rxjs\";\r\nimport { debounceTime, distinctUntilChanged, map, switchMap } from \"rxjs/operators\";\r\n\r\nimport { PropertyCore } from \"../../../core/odata/odata.coreapi\";\r\nimport { ConfirmationModal } from \"./../../../core/popup/confirmation.modal\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"../../../core/odata/odataclient\";\r\nimport { Utils } from \"../../../core/tools/utils\";\r\nimport { Guid } from \"guid-typescript\";\r\n\r\n@Component({\r\n selector: \"app-equipment-detail-edit\",\r\n templateUrl: \"./equipment-detail-edit.component.html\",\r\n styleUrls: [\"./equipment-detail-edit.component.scss\"],\r\n})\r\nexport class EquipmentDetailEditComponent implements OnInit, OnDestroy {\r\n origInstallEquipment: PropertyCore.Equipment;\r\n installEquipment: PropertyCore.Equipment;\r\n installEquipmentFloor: PropertyCore.Floor;\r\n equipment$: Observable;\r\n\r\n floors: PropertyCore.Floor[];\r\n rooms: PropertyCore.Room[];\r\n\r\n newRoomName: string;\r\n\r\n buildingUT: string;\r\n\r\n qrCodes: PropertyCore.QuickResponseCode[];\r\n qrCodeState: PropertyCore.QuickResponseCode;\r\n newQrCode = new Subject();\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap.subscribe((params) => (this.buildingUT = params.get(\"id\")))\r\n );\r\n\r\n const installEquipmentUT$: Observable = this.route.parent.paramMap.pipe(map((params) => params.get(\"id\")));\r\n\r\n const floors$: Observable = installEquipmentUT$.pipe(\r\n switchMap((val) =>\r\n from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(val))\r\n .Expand((x) => {\r\n x.Expand(\"Building\", (y) => {\r\n y.Expand(\"Floors\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => res[0].Building.Floors.map((f) => Utils.mapAllJSONDatesToDates(f))))\r\n )\r\n );\r\n\r\n const equipment$: Observable = installEquipmentUT$.pipe(\r\n switchMap((ut) =>\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"QuickResponseCodes\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n })\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(ut)))\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n )\r\n );\r\n\r\n this.subscriptions.add(\r\n combineLatest([installEquipmentUT$, equipment$, floors$]).subscribe(([_equipmentUT, _equipment, _floors]) => {\r\n this.origInstallEquipment = Object.assign({}, _equipment);\r\n this.installEquipment = _equipment;\r\n this.installEquipmentFloor = this.installEquipment.Room.Floor;\r\n this.floors = _floors;\r\n if (this.installEquipmentFloor) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Room.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.installEquipment.Building.Identity))\r\n .And.Equals(ODataPath.For(\"Floor\", \"Id\"), this.installEquipmentFloor.Id)\r\n )\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe((res) => (this.rooms = res))\r\n );\r\n }\r\n\r\n this.getQrCodes();\r\n })\r\n );\r\n\r\n this.newQrCode\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n switchMap((term) =>\r\n term\r\n ? from(\r\n this.odataCoreService.QuickResponseCode.Query()\r\n .Filter((x) => x.EqualsField(\"Id\", +term))\r\n .Expand((x) => {\r\n x.Expand(\"Equipments\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))))\r\n .pipe(map((res) => (res && res.length ? res[0] : {})))\r\n : of(null)\r\n )\r\n )\r\n .subscribe((res) => (this.qrCodeState = res));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n getQrCodes(): void {\r\n let i: number = 0;\r\n if (this.installEquipment.QuickResponseCodes) {\r\n while (i < this.installEquipment.QuickResponseCodes.length) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.QuickResponseCode.Query()\r\n .Filter((x) => x.EqualsField(\"Id\", this.installEquipment.QuickResponseCodes[i].Id))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((res2) => Utils.mapAllJSONDatesToDates(res2))))\r\n .subscribe((res) => (this.qrCodes = res))\r\n );\r\n i++;\r\n }\r\n }\r\n }\r\n\r\n getImgPath(qrCodeId: number): string {\r\n return this.odataCoreService.QuickResponseCode.Get().Key(qrCodeId).Raw().ToUrlString(false);\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentDetailEdit._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentDetailEdit._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentDetailEdit._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"EquipmentDetailEdit._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\"equipment\", this.installEquipment.Identity],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\"equipment\", this.installEquipment.Identity],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n if (this.installEquipment.Room == null) {\r\n await this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.installEquipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.installEquipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.installEquipment.Comment)\r\n .ValueProperty(\"IsRenterResponsibility\", this.installEquipment.IsRenterResponsibility)\r\n .ValueProperty(\"IsNoMaintenanceDesired\", this.installEquipment.IsNoMaintenanceDesired)\r\n .ValueProperty(\"CustomId\", this.installEquipment.CustomId)\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get().Key(this.installEquipment.EquipmentType.Code).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get().Key(Guid.parse(this.installEquipment.Building.Identity)).Bind()\r\n )\r\n .Exec();\r\n } else {\r\n await this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.installEquipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.installEquipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.installEquipment.Comment)\r\n .ValueProperty(\"IsRenterResponsibility\", this.installEquipment.IsRenterResponsibility)\r\n .ValueProperty(\"IsNoMaintenanceDesired\", this.installEquipment.IsNoMaintenanceDesired)\r\n .ValueProperty(\"CustomId\", this.installEquipment.CustomId)\r\n .ValuePropertyBinding(\r\n \"Room\",\r\n this.odataCoreService.Room.Get().Key(Guid.parse(this.installEquipment.Room.Identity)).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get().Key(this.installEquipment.EquipmentType.Code).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get().Key(Guid.parse(this.installEquipment.Building.Identity)).Bind()\r\n )\r\n .Exec();\r\n }\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\"equipment\", this.installEquipment.Identity],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n async onFloorChange(selectedFloor: PropertyCore.Floor): Promise {\r\n this.installEquipmentFloor = selectedFloor;\r\n this.installEquipment.Room = null;\r\n if (selectedFloor) {\r\n let res = await this.odataCoreService.Room.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.installEquipment.Building.Identity))\r\n .And.Equals(ODataPath.For(\"Floor\", \"Id\"), selectedFloor.Id)\r\n )\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value);\r\n this.rooms = res.map((i) => Utils.mapAllJSONDatesToDates(i));\r\n }\r\n }\r\n\r\n findRoom(rooms: PropertyCore.Room[], roomName: string): PropertyCore.Room {\r\n let room = rooms.find((x) => x.Name == roomName);\r\n\r\n return room;\r\n }\r\n\r\n async openNewRoomPopup(content): Promise {\r\n this.modalService\r\n .open(content)\r\n .result.then(async (result) => {\r\n // on save click\r\n let res = await this.odataCoreService.Room.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Room())\r\n .ValueProperty(\"Name\", this.newRoomName)\r\n .ValuePropertyBinding(\"Floor\", this.odataCoreService.Floor.Get().Key(this.installEquipmentFloor.Id).Bind())\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get().Key(Guid.parse(this.installEquipment.Building.Identity)).Bind()\r\n )\r\n .Exec();\r\n this.installEquipment.Room = {\r\n Id: res,\r\n Name: this.newRoomName,\r\n Floor: this.installEquipmentFloor,\r\n };\r\n this.rooms.push(this.installEquipment.Room);\r\n let res2 = await this.odataCoreService.Room.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.installEquipment.Building.Identity))\r\n .And.Equals(ODataPath.For(\"Floor\", \"Id\"), this.installEquipmentFloor.Id)\r\n )\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value);\r\n this.rooms = res2.map((i) => Utils.mapAllJSONDatesToDates(i));\r\n if (this.newRoomName) {\r\n let newRoomNameSaved = this.newRoomName;\r\n\r\n this.installEquipment.Room = this.findRoom(this.rooms, newRoomNameSaved);\r\n }\r\n this.newRoomName = null;\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n searchQrCode(newQrCode: string) {\r\n this.newQrCode.next(newQrCode.trim());\r\n }\r\n\r\n async assignQrCode(qrCode: string): Promise {\r\n await this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(this.installEquipment.Identity))\r\n .Value(\"QuickResponseCodes\", this.odataCoreService.QuickResponseCode.Get().Key(+qrCode).Bind())\r\n .Post();\r\n this.getQrCodes();\r\n this.qrCodeState = null;\r\n }\r\n\r\n isAllowedToAssignQrCode(): boolean {\r\n return this.qrCodeState && !!this.qrCodeState.Id;\r\n }\r\n\r\n deleteQrCode(qrCode: PropertyCore.QuickResponseCode): void {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentDetailEdit._delete_qrcode_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentDetailEdit._delete_qrcode_message\", {\r\n qrCode: \"QR\" + qrCode.Id,\r\n });\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentDetailEdit._modal_delete\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"EquipmentDetailEdit._modal_cancel\");\r\n\r\n modalRef.result\r\n .then(async (val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(this.installEquipment.Identity))\r\n .Value(\"QuickResponseCodes\", this.odataCoreService.QuickResponseCode.Get().Key(qrCode.Id).Bind())\r\n .Delete();\r\n const idx = this.qrCodes.indexOf(qrCode);\r\n if (idx > -1) {\r\n this.qrCodes.splice(idx, 1);\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n openInfoDialog() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentWizData._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentWizData._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentWizData._modal_yes\");\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n openInfoDialog2() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentDetailEdit._modal_qrcode_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentDetailEdit._modal_qrcode_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentDetailEdit._modal_qrcode_yes\");\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n openInfoDialog3() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentWizData._modal_customName_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentWizData._modal_customName_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentWizData._modal_customName_yes\");\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap, Router } from \"@angular/router\";\r\nimport { NgbCarouselConfig, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { Subscription, from } from \"rxjs\";\r\nimport { map, switchMap } from \"rxjs/operators\";\r\nimport { PropertyCore, Operations } from \"../../core/odata/odata.coreapi\";\r\nimport { AuthService } from \"../../core/auth/auth.service\";\r\nimport { EditInspectionDutyGroup } from \"../../core/components/equipment/edit-inspection-duties/editInspectionDutyGroup\";\r\nimport { Kpi } from \"./../../core/model/kpi\";\r\nimport { MissingDataKpi } from \"../../core/model/missingDataKpi\";\r\nimport { ConfirmationModal } from \"../../core/popup/confirmation.modal\";\r\nimport { PopupService } from \"../../core/popup/popup.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { Utils } from \"../../core/tools/utils\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"../../core/odata/odataclient\";\r\nimport { InspectionDuty } from \"../../core/model/inspectionDuty\";\r\nimport { ImageUploadService } from \"../../core/components/upload/image-upload-service\";\r\nimport { ImageUploadModel } from \"../../core/components/upload/image-upload-model\";\r\nimport { FileItem } from \"ng2-file-upload\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\nimport { Equipment } from \"app/core/model/equipmentOperatorTask\";\r\n\r\n@Component({\r\n selector: \"app-equipment-detail\",\r\n templateUrl: \"./equipment-detail.component.html\",\r\n styleUrls: [\"./equipment-detail.component.scss\"],\r\n providers: [NgbCarouselConfig], // add NgbCarouselConfig to the component providers\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class EquipmentDetailComponent implements OnInit, OnDestroy {\r\n installEquipmentId: string;\r\n buildingId: string;\r\n installEquipment: PropertyCore.Equipment;\r\n images: PropertyCore.Image[];\r\n imgIdx = 0;\r\n inspectionDutyGroups: EditInspectionDutyGroup[];\r\n contracts: PropertyCore.MaintenanceContract[];\r\n\r\n missingData: MissingDataKpi;\r\n kpi: Kpi;\r\n\r\n overDueIncidentsLength = 0;\r\n nextThreeMonthsIncidentsLength = 0;\r\n defectIncidentsLength = 0;\r\n equipmentNoDocumentation = 0;\r\n equipmentNoInspectionDutyAssigned = 0;\r\n equipmentInspectionDutyUnterminated = 0;\r\n equipmentNoMaintenanceContract = 0;\r\n equipmentNoMaintenanceDesired = false;\r\n building: PropertyCore.Building;\r\n imageUploadModel: ImageUploadModel;\r\n private response: string;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private config: NgbCarouselConfig,\r\n private popupService: PopupService,\r\n private odataCoreService: ODataCoreService,\r\n private imageUploadService: ImageUploadService,\r\n private globalService: GlobalService\r\n ) {\r\n config.interval = 5000;\r\n config.wrap = true;\r\n config.keyboard = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n this.imageUploadModel.entityType = \"Equipment\";\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap.subscribe((params: ParamMap) => (this.buildingId = params.get(\"id\")))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n return from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get(\"id\")))\r\n .Expand((x) => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])));\r\n })\r\n )\r\n .subscribe((building) => {\r\n this.building = building;\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n this.installEquipmentId = params.get(\"id\");\r\n return from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Expand((x) => {\r\n x.Expand(\"Building\"), x.Expand(\"EquipmentType\"), x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])));\r\n })\r\n )\r\n .subscribe((installEquipment) => {\r\n this.installEquipment = installEquipment;\r\n\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsPlanned\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(this.installEquipmentId))\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.nextThreeMonthsIncidentsLength = result));\r\n\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsOverdue\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(this.installEquipmentId))\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.overDueIncidentsLength = result));\r\n\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDefective\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(this.installEquipmentId))\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.defectIncidentsLength = result));\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(params.get(\"id\")))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Select(\"Images\")\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) =>\r\n res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(img.Identity))\r\n .Raw()\r\n .ToUrlString(false);\r\n return img;\r\n })\r\n )\r\n )\r\n )\r\n )\r\n .subscribe((res) => {\r\n this.images = res;\r\n this.imgIdx = 0;\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.InspectionDuty.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n .Or.Equals(ODataPath.For(\"Module\", \"Equipment\", \"Identity\"), Guid.parse(params.get(\"id\")))\r\n )\r\n .Expand((x) => {\r\n x.Expand(\"Module\"), x.Expand(\"Equipment\"), x.Expand(\"Schedule\"), x.Expand(\"OperatorTask\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new InspectionDuty(), i);\r\n })\r\n )\r\n )\r\n ),\r\n map((id) => {\r\n const idg: EditInspectionDutyGroup[] = [];\r\n id.filter((i) => !i.IsDisabled).forEach((x) => {\r\n let idgItem = idg.find(\r\n (val) => x.Module && val.imName === x.Module.Name && val.guideline === x.OperatorTask.Guidelines\r\n );\r\n if (!idgItem) {\r\n idgItem = new EditInspectionDutyGroup();\r\n idgItem.imName = x.Module ? x.Module.Name : null;\r\n idgItem.guideline = x.OperatorTask.Guidelines;\r\n idg.push(idgItem);\r\n }\r\n idgItem.inspectionDuties.push(x);\r\n });\r\n return idg;\r\n })\r\n )\r\n .subscribe((res) => (this.inspectionDutyGroups = res))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n return from(\r\n this.odataCoreService.MaintenanceJob.Query()\r\n .Filter((x) => x.Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(params.get(\"id\"))))\r\n .Expand((x) => {\r\n x.Expand(\"Contract\", (y) => {\r\n y.Expand(\"ServiceProvider\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i.Contract))));\r\n })\r\n )\r\n .subscribe((res) => (this.contracts = res))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.EqualsField(\"Identity\", Guid.parse(params.get(\"id\")))\r\n .Or.Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), false)\r\n .And.EqualsField(\"IsRenterResponsibility\", false)\r\n .And.EqualsField(\"IsNoMaintenanceDesired\", true)\r\n .And.EqualsField(\"Identity\", Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentNoDocumentation = result))\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentNoDocumentation = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsMaintained\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.EqualsField(\"Identity\", Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentNoMaintenanceContract = result))\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentNoMaintenanceContract = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .EqualsField(\"IsNoMaintenanceDesired\", true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.EqualsField(\"Identity\", Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => result > 0)\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentNoMaintenanceDesired = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsInspectionDutiesAssigned\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.EqualsField(\"Identity\", Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentNoInspectionDutyAssigned = result))\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentNoInspectionDutyAssigned = result))\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"HasInspectionDutyUnterminated\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.EqualsField(\"Identity\", Guid.parse(params.get(\"id\")))\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentInspectionDutyUnterminated = result))\r\n )\r\n )\r\n .subscribe((result) => (this.equipmentInspectionDutyUnterminated = result))\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n edit(): void {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\"equipment\", this.installEquipmentId, \"edit\"],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n async delete(): Promise {\r\n const nameof = (name: keyof T) => name;\r\n\r\n let res = await this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Actions()\r\n .CanOperateInOperationsOnEquipmentInPropertyCore()\r\n .Parameters(Operations.Operations.Delete)\r\n .Execute();\r\n if (res.Blocker.length == 0) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentDetail._delete_modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentDetail._delete_modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentDetail._delete_modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"EquipmentDetail._delete_modal_cancel\");\r\n\r\n modalRef.result\r\n .then(async (val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.odataCoreService.Equipment.Delete().Key(Guid.parse(this.installEquipmentId)).Exec();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"EquipmentDetail._delete_success\"));\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n let x = 0;\r\n\r\n var deleteText = \"

\";\r\n while (res.Blocker.length > x) {\r\n switch (res.Blocker[x].Property) {\r\n case nameof(\"Documents\"):\r\n deleteText +=\r\n this.translateService.instant(\"EquipmentDetail._delete_documentCount\") +\r\n \": \" +\r\n res.Blocker[x].CurrentValue +\r\n \"
\";\r\n break;\r\n case nameof(\"Modules\"):\r\n deleteText +=\r\n this.translateService.instant(\"EquipmentDetail._delete_imCount\") +\r\n \": \" +\r\n res.Blocker[x].CurrentValue +\r\n \"
\";\r\n break;\r\n case nameof(\"Images\"):\r\n deleteText +=\r\n this.translateService.instant(\"EquipmentDetail._delete_imageCount\") +\r\n \": \" +\r\n res.Blocker[x].CurrentValue +\r\n \"
\";\r\n break;\r\n case nameof(\"MaintenanceContractMappings\"):\r\n deleteText +=\r\n this.translateService.instant(\"EquipmentDetail._delete_maintenanceContractMappingsCount\") +\r\n \": \" +\r\n res.Blocker[x].CurrentValue +\r\n \"
\";\r\n break;\r\n case nameof(\"InspectionDuties\"):\r\n deleteText +=\r\n this.translateService.instant(\"EquipmentDetail._delete_inspectionDutiesCount\") +\r\n \": \" +\r\n res.Blocker[x].CurrentValue +\r\n \"
\";\r\n break;\r\n case nameof(\"Events\"):\r\n deleteText +=\r\n this.translateService.instant(\"EquipmentDetail._delete_incidentsCount\") +\r\n \": \" +\r\n res.Blocker[x].CurrentValue +\r\n \"
\";\r\n break;\r\n default:\r\n break;\r\n }\r\n x++;\r\n }\r\n\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n this.translateService.instant(\"EquipmentDetail._delete_error\", { deleteInfo: deleteText })\r\n );\r\n }\r\n }\r\n\r\n editInspectionDuties(): void {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\"equipment\", this.installEquipmentId, \"edit\", \"inspection-duties\"],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n editIncidents(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.buildingId,\r\n { outlets: { left: [\"list\"], right: [\"building\", \"view\", { outlets: { tab: [\"incident\"] } }] } },\r\n ]);\r\n }\r\n\r\n createIncidents(): void {\r\n this.router.navigate([\"building\", \"wizard\", this.buildingId, \"incident\"]);\r\n }\r\n\r\n private close(): void {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.installEquipment.Identity,\r\n { outlets: { left: [\"list\"], right: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }] } },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n goToContracts(): void {\r\n this.router.navigate([\"/contract\"]);\r\n }\r\n\r\n goToTodoInspections(): void {\r\n const url = this.router\r\n .createUrlTree(\r\n [\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\r\n \"equipment\",\r\n this.installEquipmentId,\r\n \"view\",\r\n { outlets: { tab: [\"incident\", { outlets: { incidentstyle: [\"list\", { tab: [\"todoFuture\"] }] } }] } },\r\n ],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n )\r\n .toString();\r\n this.router.navigateByUrl(\"/skipThisPage\", { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n }\r\n\r\n goToOverdueInspections(): void {\r\n const url = this.router\r\n .createUrlTree(\r\n [\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\r\n \"equipment\",\r\n this.installEquipmentId,\r\n \"view\",\r\n { outlets: { tab: [\"incident\", { outlets: { incidentstyle: [\"list\", { tab: [\"overdue\"] }] } }] } },\r\n ],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n )\r\n .toString();\r\n this.router.navigateByUrl(\"/skipThisPage\", { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n }\r\n\r\n goToDefectInspections(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"defect\"] } }],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n goToDocuments(): void {\r\n this.router.navigate([\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"document\", { outlets: { tab: [\"building-equipment\"] } }],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n onImageUpload(event): void {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Select(\"Images\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(img.Identity))\r\n .Raw()\r\n .ToUrlString(false);\r\n return img;\r\n })\r\n )\r\n )\r\n .subscribe((res) => {\r\n this.images = res;\r\n this.imgIdx = this.images.length - 1;\r\n this.imageUploadService.resetCurrentImageUploadModel();\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n this.imageUploadModel.entityType = \"Equipment\";\r\n })\r\n );\r\n }\r\n\r\n onAddFile(file: FileItem): void {\r\n this.imageUploadModel.file.push(file);\r\n }\r\n\r\n nextImg(): void {\r\n this.imgIdx++;\r\n if (this.imgIdx === this.images.length) {\r\n this.imgIdx = 0;\r\n }\r\n }\r\n\r\n prevImg(): void {\r\n this.imgIdx--;\r\n if (this.imgIdx === -1) {\r\n this.imgIdx = this.images.length - 1;\r\n }\r\n }\r\n\r\n async deleteImg(): Promise {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentDetail._deleteImage_modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentDetail._deleteImage_modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentDetail._deleteImage_modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"EquipmentDetail._deleteImage_modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then(async (val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.odataCoreService.Image.Delete().Key(Guid.parse(this.images[this.imgIdx].Identity)).Exec();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"EquipmentDetail._deleteImage_success\"));\r\n // reload images after delete\r\n let res = await this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Select(\"Images\")\r\n .Exec()\r\n .then((x) => x.value);\r\n let res2 = res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(img.Identity))\r\n .Raw()\r\n .ToUrlString(false);\r\n return img;\r\n });\r\n this.images = res2;\r\n // nav to next image after the deleted one\r\n this.prevImg();\r\n this.nextImg();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n async sortImg(): Promise {\r\n if (this.images.length == 2) {\r\n await this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(this.images[this.imgIdx].Identity))\r\n .Actions()\r\n .SortInOperationsOnImageInPropertyCore()\r\n .Parameters(Guid.createEmpty().toString())\r\n .Execute();\r\n await this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(this.images[this.imgIdx].Identity))\r\n .Actions()\r\n .SortInOperationsOnImageInPropertyCore()\r\n .Parameters(Guid.createEmpty().toString())\r\n .Execute();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"EquipmentDetail._sortImage_success\"));\r\n // reload images after sort\r\n let res = await this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Select(\"Images\")\r\n .Exec()\r\n .then((x) => x.value);\r\n let res2 = res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n });\r\n this.images = res2;\r\n // nav to first image\r\n this.imgIdx = 0;\r\n } else {\r\n await this.odataCoreService.Image.Get()\r\n .Key(Guid.parse(this.images[this.imgIdx].Identity))\r\n .Actions()\r\n .SortInOperationsOnImageInPropertyCore()\r\n .Parameters(Guid.createEmpty().toString())\r\n .Execute();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"EquipmentDetail._sortImage_success\"));\r\n // reload images after sort\r\n let res = await this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Expand((x) => {\r\n x.Expand(\"Images\", (x) => x.OrderBy(\"Order\", \"asc\"));\r\n })\r\n .Select(\"Images\")\r\n .Exec()\r\n .then((x) => x.value);\r\n let res2 = res[0].Images.map((img) => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n });\r\n this.images = res2;\r\n // nav to first image\r\n this.imgIdx = 0;\r\n }\r\n }\r\n\r\n showImg(): void {\r\n this.popupService.openImagePreviewModal(this.images[this.imgIdx].DownloadToken);\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\n\r\nimport {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {AuthService} from '../../../core/auth/auth.service';\r\nimport {AttributeDTO} from '../../../core/model/attributeDTO';\r\nimport {ConfirmationModal} from '../../../core/popup/confirmation.modal';\r\nimport {Utils} from '../../../core/tools/utils';\r\nimport {InstallEquipmentService} from '../../installEquipment.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from 'app/core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-equipment-feature-edit',\r\n templateUrl: './equipment-feature-edit.component.html',\r\n styleUrls: ['./equipment-feature-edit.component.scss']\r\n})\r\nexport class EquipmentFeatureEditComponent implements OnInit, OnDestroy {\r\n\r\n equipment: PropertyCore.Equipment;\r\n buildingId: string;\r\n showClose: boolean;\r\n\r\n years: string[];\r\n installEquipmentId: string;\r\n attributeContainerId: number[] = [];\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray: any[] = [];\r\n attributeChanged: any[] = [];\r\n\r\n formSubmitted: boolean;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private equipmentService: InstallEquipmentService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe((params) => this.buildingId = params.get('id')));\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.installEquipmentId = params.get('id');\r\n return from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(this.installEquipmentId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }))\r\n .subscribe(res => this.equipment = res));\r\n \r\n\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Building.Query()\r\n .Select(\"AttributeTypeSets\")\r\n .Expand(x => {\r\n x.Expand(\"AttributeTypeSets\", y => {\r\n y.Expand(\"AttributeTypes\", z => {\r\n z.Expand(\"MeasurementUnit\")\r\n z.OrderBy(\"Order\", \"asc\")\r\n })\r\n })\r\n })\r\n .Filter(x => x.EqualsField(\"Identity\", Guid.parse(this.buildingId)))\r\n .Exec()\r\n .then(x => x.value)).pipe(map(res => res[0]))\r\n .subscribe(res1 => {\r\n this.subscriptions.add(this.route.parent.parent.paramMap.pipe(switchMap((params: ParamMap) => \r\n from(this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Select(\"Identity\",\"Name\",\"AttributeValues\")\r\n .Expand(x => \r\n x.Expand(\"AttributeValues\"))\r\n .Exec()\r\n .then(x => x.value))))\r\n .pipe(map(res => res[0]))\r\n .subscribe(res => {\r\n let a: number = 0;\r\n\r\n while(res1.AttributeTypeSets.length > a){\r\n let b: number = 0;\r\n\r\n while(res1.AttributeTypeSets[a].AttributeTypes.length > b){\r\n \r\n let attributeItem = res.AttributeValues.find(x => x.Id == res1.AttributeTypeSets[a].AttributeTypes[b].Id); \r\n\r\n if(attributeItem){ \r\n\r\n attributeItem['Description'] = res1.AttributeTypeSets[a].AttributeTypes[b].Description;\r\n attributeItem['Name'] = res1.AttributeTypeSets[a].AttributeTypes[b].Name;\r\n attributeItem['MeasurementUnit'] = res1.AttributeTypeSets[a].AttributeTypes[b].MeasurementUnit;\r\n attributeItem['IsOptional'] = res1.AttributeTypeSets[a].AttributeTypes[b].IsOptional;\r\n attributeItem['AttributeCategory'] = res1.AttributeTypeSets[a].Name;\r\n attributeItem['ValueType'] = res1.AttributeTypeSets[a].AttributeTypes[b].ValueType;\r\n attributeItem['AllowedValues'] = res1.AttributeTypeSets[a].AttributeTypes[b].AllowedValues;\r\n\r\n if(attributeItem['ValueType'] == 'Date'){\r\n attributeItem['ValueDate'] = Utils.jsonToDate(attributeItem['Value']);\r\n }\r\n \r\n this.attributesCategories.push(attributeItem);\r\n this.attributesCategoryNames.push(attributeItem['AttributeCategory']);\r\n }\r\n b++;\r\n }\r\n a++;\r\n }\r\n \r\n this.categoryArray = this.attributesCategoryNames.filter((element, index, input) => {\r\n if (input.indexOf(element) === index) { \r\n return element\r\n }\r\n })\r\n })\r\n );\r\n }));\r\n\r\n this.showClose = this.route.snapshot.data.close;\r\n\r\n this.years = Utils.yearsTillToday();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentFeatureEdit._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentFeatureEdit._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentFeatureEdit._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('EquipmentFeatureEdit._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['equipment']}}],\r\n right: ['equipment', this.equipment.Identity, 'view', {outlets: {tab: ['features']}}]\r\n }\r\n }], {queryParamsHandling: 'merge'});\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['equipment']}}],\r\n right: ['equipment', this.equipment.Identity, 'view', {outlets: {tab: ['features']}}]\r\n }\r\n }], {queryParamsHandling: 'merge'});\r\n }\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n // transform and save attributes\r\n const attributes: AttributeDTO[] = this.attributesCategories\r\n .filter(attribute => attribute.Value !== undefined)\r\n .map(attribute => {\r\n const attributeDto = new AttributeDTO;\r\n attributeDto.Id = attribute.Id;\r\n attributeDto.Value = attribute['ValueType'] == 'Date' ? Utils.dateToJson(attribute['ValueDate']) : attribute.Value;\r\n return attributeDto;\r\n });\r\n\r\n let b = 0;\r\n while(this.attributeContainerId.length > b){\r\n let filterAttributesChanged = attributes.find(x => x.Id == this.attributeContainerId[b])\r\n this.attributeChanged.push(filterAttributesChanged);\r\n b++;\r\n }\r\n \r\n if (this.attributeChanged.length) {\r\n await this.attributeChanged.forEach(async res => {\r\n let checkValueNull;\r\n if(res.Value == null){\r\n checkValueNull = true;\r\n } else {\r\n checkValueNull = false;\r\n }\r\n\r\n await this.odataCoreService.Equipment\r\n .Get()\r\n .Key(Guid.parse(this.equipment.Identity))\r\n .NavigateToArray(\"AttributeValues\")\r\n .Patch()\r\n .Key(res.Id)\r\n .ValueType(this.odataCoreService.ODataTypes().AttributeValue())\r\n .ValueProperty(\"Value\", checkValueNull ? \"\" : res.Value.toString())\r\n .Exec();\r\n })\r\n this.close(false);\r\n } else {\r\n this.close(false);\r\n }\r\n }\r\n\r\n onAttributeValueChange(attributeId: number) {\r\n if(this.attributeContainerId.indexOf(attributeId) === -1) {\r\n this.attributeContainerId.push(attributeId);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap, Router } from \"@angular/router\";\r\nimport { Subscription, from } from \"rxjs\";\r\nimport { switchMap, map } from \"rxjs/operators\";\r\n\r\nimport { PropertyCore } from \"../../core/odata/odata.coreapi\";\r\nimport { Utils } from \"./../../core/tools/utils\";\r\nimport { InstallEquipmentService } from \"./../installEquipment.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"app/core/odata/odataclient\";\r\n\r\n@Component({\r\n selector: \"app-equipment-feature\",\r\n templateUrl: \"./equipment-feature.component.html\",\r\n styleUrls: [\"./equipment-feature.component.scss\"],\r\n})\r\nexport class EquipmentFeatureComponent implements OnInit, OnDestroy {\r\n installEquipmentId: string;\r\n buildingId: string;\r\n installEquipment: PropertyCore.Equipment;\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray: any[] = [];\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private equipmentService: InstallEquipmentService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap.subscribe(\r\n (params: ParamMap) => (this.buildingId = params.get(\"id\"))\r\n )\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n this.installEquipmentId = params.get(\"id\");\r\n return from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Expand((x) =>\r\n x\r\n .Expand(\"Building\")\r\n .Expand(\"EquipmentType\")\r\n .Expand(\"Room\", (y) => y.Expand(\"Floor\"))\r\n )\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])));\r\n })\r\n )\r\n .subscribe((res) => {\r\n this.installEquipment = res;\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.installEquipmentId))\r\n .Select(\"Identity\", \"Name\", \"AttributeValues\")\r\n .Expand((x) => x.Expand(\"AttributeValues\"))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n )\r\n )\r\n .pipe(map((res) => res[0]))\r\n .subscribe((equipment) => {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.AttributeType.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Set\");\r\n x.Expand(\"MeasurementUnit\");\r\n })\r\n .OrderBy(\"Order\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n ).subscribe((attributeTypes) => {\r\n let a: number = 0;\r\n\r\n while (attributeTypes.length > a) {\r\n let attributeItem = equipment.AttributeValues.find(\r\n (x) => x.Id == attributeTypes[a].Id\r\n );\r\n if (attributeItem) {\r\n attributeItem[\"Description\"] = attributeTypes[a].Description;\r\n attributeItem[\"Name\"] = attributeTypes[a].Name;\r\n attributeItem[\"MeasurementUnit\"] =\r\n attributeTypes[a].MeasurementUnit;\r\n attributeItem[\"IsOptional\"] = attributeTypes[a].IsOptional;\r\n attributeItem[\"AttributeCategory\"] = attributeTypes[a].Set;\r\n attributeItem[\"ValueType\"] = attributeTypes[a].ValueType;\r\n\r\n this.attributesCategories.push(attributeItem);\r\n if (attributeItem.Value != null || \"\") {\r\n this.attributesCategoryNames.push(\r\n attributeItem[\"AttributeCategory\"].Name\r\n );\r\n }\r\n }\r\n a++;\r\n }\r\n\r\n this.categoryArray = this.attributesCategoryNames.filter(\r\n (element, index, input) => {\r\n if (input.indexOf(element) === index) {\r\n return element;\r\n }\r\n }\r\n );\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n edit(): void {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\"equipment\", this.installEquipmentId, \"edit\", \"feature\"],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n private close(): void {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.installEquipment.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service'\r\n\r\n@Component({\r\n selector: 'app-equipment-history',\r\n templateUrl: './equipment-history.component.html',\r\n styleUrls: ['./equipment-history.component.scss']\r\n})\r\nexport class EquipmentHistoryComponent implements OnInit, OnDestroy {\r\n\r\n histories: any[];\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => \r\n from(this.odataCoreService.InspectionDutyUpdate.Query() \r\n .Expand(x => {\r\n x.Expand(\"User\", y=> {\r\n y.Select(\"Identity\")\r\n y.Select(\"FirstName\")\r\n y.Select(\"IsTuevEmployee\")\r\n y.Select(\"LastName\")\r\n }),\r\n x.Expand(\"Histories\", \r\n y => {\r\n y.Expand(\"Duty\", z => {\r\n z.Expand(\"Equipment\", a => {\r\n a.Select(\"Identity\")\r\n })\r\n z.Expand(\"Schedule\", a => {\r\n a.Select(\"Identity\")\r\n a.Select(\"CycleStart\")\r\n })\r\n z.Expand(\"OperatorTask\", a => {\r\n a.Select(\"Identity\")\r\n a.Select(\"Guidelines\")\r\n })\r\n })\r\n })\r\n })\r\n .Filter(x => x\r\n .Any(\"Histories\",\"a:a/Duty/Equipment/Identity eq \" + Guid.parse(params.get('id')) +\"\").And\r\n .Any(\"Histories\",\"a:a/Duty/IsDisabled eq false\"))\r\n .OrderBy(\"Timestamp\", \"asc\")\r\n .Exec()\r\n .then(x => x.value)\r\n )))\r\n .subscribe(res => {\r\n this.histories = res\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Observable, Subscription, from} from 'rxjs';\r\nimport {flatMap, switchMap, tap, map} from 'rxjs/operators';\r\n\r\nimport {IncidentCreateOuputData} from '../../core/components/incident/incident-create-output-data';\r\nimport {Incident} from '../../core/model/incident';\r\nimport {IncidentState} from '../building-incident/incident-state.service';\r\nimport {NavigatorService} from '../../core/shared/navigator.service';\r\nimport {DocumentType} from '../wizard/document/document-wizard-model';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-equipment-incident-detail',\r\n templateUrl: './equipment-incident-detail.component.html',\r\n styleUrls: ['./equipment-incident-detail.component.scss']\r\n})\r\nexport class EquipmentIncidentDetailComponent implements OnInit, OnDestroy {\r\n incident$: Observable;\r\n defects$: Observable;\r\n\r\n equipmentUT: string;\r\n buildingUT: string;\r\n incidentUT: string;\r\n showClose: boolean;\r\n isIncidentView: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: IncidentState,\r\n private navigator: NavigatorService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.incident$ = this.route.paramMap.pipe(\r\n tap(params => this.incidentUT = params.get('id')),\r\n switchMap((params: ParamMap) => this.getIncidentUsingIdentity(+params.get('id'))));\r\n \r\n this.defects$ = this.incident$.pipe(flatMap(inc => from(this.odataCoreService.Event.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Parent\", \"Identity\"), Guid.parse(inc.Identity)))\r\n .Expand(x => {\r\n x.Expand(\"Parent\", y => {\r\n y.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Schedule\"),\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\"),\r\n y.Select(\"CustomId\")\r\n }),\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Incident(), i);\r\n })))\r\n ));\r\n\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe((params: ParamMap) => this.buildingUT = params.get('id')));\r\n this.subscriptions.add(this.route.parent.firstChild.paramMap.subscribe((params: ParamMap) => this.equipmentUT = params.get('id')));\r\n this.showClose = this.route.snapshot.data.close;\r\n\r\n try {\r\n this.isIncidentView = this.route.snapshot.parent.firstChild.firstChild.firstChild.url[0].path === 'incident';\r\n } finally {\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(): void {\r\n this.router.navigate(['building', this.buildingUT,\r\n {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['equipment']}}],\r\n right: ['equipment', this.equipmentUT, 'view', {outlets: {tab: ['incident', {outlets: {'incidentstyle': ['list']}}]}}]\r\n }\r\n }], {queryParamsHandling: 'merge'});\r\n\r\n }\r\n\r\n\r\n handleCreateRequest(data: IncidentCreateOuputData): void {\r\n this.router.navigate(['building', 'wizard', data.buildingUT, 'defect', data.incidentId]);\r\n }\r\n\r\n handleRefreshRequest(msg: string): void {\r\n this.state.notify(msg);\r\n }\r\n\r\n handlePostSaveRequest(): void {\r\n this.navigator.provideBackUrl(this.router.routerState.snapshot.url, IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT);\r\n this.router.navigate(['building', 'wizard', this.buildingUT, 'document', 'building'], {\r\n queryParams: {\r\n type: DocumentType.INCIDENT,\r\n incidentId: this.incidentUT,\r\n returnUrl: true\r\n }, queryParamsHandling: 'merge'\r\n });\r\n }\r\n\r\n\r\n getIncidentUsingIdentity(identity: number): Observable {\r\n return from(this.odataCoreService.Event.Query()\r\n .Expand(x => {\r\n x.Expand(\"Response\"),\r\n x.Expand(\"Schedule\", xa => {\r\n xa.Expand(\"InspectionDuty\", xaa => {\r\n xaa.Select(\"Id\"),\r\n xaa.Expand(\"OperatorTask\", xaaa => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\")\r\n })\r\n }),\r\n xa.Expand(\"MaintenanceContract\", xab => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", xabb => {\r\n xabb.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"Building\", xb => {\r\n xb.Select(\"Name\"),\r\n xb.Select(\"Id\"),\r\n xb.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Equipment\", xc => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\"),\r\n xc.Expand(\"Room\", xcc => {\r\n xcc.Select(\"Name\"),\r\n xcc.Select(\"Id\"),\r\n xcc.Select(\"Identity\")\r\n xcc.Expand(\"Floor\", xccc => {\r\n xccc.Select(\"Id\"),\r\n xccc.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"ServiceProvider\", xd => {\r\n xd.Select(\"Name\"),\r\n xd.Select(\"Id\"),\r\n xd.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Module\", xe => {\r\n xe.Select(\"Name\"),\r\n xe.Select(\"Id\"),\r\n xe.Select(\"Identity\"),\r\n xe.Expand(\"ModuleType\", xee => {\r\n xee.Select(\"Code\"),\r\n xee.Select(\"Id\"),\r\n xee.Select(\"Name\")\r\n })\r\n })\r\n x.Expand(\"KpiMarker\")\r\n })\r\n .Filter(x => x\r\n .EqualsField(\"Id\", (identity)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Incident(), res[0])\r\n }))\r\n}\r\n\r\n}\r\n\r\n\r\n","import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {map, startWith, switchMap, tap} from 'rxjs/operators';\r\nimport {IncidentDetailLinkOutputData} from '../../core/components/incident/incident-detail-link-output-data';\r\nimport {IncidentListInputData} from '../../core/components/incident/incident-list-input-data';\r\nimport {IncidentType} from '../../core/components/incident/incident-type';\r\nimport {IncidentView} from '../../core/components/incident/incident-view';\r\nimport {NavigatorService} from '../../core/shared/navigator.service';\r\nimport {IncidentState} from '../building-incident/incident-state.service';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Incident } from '../../core/model/incident';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-incident-list',\r\n templateUrl: './equipment-incident-list.component.html',\r\n styleUrls: ['./equipment-incident-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class EquipmentIncidentListComponent implements OnInit, OnDestroy {\r\n\r\n currentViewTab: IncidentView;\r\n\r\n currentTypeTab: IncidentType = IncidentType.NONE;\r\n\r\n inputData: IncidentListInputData = new IncidentListInputData();\r\n buildingId: string;\r\n equipmentId: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: IncidentState,\r\n private navigator: NavigatorService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.allowedViews = [IncidentView.ALL, IncidentView.TODOFUTURE, IncidentView.DONE, IncidentView.OVERDUE];\r\n\r\n this.inputData.variableScrollHeight = '431';\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe((params: ParamMap) => this.buildingId = params.get('id')));\r\n this.inputData.allIncidents$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return this.route.parent.parent.parent.paramMap\r\n .pipe(\r\n tap(params => (this.equipmentId = params.get('id'))),\r\n switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Event.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(params.get('id')))\r\n )\r\n .Select(\"Identity\", \"Id\", \"Type\", \"Guidelines\", \"DueDate\")\r\n .Expand(x => {\r\n x.Expand(\"Schedule\", xa => {\r\n xa.Select(\"CycleUnit\"),\r\n xa.Select(\"Cycle\"),\r\n xa.Expand(\"InspectionDuty\", xaa => {\r\n xaa.Select(\"OperatorTask\"),\r\n xaa.Expand(\"OperatorTask\", xaaa => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\")\r\n })\r\n }),\r\n xa.Expand(\"MaintenanceContract\", xab => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", xabb => {\r\n xabb.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"Building\", xb => {\r\n xb.Select(\"Name\"),\r\n xb.Select(\"Id\"),\r\n xb.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Equipment\", xc => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\")\r\n }),\r\n x.Expand(\"ServiceProvider\", xd => {\r\n xd.Select(\"Name\"),\r\n xd.Select(\"Id\"),\r\n xd.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Documents\", xe => {\r\n xe.Select(\"DocumentType\"),\r\n xe.Expand(\"DocumentType\", xea => {\r\n xea.Select(\"Id\"),\r\n xea.Select(\"Name\")\r\n })\r\n }),\r\n x.Expand(\"KpiMarker\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Incident(), i)\r\n })))\r\n }),\r\n tap(inc => {\r\n inc.sort((a, b) => {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n }));\r\n }));\r\n\r\n this.inputData.currentView$ = this.route.paramMap\r\n .pipe(map(p => IncidentView.getIncidentView(p.get('tab'))), tap(val => (this.currentViewTab = val)));\r\n\r\n this.inputData.currentType$ = this.route.paramMap\r\n .pipe(map(p => IncidentType.getIncidentType(p.get('subtab'))), tap(val => (this.currentTypeTab = val)));\r\n\r\n this.inputData.currentIncidentId$ = this.route.parent.parent.parent.parent.children[1].paramMap\r\n .pipe(map(params => +params.get('id')));\r\n\r\n this.inputData.showEquipmentData = false;\r\n\r\n if (this.navigator.getNavigationAction() === IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT) {\r\n this.inputData.navigateToFirstListItem = true;\r\n }\r\n this.navigator.finishNavigation();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleViewTabChangeRequest($event: string) {\r\n this.currentViewTab = IncidentView.getIncidentView($event);\r\n this.router.navigate([{tab: [this.currentViewTab]}], {relativeTo: this.route, queryParamsHandling: 'merge'});\r\n }\r\n\r\n handleTypeTabChangeRequest($event: string) {\r\n this.currentTypeTab = IncidentType.getIncidentType($event);\r\n this.router.navigate([{tab: [this.currentViewTab], subtab: [this.currentTypeTab]}], {\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge'\r\n });\r\n }\r\n\r\n handleDetailPageRequest($event: IncidentDetailLinkOutputData) {\r\n const id = $event.id;\r\n const subTab = $event.type;\r\n\r\n if (subTab) {\r\n this.router.navigate([\r\n 'building',\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: [\r\n 'equipment', this.equipmentId, 'view',\r\n {\r\n outlets: {\r\n tab: ['incident', {\r\n outlets: {\r\n 'incidentstyle': ['list', {\r\n tab: [this.currentViewTab],\r\n subtab: [subTab]\r\n }]\r\n }\r\n }]\r\n }\r\n }\r\n ],\r\n right: ['equipment', 'incident', id]\r\n }\r\n }\r\n ]);\r\n } else {\r\n this.router.navigate([\r\n 'building',\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: ['equipment', this.equipmentId, 'view', {outlets: {tab: ['incident', {outlets: {'incidentstyle': ['list', {tab: ['all']}]}}]}}],\r\n right: ['equipment', 'incident', id]\r\n }\r\n }\r\n ]);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { Subject, Subscription, from } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { PropertyCore } from \"../../core/odata/odata.coreapi\";\r\nimport { EquipmentListInputData } from \"../../core/components/equipment/equipment-list-input-data\";\r\nimport { InstallEquipmentKpiFilter } from \"../kpiFilter.enum\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\nimport { ODataPath } from \"../../core/odata/odataclient\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { Utils } from \"../../core/tools/utils\";\r\n\r\n@Component({\r\n selector: \"app-equipment-list\",\r\n templateUrl: \"./equipment-list.component.html\",\r\n styleUrls: [\"./equipment-list.component.scss\"],\r\n})\r\nexport class EquipmentListComponent implements OnInit, OnDestroy {\r\n inputData: EquipmentListInputData = new EquipmentListInputData();\r\n subject: Subject = new Subject();\r\n\r\n buildingUT: string;\r\n\r\n selectedInstallEquipmentUT: string = null;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n private ieSubscription: Subscription = new Subscription();\r\n\r\n private presetFilter: number;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.inputData.showEquipmentTypeData = true;\r\n this.inputData.equipments$ = from(\r\n this.odataCoreService.EquipmentType.Query()\r\n .OrderBy(\"Name\")\r\n .Exec()\r\n .then((x) => x.value)\r\n );\r\n this.inputData.installEquipments$ = this.subject.asObservable();\r\n\r\n this.subscriptions.add(this.route.queryParamMap.subscribe((params) => (this.presetFilter = +params.get(\"filter\"))));\r\n if (this.presetFilter) {\r\n this.inputData.presetFilter = this.presetFilter;\r\n } else {\r\n this.inputData.presetFilter = InstallEquipmentKpiFilter.Undefined;\r\n }\r\n\r\n this.subscriptions.add(\r\n this.route.root.firstChild.paramMap.subscribe((params) => {\r\n this.buildingUT = params.get(\"id\");\r\n this.handleKpiFilterChange(this.inputData.presetFilter);\r\n })\r\n );\r\n\r\n this.inputData.currentInstallEquipmentUT$ = this.route.root.firstChild.children[1].paramMap.pipe(\r\n map((params) => params.get(\"id\"))\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n this.ieSubscription.unsubscribe();\r\n }\r\n\r\n handleEquipmentWizardRequest() {\r\n this.router.navigate([\"/building\", \"wizard\", this.buildingUT, \"equipment\"]);\r\n }\r\n\r\n handleDetailPageRequest(installEquipmentUT: string) {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\"equipment\", installEquipmentUT, \"view\", { outlets: { tab: [\"details\"] } }],\r\n },\r\n },\r\n ],\r\n { queryParams: { filter: this.presetFilter }, queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n handleKpiFilterChange(kpiFilter: InstallEquipmentKpiFilter) {\r\n if (kpiFilter !== this.presetFilter || kpiFilter !== this.inputData.presetFilter) {\r\n this.presetFilter = kpiFilter;\r\n this.inputData.presetFilter = kpiFilter;\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: { filter: this.presetFilter },\r\n queryParamsHandling: \"merge\",\r\n });\r\n }\r\n\r\n this.ieSubscription.unsubscribe();\r\n\r\n this.ieSubscription = from(\r\n this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"EquipmentType/Name,CustomId,Name\", \"asc\")\r\n .Filter((x) => x.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.buildingUT)))\r\n .Expand((x) => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", (y) => {\r\n y.Expand(\"Floor\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe((x) => {\r\n this.subject.next(x);\r\n });\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\nimport {PropertyCore} from '../../core/odata/odata.coreapi';\r\nimport {AuthService} from '../../core/auth/auth.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-module',\r\n templateUrl: './equipment-module.component.html',\r\n styleUrls: ['./equipment-module.component.scss']\r\n})\r\nexport class EquipmentModuleComponent implements OnInit, OnDestroy {\r\n\r\n installEquipmentId: string;\r\n installEquipment: PropertyCore.Equipment;\r\n selectedModuleUT: string = null;\r\n\r\n installModules: PropertyCore.Module[];\r\n canHaveModules: boolean;\r\n\r\n searchFilter: string = '';\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.parent.paramMap\r\n .pipe(switchMap((params: ParamMap) => {\r\n this.installEquipmentId = params.get('id');\r\n return from(this.odataCoreService.Module.Query()\r\n .Filter(x => x.Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(params.get('id'))))\r\n .Expand(x => {\r\n x.Expand(\"ModuleType\"),\r\n x.Expand(\"Equipment\"),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))));\r\n }), switchMap(res => {\r\n this.installModules = res;\r\n return from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(this.installEquipmentId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }))\r\n .subscribe(res => {\r\n this.installEquipment = res;\r\n\r\n // empty modules, check if this equipment can have any?\r\n if (!this.installModules || !this.installModules.length) {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.ModuleType.Query()\r\n .Filter(x => x.Equals(ODataPath.For(\"EquipmentType\", \"Id\"), this.installEquipment.EquipmentType.Id))\r\n .Count().then(x => x))\r\n .subscribe(moduleTypeCount => {\r\n if(moduleTypeCount == 0){\r\n this.canHaveModules = false;\r\n } else {\r\n this.canHaveModules = true;\r\n }\r\n }));\r\n }\r\n }));\r\n\r\n this.subscriptions.add(this.route.root.firstChild.children[1].paramMap.subscribe(params => this.selectedModuleUT = params.get('id')));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n goToDetail(installModuleUT: string) {\r\n this.router.navigate(['/building', this.installEquipment.Building.Identity, {\r\n outlets: {\r\n left: ['equipment', this.installEquipment.Identity, 'view', {outlets: {tab: ['modules']}}],\r\n right: ['equipment', 'module', installModuleUT, {outlets: {tab: ['details']}}]\r\n }\r\n }]);\r\n }\r\n\r\n installModulesWizard(): void {\r\n this.router.navigate(['building', 'wizard', this.installEquipment.Building.Identity, 'module', this.installEquipment.Identity]);\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-equipment-overview',\r\n templateUrl: './equipment-overview.component.html',\r\n styleUrls: ['./equipment-overview.component.scss']\r\n})\r\nexport class EquipmentOverviewComponent implements OnInit, OnDestroy {\r\n currentTab: string;\r\n buildingId: string;\r\n installEquipment: PropertyCore.Equipment;\r\n showClose: boolean;\r\n showMenu: boolean;\r\n isIncident: boolean;\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.showClose = this.route.snapshot.data.close;\r\n\r\n this.subscriptions.add(this.route.parent.parent.paramMap.subscribe((params: ParamMap) => (this.buildingId = params.get('id'))));\r\n this.subscriptions.add(\r\n this.route.parent.paramMap\r\n .pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }))\r\n .subscribe(res => {\r\n this.installEquipment = res\r\n }));\r\n\r\n\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], { relativeTo: this.route, queryParamsHandling: 'merge' });\r\n this.currentTab = 'details';\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n\r\n this.subscriptions.add(\r\n this.router.events\r\n .pipe(filter(event => event instanceof NavigationEnd), map(() => this.route))\r\n .subscribe(event => {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], {\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge'\r\n });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n })\r\n );\r\n\r\n if (this.route.parent.outlet === 'left') {\r\n this.showMenu = false;\r\n } else {\r\n this.showMenu = true;\r\n }\r\n if (this.route.snapshot.parent.firstChild.firstChild) {\r\n if (this.route.snapshot.parent.firstChild.firstChild.url[0].path === 'incident') {\r\n this.isIncident = true;\r\n } else {\r\n this.isIncident = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onNavChange(changeEvent: NgbNavChangeEvent) {\r\n if (this.route.outlet === 'left') {\r\n this.router.navigate([\r\n '/building',\r\n this.buildingId,\r\n {\r\n outlets: {\r\n left: ['building', 'view', { outlets: { tab: ['equipment'] } }],\r\n right: ['equipment', this.installEquipment.Identity, 'view', { outlets: { tab: [changeEvent.nextId] } }]\r\n }\r\n }\r\n ], { queryParamsHandling: 'merge' });\r\n } else {\r\n this.router.navigate([{ outlets: { tab: [changeEvent.nextId] } }], { relativeTo: this.route, queryParamsHandling: 'merge' });\r\n }\r\n }\r\n\r\n private close(): void {\r\n this.router.navigate([\r\n '/building',\r\n this.buildingId,\r\n { outlets: { left: ['list'], right: ['building', 'view', { outlets: { tab: ['equipment'] } }] } }\r\n ], { queryParamsHandling: 'merge' });\r\n }\r\n\r\n}\r\n","import { Injector, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CalendarEvent, CalendarEventTitleFormatter } from 'angular-calendar';\r\nimport { Incident } from './../../core/model/incident';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\n\r\n@Injectable()\r\nexport class CustomCalendarEventTitleFormatter extends CalendarEventTitleFormatter {\r\n\r\n translateService: TranslateService;\r\n\r\n dienstleisterData: any = null;\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n\r\n this.translateService = this.injector.get(TranslateService);\r\n }\r\n\r\n month(event: CalendarEvent): string {\r\n const equipmentData = `
\r\n ${event.meta.Equipment ? (event.meta.Equipment.CustomId ? event.meta.Equipment.CustomId : event.meta.Equipment.Name) : event.meta.Building.Name}\r\n
`;\r\n if (event.meta.Schedule != null && event.meta.Schedule.MaintenanceContract != null && event.meta.Schedule.MaintenanceContract.ServiceProvider != null && event.meta.ServiceProvider != null) {\r\n this.dienstleisterData = `
\r\n ${event.meta.ServiceProvider ? ('Wartungsvertrag Fa. ' + event.meta.Schedule.MaintenanceContract.ServiceProvider.Name + ' vom ' + event.meta.Schedule.MaintenanceContract.StartDate.toLocaleDateString()) : event.meta.Equipment.Name}\r\n
`;\r\n } else {\r\n this.dienstleisterData = `
${(event.meta.Equipment ? event.meta.Equipment.Name : event.meta.Building.Name)}
`;\r\n }\r\n return `
\r\n
\r\n
${this.TypeShort(event)}
`\r\n + (event.cssClass === 'building' ? equipmentData : (event.cssClass === 'equipment' ? (this.dienstleisterData == null ? (event.meta.Equipment ? event.meta.Equipment.Name : event.meta.Building.Name) : this.dienstleisterData) : '')) +\r\n (`
${event.meta.Guidelines}
`) +\r\n (event.meta.Schedule ? (`
${event.meta.Schedule.Cycle}` + this.translateService.instant('CycleUnitShort.' + event.meta.Schedule.CycleUnit) + `
`) :\r\n (`
1` + this.translateService.instant('CycleUnitShort.NotSpecified') + `
`)) +\r\n `
` + this.translateService.instant('IncidentStatus.' + this.Status(event)) + `
\r\n
\r\n
`;\r\n\r\n }\r\n\r\n\r\n TypeShort(event: CalendarEvent): string {\r\n switch (event.meta.Type) {\r\n case PropertyCore.EventTypes.Inspection:\r\n case PropertyCore.EventTypes.FollowUpInspection:\r\n return 'P';\r\n case PropertyCore.EventTypes.Maintenance:\r\n return 'W';\r\n case PropertyCore.EventTypes.Repair:\r\n return 'I';\r\n case PropertyCore.EventTypes.Custom:\r\n return 'S';\r\n }\r\n return '';\r\n }\r\n\r\n Status(event: CalendarEvent) {\r\n if (event.meta.IsSkipped) {\r\n return IncidentStatus.IsSkipped;\r\n }\r\n else if (event.meta.ClosedDate) {\r\n return IncidentStatus.Closed;\r\n }\r\n else if (event.meta.KpiMarker != null && event.meta.KpiMarker.IsDone) {\r\n return IncidentStatus.Executed;\r\n }\r\n else if (event.meta.KpiMarker != null && event.meta.KpiMarker.IsOverdue) {\r\n return IncidentStatus.Due;\r\n }\r\n return IncidentStatus.Open;\r\n }\r\n\r\n\r\n\r\n}\r\nenum IncidentStatus {\r\n IsSkipped = 'IsSkipped',\r\n Closed = 'Closed',\r\n Executed = 'Executed',\r\n Due = 'Due',\r\n Open = 'Open'\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CalendarEvent, CalendarEventTitleFormatter } from 'angular-calendar';\r\nimport { format, isSameDay, isSameMonth, parse, startOfDay } from 'date-fns';\r\nimport { Subject, Subscription, from } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport { CustomCalendarEventTitleFormatter } from './custom-calendar-event-title-formatter';\r\nimport { Common, PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\nconst colors: any = {\r\n red: {\r\n primary: '#ad2121',\r\n secondary: '#fae3e3'\r\n },\r\n blue: {\r\n primary: '#1e90ff',\r\n secondary: '#d1e8ff'\r\n },\r\n green: {\r\n primary: '#9de308',\r\n secondary: '#e8fdba'\r\n }\r\n};\r\n\r\n\r\n@Component({\r\n selector: 'app-incident-calendar',\r\n templateUrl: './incident-calendar.component.html',\r\n styleUrls: ['./incident-calendar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: CalendarEventTitleFormatter,\r\n useClass: CustomCalendarEventTitleFormatter\r\n }\r\n ]\r\n})\r\nexport class IncidentCalendarComponent implements OnInit, OnDestroy {\r\n\r\n location: string;\r\n\r\n buildingId: string;\r\n equipmentId: string;\r\n\r\n viewDate: Date = new Date();\r\n\r\n view: string = 'month';\r\n\r\n events: CalendarEvent[] = [];\r\n\r\n refresh: Subject = new Subject();\r\n\r\n activeDayIsOpen: boolean = false;\r\n\r\n lang: string = 'de';\r\n\r\n incidents: PropertyCore.Event[];\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n dienstleisterData: any = null;\r\n\r\n typeshortvalue: string;\r\n statusvalue: string;\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.location = this.route.snapshot.data.location;\r\n\r\n if (this.location === 'building') {\r\n this.subscriptions.add(this.route.root.firstChild.paramMap\r\n .pipe(tap(params => this.buildingId = params.get('id')), switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.Event\r\n .Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true).And\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(params.get('id'))))\r\n .Select(\"Identity\", \"Id\", \"Type\", \"Guidelines\", \"DueDate\")\r\n .Expand(x => {\r\n x.Expand(\"Schedule\", y => {\r\n y.Select(\"CycleUnit\");\r\n y.Select(\"Cycle\");\r\n y.Expand(\"InspectionDuty\", y => {\r\n y.Select(\"OperatorTask\");\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Guidelines\");\r\n z.Select(\"Qualification\");\r\n });\r\n });\r\n y.Expand(\"MaintenanceContract\", z => {\r\n z.Select(\"StartDate\");\r\n z.Expand(\"ServiceProvider\", za => {\r\n za.Select(\"Name\");\r\n })\r\n });\r\n });\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n y.Select(\"CustomId\");\r\n });\r\n x.Expand(\"ServiceProvider\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"KpiMarker\");\r\n })\r\n .OrderBy(\"DueDate\", \"asc\")\r\n .Exec()\r\n .then(x =>\r\n x.value\r\n ))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n .pipe(tap(inc => {\r\n inc.sort((a, b) => {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n }))))\r\n .subscribe(res => this.createCalendarEventsFromIncidents(res)));\r\n } else if (this.location === 'equipment') {\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe((params: ParamMap) => this.buildingId = params.get('id')));\r\n this.subscriptions.add(this.route.parent.parent.parent.paramMap\r\n .pipe(tap(params => this.equipmentId = params.get('id')), switchMap((params: ParamMap) => from(this.odataCoreService.Event\r\n .Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true).And\r\n .Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(params.get('id'))))\r\n .Select(\"Identity\", \"Id\", \"Type\", \"Guidelines\", \"DueDate\")\r\n .Expand(x => {\r\n x.Expand(\"Schedule\", y => {\r\n y.Select(\"CycleUnit\");\r\n y.Select(\"Cycle\");\r\n y.Expand(\"InspectionDuty\", y => {\r\n y.Select(\"OperatorTask\");\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Guidelines\");\r\n z.Select(\"Qualification\");\r\n });\r\n });\r\n y.Expand(\"MaintenanceContract\", z => {\r\n z.Select(\"StartDate\");\r\n z.Expand(\"ServiceProvider\", za => {\r\n za.Select(\"Name\");\r\n })\r\n });\r\n });\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n y.Select(\"CustomId\");\r\n });\r\n x.Expand(\"ServiceProvider\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"KpiMarker\");\r\n })\r\n .OrderBy(\"DueDate\", \"asc\")\r\n .Exec()\r\n .then(x =>\r\n x.value\r\n ))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))))\r\n .subscribe(res => this.createCalendarEventsFromIncidents(res)));\r\n } else {\r\n console.error('unknown incident calendar location!', this.location);\r\n }\r\n\r\n\r\n if (this.route.snapshot.params.date) {\r\n const date = parse(this.route.snapshot.params.date, 'yyyy-MM-dd', new Date());\r\n if (!isNaN(date.getTime())) {\r\n this.viewDate = date;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n dayClicked({ date, events }: { date: Date; events: CalendarEvent[] }): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n if (\r\n (isSameDay(this.viewDate, date) && this.activeDayIsOpen === true) ||\r\n events.length === 0\r\n ) {\r\n this.activeDayIsOpen = false;\r\n } else {\r\n this.activeDayIsOpen = true;\r\n this.viewDate = date;\r\n }\r\n }\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n if (this.location === 'building') {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['building', 'view', { outlets: { tab: ['incident', { outlets: { 'incidentstyle': ['calendar', { date: format(this.viewDate, 'yyyy-MM-dd') }] } }] } }],\r\n right: ['incident', event.meta.Id]\r\n }\r\n }]);\r\n } else if (this.location === 'equipment') {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['equipment', this.equipmentId, 'view', { outlets: { tab: ['incident', { outlets: { 'incidentstyle': ['calendar', { date: format(this.viewDate, 'yyyy-MM-dd') }] } }] } }],\r\n right: ['equipment', 'incident', event.meta.Id]\r\n }\r\n }]);\r\n } else {\r\n console.error('unknown incident calendar location!', this.location);\r\n }\r\n }\r\n\r\n createCalendarEventsFromIncidents(incidents: PropertyCore.Event[]): void {\r\n this.incidents = incidents;\r\n\r\n incidents.forEach(inc => {\r\n const equipmentData = (inc.Equipment ? (inc.Equipment.CustomId ? inc.Equipment.CustomId : inc.Equipment.Name) : inc.Building.Name) + ', ';\r\n if (inc.Schedule != null && inc.Schedule.MaintenanceContract != null && inc.Schedule.MaintenanceContract.ServiceProvider != null && inc.ServiceProvider != null && inc.Equipment != null) {\r\n this.dienstleisterData = inc.Schedule.MaintenanceContract.ServiceProvider ? ('Wartungsvertrag Fa. ' + inc.Schedule.MaintenanceContract.ServiceProvider.Name + ' vom ' + inc.Schedule.MaintenanceContract.StartDate.toLocaleDateString()) : inc.Equipment.Name;\r\n } else {\r\n this.dienstleisterData = (inc.Equipment ? inc.Equipment.Name : inc.Building.Name);\r\n }\r\n\r\n const event: CalendarEvent = {\r\n start: startOfDay(inc.DueDate),\r\n title: this.TypeShort(inc.Type) + ', ' + (this.location === 'building' ? equipmentData : (this.location === 'equipment' ? (this.dienstleisterData == null ? (inc.Equipment ? inc.Equipment.Name : inc.Building.Name) : this.dienstleisterData) : '')) + inc.Guidelines + ', ' + (inc.Schedule ? (inc.Schedule.Cycle + this.translateService.instant('CycleUnitShort.' + inc.Schedule.CycleUnit)) : ('1' + this.translateService.instant('CycleUnitShort.' + Common.IntervalUnits.Undefined))) + ', ' + this.translateService.instant('IncidentStatus.' + this.Status(inc)),\r\n cssClass: this.location, // we need to somehow send the data to the formatter if to show equipment data or not\r\n color: (this.Status(inc) === IncidentStatus.Executed || this.Status(inc) === IncidentStatus.Closed || this.Status(inc) === IncidentStatus.IsSkipped) ? colors.green : (this.Status(inc) === IncidentStatus.Due ? colors.red : colors.blue),\r\n meta: inc\r\n };\r\n\r\n this.events.push(event);\r\n });\r\n this.refresh.next({});\r\n }\r\n\r\n\r\n\r\n onViewDateChange(): void {\r\n this.activeDayIsOpen = false;\r\n this.router.navigate([{ date: format(this.viewDate, 'yyyy-MM-dd') }], {\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge'\r\n });\r\n }\r\n\r\n TypeShort(Type): string {\r\n switch (Type) {\r\n case Type.Inspection:\r\n case Type.FollowUpInspection:\r\n return 'P';\r\n case Type.Maintenance:\r\n return 'W';\r\n case Type.Repair:\r\n return 'I';\r\n case Type.Custom:\r\n return 'S';\r\n }\r\n return '';\r\n };\r\n\r\n Status(incidents) {\r\n if (incidents.IsSkipped) {\r\n return IncidentStatus.IsSkipped;\r\n }\r\n else if (incidents.ClosedDate) {\r\n return IncidentStatus.Closed;\r\n }\r\n else if (incidents.KpiMarker != null && incidents.KpiMarker.IsDone) {\r\n return IncidentStatus.Executed;\r\n }\r\n else if (incidents.KpiMarker != null && incidents.KpiMarker.IsOverdue) {\r\n return IncidentStatus.Due;\r\n }\r\n return IncidentStatus.Open;\r\n }\r\n\r\n}\r\n\r\n\r\nenum IncidentStatus {\r\n IsSkipped = 'IsSkipped',\r\n Closed = 'Closed',\r\n Executed = 'Executed',\r\n Due = 'Due',\r\n Open = 'Open'\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { AuthService } from './../../core/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-incident-overview',\r\n templateUrl: './incident-overview.component.html',\r\n styleUrls: ['./incident-overview.component.scss']\r\n})\r\nexport class IncidentOverviewComponent implements OnInit, OnDestroy {\r\n\r\n buildingId: string;\r\n installEquipmentId: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { 'incidentstyle': ['list', { tab: ['todoFuture']}] } }], { relativeTo: this.route, queryParamsHandling: 'merge' });\r\n }\r\n\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe(params => this.buildingId = params.get('id')));\r\n this.subscriptions.add(this.route.parent.parent.paramMap.subscribe(params => this.installEquipmentId = params.get('id')));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n incidentWizard(): void {\r\n this.router.navigate(['building', 'wizard', this.buildingId, 'incident', this.installEquipmentId ? this.installEquipmentId : '']);\r\n }\r\n\r\n}\r\n","import {HttpClient, HttpParams} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Observable} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\nimport {AppConfig} from '../core/bootstrap/app.config';\r\nimport {InstallEquipmentDeleteInfo} from '../core/model/installEquipment';\r\nimport {Utils} from '../core/tools/utils';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class InstallEquipmentService {\r\n\r\n\r\n private canDeletePath = 'WebClient/InstallEquipment/IsDeletable/${equipmentUT}';\r\n\r\n constructor(private httpClient: HttpClient,\r\n private config: AppConfig,\r\n private translateService: TranslateService) {\r\n }\r\n\r\n\r\n canDelete(equipmentUT: string): Observable {\r\n return this.httpClient.get(this.config.getBaseUrl() + Utils.buildUrl(this.canDeletePath, {equipmentUT: equipmentUT}))\r\n .pipe(map(deleteInfo => mapDeleteInfoAPIintoDeleteInfo(deleteInfo)));\r\n }\r\n\r\n}\r\n\r\nfunction mapDeleteInfoAPIintoDeleteInfo(data: any): InstallEquipmentDeleteInfo {\r\n const i: InstallEquipmentDeleteInfo = new InstallEquipmentDeleteInfo();\r\n\r\n i.isDeletable = data.IsDeletable;\r\n i.attributeValueCount = data.AttributeValueCount;\r\n i.childCount = data.ChildCount;\r\n i.imCount = data.IMCount;\r\n i.imageCount = data.ImageCount;\r\n i.incidentsCount = data.IncidentsCount;\r\n i.inspectionDutiesCount = data.InspectionDutiesCount;\r\n i.maintenanceContractMappingsCount = data.MaintenanceContractMappingsCount;\r\n i.qrCodeCount = data.QRCodeCount;\r\n\r\n return i;\r\n}\r\n","export enum BuildingKpiFilter {\r\n Undefined = 0,\r\n NoEquipment = 1,\r\n NoUsageType = 2,\r\n MissingDocumentation = 3,\r\n}\r\n\r\nexport enum InstallEquipmentKpiFilter {\r\n Undefined = 0,\r\n NoMaintenanceContract = 1,\r\n MaintenanceNotTerminated = 2,\r\n NoInspectionDutyTerminated = 3,\r\n NoInspectionDutySelected = 4,\r\n MissingDocumentation = 5,\r\n HasMaintenanceContract = 6,\r\n HasInspectionDutyTerminated = 7,\r\n HasInspectionDutyActive = 8,\r\n NoMaintenanceDesired = 9,\r\n RenterResponsibility = 10,\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {combineLatest, Observable, Subscription, from} from 'rxjs';\r\nimport {map, switchMap} from 'rxjs/operators';\r\nimport {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {ConfirmationModal} from '../../../core/popup/confirmation.modal';\r\nimport {ILogger} from '../../../core/shared/logger.service';\r\nimport {InstallEquipmentService} from '../../installEquipment.service';\r\nimport {Utils} from \"../../../core/tools/utils\";\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-module-detail-edit',\r\n templateUrl: './module-detail-edit.component.html',\r\n styleUrls: ['./module-detail-edit.component.scss']\r\n})\r\nexport class ModuleDetailEditComponent implements OnInit, OnDestroy {\r\n\r\n origInstallModule: PropertyCore.Module;\r\n installModule: PropertyCore.Module;\r\n installModuleFloor: PropertyCore.Floor;\r\n\r\n\r\n floors: PropertyCore.Floor[];\r\n rooms: PropertyCore.Room[];\r\n\r\n newRoomName: string;\r\n\r\n installEquipmentUT: string;\r\n buildingUT: string;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n logger: ILogger;\r\n\r\n constructor(\r\n private installEquipmentService: InstallEquipmentService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.root.firstChild.paramMap.subscribe(params => (this.buildingUT = params.get('id'))));\r\n\r\n const installEquipmentUT$: Observable = this.route.parent.firstChild.paramMap.pipe(map(params => params.get('id')));\r\n\r\n const floors$: Observable = installEquipmentUT$.pipe(switchMap(val =>\r\n from(this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(val))\r\n .Expand(x => {\r\n x.Expand(\"Building\", y => {\r\n y.Expand(\"Floors\")\r\n })\r\n })\r\n .Exec()\r\n .then(x => x.value))\r\n .pipe(map(res => res[0].Building.Floors.map(f => Utils.mapAllJSONDatesToDates(f))))\r\n ));\r\n\r\n let module$: Observable = this.route.paramMap.pipe(switchMap(params => {\r\n return from(this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"ModuleType\"),\r\n x.Expand(\"Equipment\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n }))\r\n\r\n this.subscriptions.add(\r\n combineLatest(installEquipmentUT$, module$, floors$).subscribe(([_equipmentUT, _module, _floors]) => {\r\n this.installEquipmentUT = _equipmentUT;\r\n this.origInstallModule = Object.assign({}, _module);\r\n this.installModule = _module;\r\n this.installModuleFloor = this.installModule.Room.Floor;\r\n this.floors = _floors;\r\n if (this.installModuleFloor) {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Room.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.buildingUT)).And\r\n .Equals(ODataPath.For(\"Floor\", \"Id\"), this.installModuleFloor.Id))\r\n .Expand(x => {\r\n x.Expand(\"Floor\")\r\n x.Expand(\"Statistics\")\r\n })\r\n .Exec()\r\n .then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res => (this.rooms = res))\r\n );\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ModuleDetailEdit._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ModuleDetailEdit._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ModuleDetailEdit._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ModuleDetailEdit._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate([\r\n '/building',\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: ['equipment', this.installEquipmentUT, 'view', {outlets: {tab: ['modules']}}],\r\n right: ['equipment', 'module', this.installModule.Identity]\r\n }\r\n }\r\n ]);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate([\r\n '/building',\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: ['equipment', this.installEquipmentUT, 'view', {outlets: {tab: ['modules']}}],\r\n right: ['equipment', 'module', this.installModule.Identity]\r\n }\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n if (this.installModule.Room != null) {\r\n await this.odataCoreService.Module.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Module())\r\n .Key(Guid.parse(this.installModule.Identity))\r\n .ValueProperty(\"Equipment\", this.installModule.Equipment)\r\n .ValueProperty(\"ModuleType\", this.installModule.ModuleType)\r\n .ValueProperty(\"Room\", this.installModule.Room)\r\n .ValueProperty(\"CustomId\", this.installModule.CustomId)\r\n .ValueProperty(\"Quantity\", this.installModule.Quantity)\r\n .ValueProperty(\"Comment\", this.installModule.Comment)\r\n .ValuePropertyBinding(\"Equipment\", this.odataCoreService.Equipment.Get().Key(Guid.parse(this.installModule.Equipment.Identity)).Bind())\r\n .ValuePropertyBinding(\"Room\", this.odataCoreService.Room.Get().Key(Guid.parse(this.installModule.Room.Identity)).Bind())\r\n .ValuePropertyBinding(\"ModuleType\", this.odataCoreService.ModuleType.Get().Key(this.installModule.ModuleType.Code).Bind())\r\n .Exec()\r\n\r\n } else {\r\n await this.odataCoreService.Module.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Module())\r\n .Key(Guid.parse(this.installModule.Identity))\r\n .ValueProperty(\"Equipment\", this.installModule.Equipment)\r\n .ValueProperty(\"ModuleType\", this.installModule.ModuleType)\r\n .ValueProperty(\"Room\", this.installModule.Room)\r\n .ValueProperty(\"CustomId\", this.installModule.CustomId)\r\n .ValueProperty(\"Quantity\", this.installModule.Quantity)\r\n .ValueProperty(\"Comment\", this.installModule.Comment)\r\n .ValuePropertyBinding(\"Equipment\", this.odataCoreService.Equipment.Get().Key(Guid.parse(this.installModule.Equipment.Identity)).Bind())\r\n .ValuePropertyBinding(\"ModuleType\", this.odataCoreService.ModuleType.Get().Key(this.installModule.ModuleType.Code).Bind())\r\n .Exec()\r\n }\r\n // hard refresh url so that modules on the left side are reloaded\r\n const url = this.router.createUrlTree(['/building', this.buildingUT,\r\n {\r\n outlets: {\r\n left: ['equipment', this.installEquipmentUT, 'view', { outlets: { tab: ['modules'] } }],\r\n right: ['equipment', 'module', this.installModule.Identity]\r\n }\r\n }]).toString();\r\n this.router.navigateByUrl('/skipThisPage', { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n }\r\n\r\n async onFloorChange(selectedFloor: PropertyCore.Floor): Promise {\r\n this.installModuleFloor = selectedFloor;\r\n if (selectedFloor) {\r\n let res = await this.odataCoreService.Room.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.buildingUT)).And\r\n .Equals(ODataPath.For(\"Floor\", \"Id\"), this.installModuleFloor.Id))\r\n .Expand(x => {\r\n x.Expand(\"Floor\")\r\n x.Expand(\"Statistics\")\r\n })\r\n .Exec()\r\n .then(x => x.value);\r\n this.rooms = res.map(i => Utils.mapAllJSONDatesToDates(i))\r\n }\r\n }\r\n \r\n openNewRoomPopup(content): void {\r\n this.modalService.open(content).result.then(async result => {\r\n // on save click\r\n const guid = Utils.guid();\r\n let res = await this.odataCoreService.Room.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Room())\r\n .ValueProperty(\"Identity\", guid)\r\n .ValueProperty(\"Name\", this.newRoomName)\r\n .ValuePropertyBinding(\"Floor\", this.odataCoreService.Floor.Get().Key(this.installModuleFloor.Id).Bind())\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.buildingUT)).Bind())\r\n .Exec();\r\n this.installModule.Room = {\r\n Id: res,\r\n Identity: guid,\r\n Name: this.newRoomName,\r\n Floor: this.installModuleFloor\r\n };\r\n this.rooms.push(this.installModule.Room);\r\n this.newRoomName = null;\r\n }).catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n openInfoDialog3() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ModuleWizardData._modal_customName_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ModuleWizardData._modal_customName_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ModuleWizardData._modal_customName_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { switchMap, map } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { AuthService } from '../../core/auth/auth.service';\r\nimport { ConfirmationModal } from '../../core/popup/confirmation.modal';\r\nimport { PopupService } from '../../core/popup/popup.service';\r\nimport { HttpErrorResponse, HttpResponse } from \"@angular/common/http\";\r\nimport Module = PropertyCore.Module;\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { AppConfig } from '../../core/bootstrap/app.config';\r\nimport { ImageUploadModel } from '../../core/components/upload/image-upload-model';\r\nimport { ImageUploadService } from '../../core/components/upload/image-upload-service';\r\nimport { FileItem } from 'ng2-file-upload';\r\n\r\n\r\n@Component({\r\n selector: 'app-module-detail',\r\n templateUrl: './module-detail.component.html',\r\n styleUrls: ['./module-detail.component.scss']\r\n})\r\nexport class ModuleDetailComponent implements OnInit, OnDestroy {\r\n installModule: PropertyCore.Module;\r\n buildingId: string;\r\n images: PropertyCore.Image[];\r\n imgIdx = 0;\r\n inspectionDuties: any[];\r\n imageUploadModel: ImageUploadModel;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private popupService: PopupService,\r\n private odataCoreService: ODataCoreService,\r\n private config: AppConfig,\r\n private imageUploadService: ImageUploadService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n this.imageUploadModel.entityType = \"Module\";\r\n this.subscriptions.add(\r\n this.route.parent.paramMap\r\n .pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Module.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"ModuleType\"),\r\n x.Expand(\"Equipment\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n // .Filter(xa =>\r\n // xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n }))\r\n .subscribe(installModule => this.installModule = installModule)\r\n );\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Module.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"Images\")\r\n })\r\n // .Filter(xa =>\r\n // xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].Images.map(img => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n })))\r\n }))\r\n .subscribe(res => {\r\n this.images = res;\r\n this.imgIdx = 0;\r\n }));\r\n\r\n this.subscriptions.add(this.route.parent.parent.paramMap.subscribe((params: ParamMap) => this.buildingId = params.get('id')));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onImageUpload(event): void {\r\n this.subscriptions.add(from(this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"Images\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(this.installModule.Identity)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].Images.map(img => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n }))).subscribe(res => {\r\n this.images = res;\r\n this.imgIdx = this.images.length - 1;\r\n this.imageUploadService.resetCurrentImageUploadModel();\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n this.imageUploadModel.entityType = \"Module\";\r\n })\r\n );\r\n }\r\n\r\n onAddFile(file: FileItem): void {\r\n this.imageUploadModel.file.push(file);\r\n }\r\n\r\n nextImg(): void {\r\n this.imgIdx++;\r\n if (this.imgIdx === this.images.length) {\r\n this.imgIdx = 0;\r\n }\r\n }\r\n\r\n prevImg(): void {\r\n this.imgIdx--;\r\n if (this.imgIdx === -1) {\r\n this.imgIdx = this.images.length - 1;\r\n }\r\n }\r\n\r\n deleteImg(): void {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ModuleDetail._deleteImage_modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ModuleDetail._deleteImage_modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ModuleDetail._deleteImage_modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ModuleDetail._deleteImage_modal_cancel');\r\n\r\n modalRef.result\r\n .then(async val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.odataCoreService.Image.Delete()\r\n .Key(Guid.parse(this.images[this.imgIdx].Identity))\r\n .Exec();\r\n this.toasterService.pop('info', '', this.translateService.instant('ModuleDetail._deleteImage_success'));\r\n // reload images after delete\r\n let res = await this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"Images\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(this.installModule.Identity)))\r\n .Exec().then(x => x.value);\r\n this.images = res[0].Images.map(img => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n })\r\n // nav to next image after the deleted one\r\n this.prevImg();\r\n this.nextImg();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n async sortImg(): Promise {\r\n if (this.images.length == 2) {\r\n await this.odataCoreService.Image.Get().Key(Guid.parse(this.images[this.imgIdx].Identity)).Actions().SortInOperationsOnImageInPropertyCore().Parameters(Guid.createEmpty().toString()).Execute();\r\n await this.odataCoreService.Image.Get().Key(Guid.parse(this.images[this.imgIdx].Identity)).Actions().SortInOperationsOnImageInPropertyCore().Parameters(Guid.createEmpty().toString()).Execute();\r\n this.toasterService.pop('info', '', this.translateService.instant('ModuleDetail._sortImage_success'));\r\n // reload images after sort\r\n let res = await this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"Images\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(this.installModule.Identity)))\r\n .Exec().then(x => x.value);\r\n this.images = res[0].Images.map(img => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n })\r\n // nav to first image\r\n this.imgIdx = 0;\r\n } else {\r\n await this.odataCoreService.Image.Get().Key(Guid.parse(this.images[this.imgIdx].Identity)).Actions().SortInOperationsOnImageInPropertyCore().Parameters(Guid.createEmpty().toString()).Execute();\r\n this.toasterService.pop('info', '', this.translateService.instant('ModuleDetail._sortImage_success'));\r\n // reload images after sort\r\n let res = await this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"Images\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(this.installModule.Identity)))\r\n .Exec().then(x => x.value);\r\n this.images = res[0].Images.map(img => {\r\n Utils.mapAllJSONDatesToDates(img);\r\n img.DownloadToken = this.odataCoreService.Image.Get().Key(Guid.parse(img.Identity)).Raw().ToUrlString(false);\r\n return img;\r\n })\r\n // nav to first image\r\n this.imgIdx = 0;\r\n }\r\n }\r\n\r\n showImg(): void {\r\n this.popupService.openImagePreviewModal(this.images[this.imgIdx].DownloadToken);\r\n }\r\n\r\n edit(): void {\r\n const identity = this.router.url.split('/'); // Equipment does not come with odata service so we got it from the URL\r\n\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['equipment', identity[4], 'view', { outlets: { tab: ['modules'] } }],\r\n right: ['equipment', 'module', 'edit', this.installModule.Identity]\r\n }\r\n }]);\r\n }\r\n\r\n delete(): void {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentDetailEditModule._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentDetailEditModule._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentDetailEditModule._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('EquipmentDetailEditModule._modal_cancel');\r\n\r\n modalRef.result\r\n .then(async val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.odataCoreService.Module.Delete()\r\n .Key(Guid.parse(this.installModule.Identity))\r\n .Exec();\r\n this.toasterService.pop('info', '', this.translateService.instant('EquipmentDetailEditModule._delete_success'));\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['building', 'view', { outlets: { tab: ['equipment'] } }],\r\n right: ['equipment', this.installModule.Equipment.Identity, 'view', { outlets: { tab: ['modules'] } }]\r\n }\r\n }]);\r\n (error: HttpErrorResponse) => {\r\n this.toasterService.pop('error', '', 'EquipmentDetailEditModule._delete_error');\r\n }\r\n }\r\n })\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\n\r\nimport {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {AuthService} from '../../../core/auth/auth.service';\r\nimport {AttributeDTO} from '../../../core/model/attributeDTO';\r\nimport {ConfirmationModal} from '../../../core/popup/confirmation.modal';\r\nimport {Utils} from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\n\r\n\r\n@Component({\r\n selector: 'app-module-feature-edit',\r\n templateUrl: './module-feature-edit.component.html',\r\n styleUrls: ['./module-feature-edit.component.scss']\r\n})\r\nexport class ModuleFeatureEditComponent implements OnInit, OnDestroy {\r\n installModule: PropertyCore.Module;\r\n buildingUT: string;\r\n installEquipmentUT: string;\r\n showClose: boolean;\r\n\r\n installModuleId: string;\r\n attributeContainerId: number[] = [];\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray: any[] = [];\r\n attributeChanged: any[] = [];\r\n years: string[];\r\n\r\n formSubmitted: boolean;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.paramMap.subscribe(params => (this.buildingUT = params.get('id'))));\r\n\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) => {\r\n this.installModuleId = params.get('id');\r\n return from(this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"ModuleType\"),\r\n x.Expand(\"Equipment\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse( this.installModuleId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n }))\r\n .subscribe(res => (this.installModule = res))\r\n );\r\n\r\n this.subscriptions.add(this.route.parent.firstChild.paramMap.subscribe(params => (this.installEquipmentUT = params.get('id'))));\r\n\r\n\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Building.Query()\r\n .Select(\"AttributeTypeSets\")\r\n .Expand(x => {\r\n x.Expand(\"AttributeTypeSets\", y => {\r\n y.Expand(\"AttributeTypes\", z => {\r\n z.Expand(\"MeasurementUnit\")\r\n z.OrderBy(\"Order\", \"asc\")\r\n })\r\n })\r\n })\r\n .Filter(x => x.EqualsField(\"Identity\", Guid.parse(this.buildingUT)))\r\n .Exec()\r\n .then(x => x.value)).pipe(map(res => res[0]))\r\n .subscribe(res1 => {\r\n this.subscriptions.add(this.route.paramMap.pipe(switchMap((params: ParamMap) => \r\n from(this.odataCoreService.Module.Get()\r\n .Key(Guid.parse(this.installModuleId))\r\n .Select(\"Identity\",\"Name\",\"AttributeValues\")\r\n .Expand(x => \r\n x.Expand(\"AttributeValues\"))\r\n .Exec()\r\n .then(x => x.value))))\r\n .pipe(map(res => res[0]))\r\n .subscribe(res => {\r\n \r\n let a: number = 0;\r\n\r\n while(res1.AttributeTypeSets.length > a){\r\n let b: number = 0;\r\n\r\n while(res1.AttributeTypeSets[a].AttributeTypes.length > b){\r\n \r\n let attributeItem = res.AttributeValues.find(x => x.Id == res1.AttributeTypeSets[a].AttributeTypes[b].Id); \r\n\r\n if(attributeItem){ \r\n\r\n attributeItem['Description'] = res1.AttributeTypeSets[a].AttributeTypes[b].Description;\r\n attributeItem['Name'] = res1.AttributeTypeSets[a].AttributeTypes[b].Name;\r\n attributeItem['MeasurementUnit'] = res1.AttributeTypeSets[a].AttributeTypes[b].MeasurementUnit;\r\n attributeItem['IsOptional'] = res1.AttributeTypeSets[a].AttributeTypes[b].IsOptional;\r\n attributeItem['AttributeCategory'] = res1.AttributeTypeSets[a].Name;\r\n attributeItem['ValueType'] = res1.AttributeTypeSets[a].AttributeTypes[b].ValueType;\r\n attributeItem['AllowedValues'] = res1.AttributeTypeSets[a].AttributeTypes[b].AllowedValues;\r\n\r\n if(attributeItem['ValueType'] == 'Date'){\r\n attributeItem['ValueDate'] = Utils.jsonToDate(attributeItem['Value']);\r\n }\r\n \r\n this.attributesCategories.push(attributeItem);\r\n this.attributesCategoryNames.push(attributeItem['AttributeCategory']);\r\n }\r\n b++;\r\n }\r\n a++;\r\n } \r\n this.categoryArray = this.attributesCategoryNames.filter((element, index, input) => {\r\n if (input.indexOf(element) === index) { \r\n return element\r\n }\r\n }) \r\n })\r\n );\r\n\r\n }));\r\n\r\n this.showClose = this.route.snapshot.data.close;\r\n\r\n this.years = Utils.yearsTillToday();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ModuleFeatureEdit._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ModuleFeatureEdit._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ModuleFeatureEdit._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ModuleFeatureEdit._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate([\r\n '/building',\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: ['equipment', this.installEquipmentUT, 'view', {outlets: {tab: ['modules']}}],\r\n right: ['equipment', 'module', this.installModule.Identity, {outlets: {tab: ['features']}}]\r\n }\r\n }\r\n ]);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate([\r\n '/building',\r\n this.buildingUT,\r\n {\r\n outlets: {\r\n left: ['equipment', this.installEquipmentUT, 'view', {outlets: {tab: ['modules']}}],\r\n right: ['equipment', 'module', this.installModule.Identity, {outlets: {tab: ['features']}}]\r\n }\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n // transform and save attributes\r\n const attributes: AttributeDTO[] = this.attributesCategories\r\n .filter(attribute => attribute.Value !== undefined)\r\n .map(attribute => {\r\n const attributeDto = new AttributeDTO();\r\n attributeDto.Id = attribute.Id;\r\n attributeDto.Value = attribute['ValueType'] == 'Date' ? Utils.dateToJson(attribute['ValueDate']) : attribute.Value;\r\n return attributeDto;\r\n });\r\n let b = 0;\r\n while(this.attributeContainerId.length > b){\r\n let filterAttributesChanged = attributes.find(x => x.Id == this.attributeContainerId[b])\r\n this.attributeChanged.push(filterAttributesChanged);\r\n b++;\r\n }\r\n\r\n if (this.attributeChanged.length) {\r\n await this.attributeChanged.forEach(async res => {\r\n let checkValueNull;\r\n if (res.Value == null) {\r\n checkValueNull = true;\r\n } else {\r\n checkValueNull = false;\r\n }\r\n\r\n await this.odataCoreService.Module\r\n .Get()\r\n .Key(Guid.parse(this.installModule.Identity))\r\n .NavigateToArray(\"AttributeValues\")\r\n .Patch()\r\n .Key(res.Id)\r\n .ValueType(this.odataCoreService.ODataTypes().AttributeValue())\r\n .ValueProperty(\"Value\", checkValueNull ? \"\" : res.Value.toString())\r\n .Exec();\r\n })\r\n this.close(false);\r\n } else {\r\n this.close(false);\r\n }\r\n }\r\n\r\n onAttributeValueChange(attributeId: number) {\r\n if(this.attributeContainerId.indexOf(attributeId) === -1) {\r\n this.attributeContainerId.push(attributeId);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { switchMap, map } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-module-feature',\r\n templateUrl: './module-feature.component.html',\r\n styleUrls: ['./module-feature.component.scss']\r\n})\r\nexport class ModuleFeatureComponent implements OnInit, OnDestroy {\r\n\r\n buildingUT: string;\r\n installEquipmentUT: string;\r\n installModule: PropertyCore.Module;\r\n installModuleId: string;\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray: any[] = [];\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.parent.paramMap.subscribe((params: ParamMap) => this.buildingUT = params.get('id')));\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.installModuleId = params.get('id');\r\n return from(this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"ModuleType\"),\r\n x.Expand(\"Equipment\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n }))\r\n .subscribe(res => this.installModule = res));\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => \r\n from(this.odataCoreService.Module.Get()\r\n .Key(Guid.parse(this.installModuleId))\r\n .Select(\"Identity\",\"Name\",\"AttributeValues\")\r\n .Expand(x => \r\n x.Expand(\"AttributeValues\"))\r\n .Exec()\r\n .then(x => x.value))))\r\n .pipe(map(res => res[0]))\r\n .subscribe(res => {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.AttributeType.Query()\r\n .Expand(x => {\r\n x.Expand(\"Set\")\r\n x.Expand(\"MeasurementUnit\")\r\n })\r\n .OrderBy(\"Order\", \"asc\")\r\n .Exec()\r\n .then(x => x.value))\r\n .subscribe(res1 => {\r\n let a: number = 0;\r\n\r\n while(res1.length > a) {\r\n let attributeItem = res.AttributeValues.find(x => x.Id == res1[a].Id);\r\n if(attributeItem){ \r\n attributeItem['Description'] = res1[a].Description;\r\n attributeItem['Name'] = res1[a].Name;\r\n attributeItem['MeasurementUnit'] = res1[a].MeasurementUnit;\r\n attributeItem['IsOptional'] = res1[a].IsOptional;\r\n attributeItem['AttributeCategory'] = res1[a].Set;\r\n attributeItem['ValueType'] = res1[a].ValueType;\r\n \r\n this.attributesCategories.push(attributeItem);\r\n if(attributeItem.Value != null || \"\"){\r\n this.attributesCategoryNames.push(attributeItem['AttributeCategory'].Name);\r\n } \r\n }\r\n a++;\r\n }\r\n this.categoryArray = this.attributesCategoryNames.filter((element, index, input) => {\r\n if (input.indexOf(element) === index) { \r\n return element\r\n } \r\n })\r\n \r\n })\r\n\r\n );\r\n }));\r\n\r\n this.subscriptions.add(this.route.parent.parent.firstChild.paramMap.subscribe(params => (this.installEquipmentUT = params.get('id'))));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n edit(): void {\r\n this.router.navigate(['/building', this.buildingUT, { outlets: { left: ['equipment', this.installEquipmentUT, 'view', { outlets: { tab: ['modules'] } }], right: ['equipment', 'module','edit', 'feature', this.installModule.Identity] } }]);\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n@Component({\r\n selector: 'app-module-overview',\r\n templateUrl: './module-overview.component.html',\r\n styleUrls: ['./module-overview.component.scss']\r\n})\r\nexport class ModuleOverviewComponent implements OnInit, OnDestroy {\r\n currentTab: string;\r\n equipmentUT: string;\r\n buildingUT: string;\r\n installModule: PropertyCore.Module;\r\n showClose: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.showClose = this.route.snapshot.data.close;\r\n\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Module.Query()\r\n .Expand(x => {\r\n x.Expand(\"ModuleType\"),\r\n x.Expand(\"Equipment\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n }))\r\n .subscribe(installModule => this.installModule = installModule)\r\n );\r\n\r\n this.subscriptions.add(this.route.parent.firstChild.paramMap.subscribe(params => (this.equipmentUT = params.get('id'))));\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.subscribe(params => (this.buildingUT = params.get('id'))));\r\n\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], { relativeTo: this.route });\r\n this.currentTab = 'details';\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n\r\n this.subscriptions.add(\r\n this.router.events\r\n .pipe(filter(event => event instanceof NavigationEnd), map(() => this.route))\r\n .subscribe(event => {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onNavChange(changeEvent: NgbNavChangeEvent) {\r\n this.router.navigate([{ outlets: { tab: [changeEvent.nextId] } }], { relativeTo: this.route });\r\n }\r\n\r\n private close(): void {\r\n this.router.navigate(['/building', this.buildingUT, {\r\n outlets: {\r\n left: ['building', 'view', { outlets: { tab: ['equipment'] } }],\r\n right: ['equipment', this.equipmentUT, 'view', { outlets: { tab: ['modules'] } }]\r\n }\r\n }]);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-equipment',\r\n template: '',\r\n})\r\nexport class RouterThroughputComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\n\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../core/tools/utils';\r\n\r\n@Component({\r\n selector: 'app-start',\r\n templateUrl: './start.component.html',\r\n styleUrls: ['./start.component.scss']\r\n})\r\nexport class StartComponent implements OnInit, OnDestroy {\r\n\r\n private subscriptions = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n .subscribe(res => {\r\n if (res.length >= 1) {\r\n this.router.navigate(['/building', res[0].Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { BuildingWizardModel } from './../building-wizard-model';\r\nimport { BuildingWizardNavigationPaths } from './../building-wizard-navigation-paths';\r\nimport { BuildingWizardService } from './../building-wizard.service';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Common } from '../../../../core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-building-wizard-data',\r\n templateUrl: './building-wizard-data.component.html',\r\n styleUrls: ['./building-wizard-data.component.scss']\r\n})\r\nexport class BuildingWizardDataComponent implements OnInit, OnDestroy {\r\n\r\n model: BuildingWizardModel;\r\n\r\n buildingId: string;\r\n\r\n addressChanged: boolean;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n model2: Common.AddressGeoCoded = {};\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n private service: BuildingWizardService,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentBuilding();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingWiz._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingWiz._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingWiz._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingWiz._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentBuilding();\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n async next(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n if (!this.model.latitude || !this.model.longitude || this.addressChanged) {\r\n if (this.model.location.Latitude && this.model.location.Longitude) {\r\n // coordinates from geocode call\r\n\r\n this.model.latitude = this.model.location.Latitude;\r\n this.model.longitude = this.model.location.Longitude;\r\n this.toasterService.pop('info', '', this.translateService.instant('BuildingWizData._changedCoords'));\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.NEXT);\r\n } else {\r\n // get coordinates separatelly\r\n this.model2.Street = this.model.address.Street;\r\n this.model2.No = this.model.address.No;\r\n this.model2.PostCode = this.model.address.PostCode;\r\n this.model2.City = this.model.address.City;\r\n try {\r\n let result = await this.odataCoreService.Actions().GeoCodeInTools().Parameters(this.model2).Execute();\r\n if (result) {\r\n this.model.latitude = result['location']['latitude'];\r\n this.model.longitude = result['location']['longitude'];\r\n } else {\r\n // default coords - middle of germany\r\n this.model.latitude = 51.163375;\r\n this.model.longitude = 10.447683;\r\n }\r\n this.toasterService.pop('info', '', this.translateService.instant('BuildingWizData._changedCoords'));\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.NEXT);\r\n }\r\n catch(err) {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.NEXT);\r\n } \r\n \r\n \r\n }\r\n } else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.NEXT);\r\n }\r\n }\r\n\r\n validateNumberInput(event: KeyboardEvent): void {\r\n const key = event.key;\r\n \r\n // Check if the character is a digit (0-9)\r\n if (key < '0' || key > '9') {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n validateYearInput(event: KeyboardEvent, control: any): void {\r\n const key = event.key;\r\n const input = event.target as HTMLInputElement;\r\n\r\n // Initialize an empty errors object\r\n let errors = control.control.errors || {};\r\n\r\n // Check if the character is a digit (0-9)\r\n this.validateNumberInput(event);\r\n\r\n // Check if the input starts with '0' and prevent it\r\n if (input.value.length === 0 && key === '0') {\r\n event.preventDefault();\r\n errors['invalidStart'] = true;\r\n } else {\r\n delete errors['invalidStart'];\r\n }\r\n\r\n // Check if the input length exceeds 5 characters\r\n if (input.value.length >= 5) {\r\n event.preventDefault();\r\n errors['maxLengthExceeded'] = true;\r\n } else {\r\n delete errors['maxLengthExceeded'];\r\n }\r\n\r\n // Check if the entire input value is greater than 1000\r\n if (parseInt(input.value + key, 10) <= 1000) {\r\n errors['valueTooLow'] = true;\r\n } else {\r\n delete errors['valueTooLow'];\r\n }\r\n\r\n if (key === 'Enter') {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n // Set the errors on the control\r\n control.control.setErrors(Object.keys(errors).length ? errors : null);\r\n }\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from } from 'rxjs';\r\n\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { InstallEquipmentService } from './../../../installEquipment.service';\r\nimport { BuildingWizardModel } from './../building-wizard-model';\r\nimport { BuildingWizardNavigationPaths } from './../building-wizard-navigation-paths';\r\nimport { BuildingWizardService } from './../building-wizard.service';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { AuthService } from '../../../../core/auth/auth.service';\r\nimport { Common } from '../../../../core/model/odata';\r\n\r\n@Component({\r\n selector: 'app-building-wizard-equipment',\r\n templateUrl: './building-wizard-equipment.component.html',\r\n styleUrls: ['./building-wizard-equipment.component.scss']\r\n})\r\nexport class BuildingWizardEquipmentComponent implements OnInit, OnDestroy {\r\n\r\n model: BuildingWizardModel;\r\n\r\n equipments = [\r\n { LongName: 'Wärmeerzeugungsanlage', Code: 'HZE', Id: 118, Selected: false },\r\n { LongName: 'Lüftungsanlage', Code: 'RLT', Id: 126, Selected: false },\r\n { LongName: 'RWA-Anlagen natürlich', Code: 'RWA', Id: 133, Selected: false },\r\n { LongName: 'Kälteanlage - Kälteerzeugung', Code: 'KLE', Id: 134, Selected: false },\r\n { LongName: 'Sicherheitsbeleuchtungsanlage', Code: 'SBA', Id: 144, Selected: false },\r\n { LongName: 'Niederspannungsschaltanlage', Code: 'ENS', Id: 142, Selected: false },\r\n { LongName: 'Brandmeldeanlage', Code: 'BMA', Id: 150, Selected: false },\r\n { LongName: 'Aufzugsanlage', Code: 'AUF', Id: 157, Selected: false },\r\n { LongName: 'Hydrant Wand', Code: 'WHY', Id: 166, Selected: false },\r\n { LongName: 'Feuerlöscher', Code: 'FLH', Id: 169, Selected: false },\r\n { LongName: 'Türen, handbetätigt', Code: 'TUH', Id: 97, Selected: false },\r\n { LongName: 'Türen, kraftbetätigt', Code: 'TUK', Id: 95, Selected: false },\r\n ];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: BuildingWizardService,\r\n private installEquipmentService: InstallEquipmentService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private odataCoreService: ODataCoreService,\r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentBuilding();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingWiz._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingWiz._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingWiz._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingWiz._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentBuilding();\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.model.Identity = Utils.guid();\r\n // save building and then save install equipments and usage types if any\r\n await this.odataCoreService.Building.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Building())\r\n .ValueProperty(\"Identity\", this.model.Identity)\r\n .ValueProperty(\"Name\", this.model.name)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.address))\r\n .ValueProperty(\"Location\", {\r\n Longitude: this.model.longitude,\r\n Latitude: this.model.latitude\r\n })\r\n .ValueProperty(\"Size\", this.model.squareMeters)\r\n .ValueProperty(\"YearOfConstruction\", this.model.constructionYear)\r\n .ValuePropertyBinding(\"Account\", this.odataCoreService.Account.Get().Key(Guid.parse(this.authService.getMandator())).Bind())\r\n .Exec().then(async id => {\r\n\r\n let i: number = 0;\r\n if (this.model.usageTypes) {\r\n while (i < this.model.usageTypes.length) {\r\n await this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.model.Identity))\r\n .Value(\"UsageTypes\", this.odataCoreService.UsageType.Get().Key(this.getUsageTypesIds(this.model.usageTypes)[i]).Bind())\r\n .Post()\r\n i++;\r\n }\r\n }\r\n\r\n const eIds = this.equipments.filter(e => e.Selected).map(e => e.Code);\r\n\r\n let x: number = 0;\r\n if (eIds) {\r\n while (x < eIds.length) {\r\n await this.odataCoreService.Equipment.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .ValueProperty(\"Identity\", Utils.guid())\r\n .ValuePropertyBinding(\"EquipmentType\", this.odataCoreService.EquipmentType.Get().Key(eIds[x]).Bind())\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.model.Identity)).Bind())\r\n .Exec()\r\n x++;\r\n }\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n\r\n }, err => {\r\n this.toasterService.pop('error', 'Fehler!', 'Ein unerwarteter Fehler ist aufgetreten und das Gebäude konnte nicht angelegt werden!');\r\n })\r\n \r\n }\r\n\r\n getUsageTypesIds(usageTypes): number[] {\r\n let typeIds: number[] = [];\r\n usageTypes.forEach(ut => {\r\n typeIds.push(ut.Id);\r\n });\r\n return typeIds;\r\n }\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (address.RegionInfo != null && address.RegionInfo.hasOwnProperty('Code')) {\r\n entity.Region = address.RegionInfo['Code'];\r\n }\r\n if (address.CountryInfo != null && address.CountryInfo.hasOwnProperty('Code')) {\r\n entity.Country = address.CountryInfo['Code'];\r\n } else {\r\n entity.Country = 'DE';\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.No == null) {\r\n entity.No = ''\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { ConfirmationModal } from \"./../../../../core/popup/confirmation.modal\";\r\nimport { BuildingWizardModel } from \"./../building-wizard-model\";\r\nimport { BuildingWizardNavigationPaths } from \"./../building-wizard-navigation-paths\";\r\nimport { BuildingWizardService } from \"./../building-wizard.service\";\r\nimport * as L from \"leaflet\";\r\n\r\n@Component({\r\n selector: \"app-building-wizard-location\",\r\n templateUrl: \"./building-wizard-location.component.html\",\r\n styleUrls: [\"./building-wizard-location.component.scss\"],\r\n})\r\nexport class BuildingWizardLocationComponent implements OnInit, OnDestroy, AfterViewInit {\r\n model: BuildingWizardModel;\r\n leafletmap: L.Map;\r\n mapMarker: L.Marker;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n editMode: boolean;\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n private service: BuildingWizardService,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentBuilding();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.loadMap();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n loadMap(): void {\r\n try {\r\n this.leafletmap = L.map(\"leafletmap\", { attributionControl: false }).setView(\r\n [this.model.latitude, this.model.longitude],\r\n 17\r\n );\r\n\r\n L.tileLayer(\"https://tile.openstreetmap.org/{z}/{x}/{y}.png\", {\r\n maxZoom: 19,\r\n attribution: \"© OpenStreetMap\",\r\n }).addTo(this.leafletmap);\r\n\r\n const icon = L.icon({\r\n iconUrl: \"assets/marker.png\",\r\n iconAnchor: [0, 0],\r\n });\r\n\r\n this.mapMarker = L.marker([this.model.latitude, this.model.longitude], {\r\n icon,\r\n draggable: true,\r\n }).addTo(this.leafletmap);\r\n\r\n this.mapMarker.on(\"dragend\", () => {\r\n this.model.latitude = this.mapMarker.getLatLng().lat;\r\n this.model.longitude = this.mapMarker.getLatLng().lng;\r\n });\r\n } catch (e) {\r\n // ignore: leaflet container not visible\r\n }\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"BuildingWiz._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"BuildingWiz._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"BuildingWiz._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"BuildingWiz._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentBuilding();\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n // gettest() {\r\n // console.log('get test');\r\n // return this._test;\r\n // }\r\n // _test = '1111';\r\n\r\n // set test(v) {\r\n // console.log('set test');\r\n // this._test = v;\r\n // }\r\n\r\n // get markerPosition() {\r\n // console.log('called getter markerPosition: ');\r\n // //return this.markerPositionProp;\r\n\r\n // return {\r\n // 'lat': 0,\r\n // 'lng': 0\r\n // };\r\n // }\r\n\r\n // markerPositionProp = {\r\n // 'lat': 0,\r\n // 'lng': 0\r\n // };\r\n\r\n // mapPositionProp = {\r\n // 'lat': 0,\r\n // 'lng': 0\r\n // };\r\n\r\n // get mapPosition() {\r\n // console.log('called getter mapPosition: ');\r\n // return this.mapPositionProp;\r\n // }\r\n\r\n // getMarkerPosition(param: string) {\r\n // console.log('called getMarkerPosition: ', param);\r\n // return {\r\n // 'lat': 0,\r\n // 'lng': 0\r\n // };\r\n // }\r\n\r\n // ngDoCheck() {\r\n // console.log('Change detection triggered');\r\n // }\r\n\r\n async next(): Promise {\r\n if (this.editMode) {\r\n // save building and then save install equipments if any\r\n try {\r\n await this.service.editBuilding();\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n } catch (err) {\r\n this.toasterService.pop(\r\n \"error\",\r\n \"Fehler!\",\r\n \"Ein unerwarteter Fehler ist aufgetreten und das Gebäude konnte nicht geändert werden!\"\r\n );\r\n }\r\n } else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.NEXT);\r\n }\r\n }\r\n}\r\n","import { Common, PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\nexport class BuildingWizardModel {\r\n\r\n Identity: string;\r\n id: number;\r\n name: string;\r\n constructionYear: number;\r\n squareMeters: number;\r\n\r\n address?: Common.Address;\r\n location?: Common.Location;\r\n\r\n latitude: number;\r\n longitude: number;\r\n\r\n // edit mode\r\n usageTypes?: PropertyCore.UsageType[];\r\n\r\n}\r\n","export enum BuildingWizardNavigationPaths {\r\n DATA = 'data',\r\n LOCATION = 'location',\r\n USAGE = 'usage',\r\n EQUIPMENT = 'equipment',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit',\r\n }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { BuildingWizardModel } from './../building-wizard-model';\r\nimport { BuildingWizardNavigationPaths } from './../building-wizard-navigation-paths';\r\nimport { BuildingWizardService } from './../building-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-building-wizard-progress',\r\n templateUrl: './building-wizard-progress.component.html',\r\n styleUrls: ['./building-wizard-progress.component.scss']\r\n})\r\nexport class BuildingWizardProgressComponent implements OnInit {\r\n\r\n PAGE_DATA = BuildingWizardNavigationPaths.DATA;\r\n PAGE_LOCATION = BuildingWizardNavigationPaths.LOCATION;\r\n PAGE_USAGE = BuildingWizardNavigationPaths.USAGE;\r\n PAGE_EQUIPMENT = BuildingWizardNavigationPaths.EQUIPMENT;\r\n\r\n model: BuildingWizardModel;\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n editMode: boolean;\r\n\r\n @Input()\r\n currentPage: BuildingWizardNavigationPaths;\r\n\r\n constructor(private service: BuildingWizardService) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentBuilding();\r\n }\r\n\r\n navigate(pageChangeEvent: BuildingWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { AuthService } from './../../../../core/auth/auth.service';\r\nimport { Subscription, from } from 'rxjs';\r\n\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { BuildingWizardModel } from './../building-wizard-model';\r\nimport { BuildingWizardNavigationPaths } from './../building-wizard-navigation-paths';\r\nimport { BuildingWizardService } from './../building-wizard.service';\r\nimport { BuildingEditUsagesInputData } from './../../../../core/components/building/building-edit-usages-input-data';\r\n\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { map } from 'rxjs/internal/operators/map';\r\n\r\n@Component({\r\n selector: 'app-building-wizard-usage',\r\n templateUrl: './building-wizard-usage.component.html',\r\n styleUrls: ['./building-wizard-usage.component.scss']\r\n})\r\nexport class BuildingWizardUsageComponent implements OnInit, OnDestroy {\r\n\r\n model: BuildingWizardModel;\r\n inputData: BuildingEditUsagesInputData = new BuildingEditUsagesInputData();\r\n buildingUsageTypes: any[];\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n editMode: boolean;\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private modalService: NgbModal,\r\n private service: BuildingWizardService,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentBuilding();\r\n from(this.odataCoreService.UsageType.Query()\r\n .Filter(x =>\r\n x.Any(\"Regions\", \"r: r/Id eq \" + this.model.address.RegionInfo.Id + \"\"))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe((types) => {\r\n this.buildingUsageTypes = types;\r\n this.model.usageTypes = [];\r\n });\r\n }\r\n\r\n controlUsageTypes(usage) {\r\n const exists = this.model.usageTypes.filter(type => type.Id === usage.Id);\r\n\r\n if (exists.length > 0) {\r\n this.model.usageTypes = this.model.usageTypes.filter(u => u.Id !== usage.Id); \r\n } else {\r\n this.model.usageTypes.push(usage);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onMarkerDragEnd(data: any): void {\r\n this.model.latitude = data.coords.lat;\r\n this.model.longitude = data.coords.lng;\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingWiz._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingWiz._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingWiz._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingWiz._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentBuilding();\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n async next(): Promise {\r\n if (this.editMode) {\r\n // save building and then save install equipments if any\r\n try {\r\n await this.service.editBuilding()\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.EXIT);\r\n }\r\n catch (err) {\r\n this.toasterService.pop('error', 'Fehler!', 'Ein unerwarteter Fehler ist aufgetreten und das Gebäude konnte nicht geändert werden!');\r\n }\r\n } else {\r\n this.pageChangeRequest.emit(BuildingWizardNavigationPaths.NEXT);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nimport { BuildingWizardNavigationPaths } from './building-wizard-navigation-paths';\r\nimport { BuildingWizardService } from './building-wizard.service';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-building-wizard',\r\n templateUrl: './building-wizard.component.html',\r\n styleUrls: ['./building-wizard.component.scss']\r\n})\r\nexport class BuildingWizardComponent implements OnInit, OnDestroy {\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n currentPage: BuildingWizardNavigationPaths;\r\n\r\n editMode: boolean = false;\r\n\r\n modelReady: boolean;\r\n\r\n PAGE_DATA = BuildingWizardNavigationPaths.DATA;\r\n PAGE_LOCATION = BuildingWizardNavigationPaths.LOCATION;\r\n PAGE_USAGE = BuildingWizardNavigationPaths.USAGE;\r\n PAGE_EQUIPMENT = BuildingWizardNavigationPaths.EQUIPMENT;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private service: BuildingWizardService,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.modelReady = false;\r\n this.editMode = this.route.snapshot.data.editMode;\r\n this.currentPage = this.PAGE_DATA;\r\n\r\n // preload building data\r\n if (this.editMode) {\r\n this.subscriptions.add(this.route.paramMap.pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }))\r\n .subscribe(building => {\r\n this.service.startWizard(building);\r\n this.modelReady = true;\r\n }));\r\n } else {\r\n this.service.startWizard();\r\n this.modelReady = true;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: BuildingWizardNavigationPaths): void {\r\n\r\n switch (pageChangeEvent) {\r\n\r\n case BuildingWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_DATA;\r\n break;\r\n }\r\n case BuildingWizardNavigationPaths.EXIT: {\r\n // 1. prio: if we have created a new building, we directly navigate to it\r\n if (this.service.getCurrentBuilding() && this.service.getCurrentBuilding().Identity) {\r\n this.router.navigate(['/building', this.service.getCurrentBuilding().Identity, { outlets: { left: ['list'], right: ['building'] } }]);\r\n }\r\n // 2. prio: if we haven't created a new building, navigate back to building list\r\n else {\r\n this.router.navigate(['/building']);\r\n }\r\n break;\r\n }\r\n case BuildingWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_LOCATION;\r\n } else if (this.currentPage === this.PAGE_LOCATION) {\r\n this.currentPage = this.PAGE_USAGE;\r\n } else if (this.currentPage === this.PAGE_USAGE) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n }\r\n break;\r\n }\r\n case BuildingWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_USAGE;\r\n } else if (this.currentPage === this.PAGE_USAGE) {\r\n this.currentPage = this.PAGE_LOCATION;\r\n } else if (this.currentPage === this.PAGE_LOCATION) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case BuildingWizardNavigationPaths.DATA: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_LOCATION || this.currentPage === this.PAGE_USAGE || this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case BuildingWizardNavigationPaths.LOCATION: {\r\n if (this.currentPage === this.PAGE_LOCATION || this.currentPage === this.PAGE_USAGE || this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_LOCATION;\r\n }\r\n break;\r\n }\r\n case BuildingWizardNavigationPaths.USAGE: {\r\n if (this.currentPage === this.PAGE_USAGE || this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_USAGE;\r\n }\r\n break;\r\n }\r\n case BuildingWizardNavigationPaths.EQUIPMENT: {\r\n if (this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, from } from \"rxjs\";\r\nimport {\r\n Common,\r\n Library,\r\n PropertyCore,\r\n} from \"../../../core/odata/odata.coreapi\";\r\nimport { Utils } from \"./../../../core/tools/utils\";\r\nimport { BuildingWizardModel } from \"./building-wizard-model\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\n\r\n@Injectable()\r\nexport class BuildingWizardService {\r\n model: BuildingWizardModel;\r\n\r\n constructor(private odataCoreService: ODataCoreService) {}\r\n\r\n getCurrentBuilding(): BuildingWizardModel {\r\n return this.model;\r\n }\r\n\r\n startWizard(building: PropertyCore.Building = null): void {\r\n this.resetCurrentBuilding();\r\n\r\n if (building) {\r\n this.model.Identity = building.Identity;\r\n this.model.id = building.Id;\r\n this.model.name = building.Name;\r\n this.model.constructionYear = building.YearOfConstruction;\r\n this.model.squareMeters = building.Size;\r\n this.model.address = building.Address;\r\n this.model.latitude = building.Location.Latitude;\r\n this.model.longitude = building.Location.Longitude;\r\n this.model.usageTypes = building.UsageTypes;\r\n }\r\n }\r\n\r\n editBuilding(): Observable {\r\n return from(\r\n this.odataCoreService.Building.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Building())\r\n .Key(Guid.parse(this.model.Identity))\r\n .ValueProperty(\"Name\", this.model.name)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.address))\r\n .ValueProperty(\"Location\", {\r\n Longitude: this.model.longitude,\r\n Latitude: this.model.latitude,\r\n })\r\n .ValueProperty(\"Size\", this.model.squareMeters)\r\n .ValueProperty(\"YearOfConstruction\", this.model.constructionYear)\r\n .Exec()\r\n );\r\n }\r\n\r\n resetCurrentBuilding(): void {\r\n this.model = new BuildingWizardModel();\r\n this.model.address = {};\r\n this.model.address.CountryInfo = {\r\n Id: 1,\r\n Name: \"Deutschland\",\r\n };\r\n this.model.location = {};\r\n }\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (\r\n address.RegionInfo != null &&\r\n address.RegionInfo.hasOwnProperty(\"Code\")\r\n ) {\r\n entity.Region = address.RegionInfo[\"Code\"];\r\n }\r\n if (\r\n address.CountryInfo != null &&\r\n address.CountryInfo.hasOwnProperty(\"Code\")\r\n ) {\r\n entity.Country = address.CountryInfo[\"Code\"];\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { Common, PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { ConfirmationModal } from '../../../../core/popup/confirmation.modal';\r\nimport { IncidentWizardModel } from '../../incident/incident-wizard-model';\r\nimport { DefectWizardNavigationPaths } from '../defect-wizard-navigation-paths.enum';\r\nimport { DefectWizardService } from '../defect-wizard.service';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n@Component({\r\n selector: 'app-defect-wizard-data',\r\n templateUrl: './defect-wizard-data.component.html',\r\n styleUrls: ['./defect-wizard-data.component.scss']\r\n})\r\nexport class DefectWizardDataComponent implements OnInit, OnDestroy {\r\n\r\n model: IncidentWizardModel;\r\n\r\n incidentTypes: string[] = Object.keys(PropertyCore.EventTypes).filter(x => x !== PropertyCore.EventTypes.Undefined && x !== PropertyCore.EventTypes.FollowUpInspection);\r\n EventTypes = PropertyCore.EventTypes;\r\n cycleUnits: string[] = Object.keys(Common.IntervalUnits);\r\n\r\n serviceProviders: PropertyCore.ServiceProvider[] = [];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: DefectWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDefect();\r\n\r\n this.subscriptions.add(from(this.odataCoreService.ServiceProvider.Query()\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"Account\", \"Identity\"), Guid.parse(localStorage.getItem('mandator'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res => {\r\n this.serviceProviders = res;\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.NEXT);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('DefectWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('DefectWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('DefectWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('DefectWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentDefect();\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n onTypeChange(): void {\r\n if (this.model.type !== PropertyCore.EventTypes.Inspection && this.model.type !== PropertyCore.EventTypes.Maintenance && this.model.type !== PropertyCore.EventTypes.Custom) {\r\n this.model.cycle = 1;\r\n this.model.cycleUnit = Common.IntervalUnits.Undefined;\r\n }\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n serviceContactWizard(): void {\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.ADD_SERVICE_CONTACT);\r\n }\r\n\r\n compareProviders(p1: PropertyCore.ServiceProvider, p2: PropertyCore.ServiceProvider) {\r\n return p1 && p2 && p1.Identity == p2.Identity;\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap } from \"@angular/router\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport * as $ from \"jquery\";\r\nimport { PDFDocumentProxy } from \"ng2-pdf-viewer\";\r\nimport { Subscription, from } from \"rxjs\";\r\nimport { switchMap, map } from \"rxjs/operators\";\r\nimport { Document } from \"../../../../core/model/document\";\r\nimport { Incident } from \"../../../../core/model/incident\";\r\nimport { Utils } from \"../../../../core/tools/utils\";\r\nimport { ODataCoreService } from \"../../../../core/odata-services/odata.coreapi.service\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\nimport { PopupService } from \"app/core/popup/popup.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ConfirmationModal } from \"app/core/popup/confirmation.modal\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"app-defect-wizard-document\",\r\n templateUrl: \"./defect-wizard-document.component.html\",\r\n styleUrls: [\"./defect-wizard-document.component.scss\"],\r\n})\r\nexport class DefectWizardDocumentComponent implements OnInit, OnDestroy {\r\n parentIncident: Incident;\r\n documents: Document[];\r\n previewDocument: Document;\r\n\r\n pageCount: number;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private toasterService: ToasterService,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService,\r\n private popupService: PopupService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) => {\r\n return from(\r\n this.odataCoreService.Event.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Documents\", (a) => {\r\n a.Expand(\"DocumentType\");\r\n });\r\n x.Expand(\"Response\"),\r\n x.Expand(\"Schedule\", (xa) => {\r\n xa.Expand(\"InspectionDuty\", (xaa) => {\r\n xaa.Select(\"Id\"),\r\n xaa.Expand(\"OperatorTask\", (xaaa) => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\");\r\n });\r\n }),\r\n xa.Expand(\"MaintenanceContract\", (xab) => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", (xabb) => {\r\n xabb.Select(\"Name\");\r\n });\r\n });\r\n }),\r\n x.Expand(\"Building\", (xb) => {\r\n xb.Select(\"Name\"), xb.Select(\"Id\"), xb.Select(\"Identity\");\r\n }),\r\n x.Expand(\"Equipment\", (xc) => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\"),\r\n xc.Expand(\"Room\", (xcc) => {\r\n xcc.Select(\"Name\"),\r\n xcc.Select(\"Id\"),\r\n xcc.Select(\"Identity\");\r\n xcc.Expand(\"Floor\", (xccc) => {\r\n xccc.Select(\"Id\"), xccc.Select(\"Name\");\r\n });\r\n });\r\n }),\r\n x.Expand(\"ServiceProvider\", (xd) => {\r\n xd.Select(\"Name\"), xd.Select(\"Id\"), xd.Select(\"Identity\");\r\n }),\r\n x.Expand(\"Module\", (xe) => {\r\n xe.Select(\"Name\"),\r\n xe.Select(\"Id\"),\r\n xe.Select(\"Identity\"),\r\n xe.Expand(\"ModuleType\", (xee) => {\r\n xee.Select(\"Code\"),\r\n xee.Select(\"Id\"),\r\n xee.Select(\"Name\");\r\n });\r\n });\r\n x.Expand(\"KpiMarker\");\r\n })\r\n .Filter((x) => x.EqualsField(\"Id\", +params.get(\"id\")))\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Incident(), res[0]);\r\n })\r\n );\r\n })\r\n )\r\n .subscribe((res) => {\r\n this.parentIncident = res;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n showDocument(doc: Document) {\r\n if (!doc.IsVirtual) {\r\n if (doc.Name.endsWith(\".pdf\")) {\r\n this.popupService.openPdfModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false),\r\n doc.Name\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".jpg\") ||\r\n doc.Name.endsWith(\".jpeg\") ||\r\n doc.Name.endsWith(\".png\")\r\n ) {\r\n this.popupService.openImagePreviewModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false)\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".doc\") ||\r\n doc.Name.endsWith(\".docx\") ||\r\n doc.Name.endsWith(\".xls\") ||\r\n doc.Name.endsWith(\".xlsx\") ||\r\n doc.Name.endsWith(\".ppt\") ||\r\n doc.Name.endsWith(\".pptx\")\r\n ) {\r\n this.popupService.openOfficePreviewModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false),\r\n doc.Name\r\n );\r\n } else {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"DocumentList._preview_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"DocumentList._preview_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"DocumentList._preview_download\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"DocumentList._preview_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n this.globalService\r\n .downloadDocument(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false)\r\n )\r\n .subscribe((data) => {\r\n const blob = new Blob([data], {\r\n type: \"application/octet-stream\",\r\n });\r\n // if (navigator.msSaveBlob) {\r\n // // IE 10+\r\n // navigator.msSaveBlob(blob, doc.Name);\r\n // } else {\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = doc.Name;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //}\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n }\r\n }\r\n\r\n viewDocument(document: Document): void {\r\n this.previewDocument = document;\r\n $(\"#loadingoverlay\").show();\r\n }\r\n\r\n closeDocument(): void {\r\n this.previewDocument = null;\r\n }\r\n\r\n nextDocument(next: boolean = true): void {\r\n let i = this.documents.indexOf(this.previewDocument);\r\n next ? i++ : i--;\r\n if (i < 0) {\r\n i = this.documents.length - 1;\r\n } else if (i >= this.documents.length) {\r\n i = 0;\r\n }\r\n this.viewDocument(this.documents[i]);\r\n }\r\n\r\n onPdfAfterLoadComplete(pdf: PDFDocumentProxy) {\r\n // temp save pdf page count for the on complete function\r\n this.pageCount = pdf.numPages;\r\n }\r\n\r\n onPdfPageRendered(e: any) {\r\n $(\"#loadingoverlay\").show(); // in case the overlay is cancelled by other function somewhere else\r\n // after all pages are rendered, call onComplete\r\n this.pageCount--;\r\n if (this.pageCount === 0) {\r\n $(\"#loadingoverlay\").hide();\r\n }\r\n }\r\n\r\n onPdfError(error: any) {\r\n this.toasterService.pop(\r\n \"error\",\r\n \"\",\r\n \"Fehler beim Laden des PDF Dokuments. \" + error\r\n );\r\n }\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {DefectWizardNavigationPaths} from '../defect-wizard-navigation-paths.enum';\r\nimport {ConfirmationModal} from '../../../../core/popup/confirmation.modal';\r\nimport {Utils} from '../../../../core/tools/utils';\r\nimport {IncidentWizardModel} from '../../incident/incident-wizard-model';\r\nimport {DefectWizardService} from '../defect-wizard.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from \"../../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n@Component({\r\n selector: 'app-defect-wizard-equipment',\r\n templateUrl: './defect-wizard-equipment.component.html',\r\n styleUrls: ['./defect-wizard-equipment.component.scss']\r\n})\r\nexport class DefectWizardEquipmentComponent implements OnInit, OnDestroy {\r\n\r\n model: IncidentWizardModel;\r\n\r\n installEquipments: PropertyCore.Equipment[];\r\n\r\n searchFilter: string = '';\r\n equipments: PropertyCore.EquipmentType[];\r\n equipmentFilter: any = '';\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: DefectWizardService,\r\n private toasterService: ToasterService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDefect();\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.buildingUT)))\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.installEquipments = res));\r\n this.subscriptions.add(from(this.odataCoreService.EquipmentType.Query().Exec().then(x => x.value)).subscribe(res => this.equipments = res));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n selectEquipment(equipment: PropertyCore.Equipment): void {\r\n if (!this.model.equipment || this.model.equipment.Identity !== equipment.Identity) {\r\n this.model.equipment = equipment;\r\n } else {\r\n // deselect\r\n this.model.equipment = null;\r\n }\r\n }\r\n\r\n async save(next: boolean = false): Promise {\r\n this.model.Identity = Utils.guid();\r\n\r\n var equipmentBind;\r\n if (this.model.equipment) {\r\n equipmentBind = this.odataCoreService.Equipment.Get().Key(Guid.parse(this.model.equipment.Identity)).Bind();\r\n } else {\r\n equipmentBind = \"\";\r\n }\r\n\r\n let res = await this.odataCoreService.Event.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Event())\r\n .ValueProperty(\"Identity\", this.model.Identity)\r\n .ValueProperty(\"Type\", this.model.type)\r\n .ValueProperty(\"DueDate\", this.model.dueDate)\r\n .ValueProperty(\"IsDefectHandler\", this.model.isDefectHandler)\r\n .ValueProperty(\"Guidelines\", this.model.guidelines)\r\n .ValueProperty(\"Qualification\", this.model.qualification)\r\n .ValuePropertyBinding(\"Equipment\", equipmentBind)\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.model.buildingUT)).Bind())\r\n .ValuePropertyBinding(\"Parent\", this.odataCoreService.Event.Get().Key(Guid.parse(this.model.parentId)).Bind())\r\n .Exec();\r\n this.model.id = res.Id;\r\n let res2 = await this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.model.Identity))\r\n .Actions()\r\n .MakeSeriesInOperationsOnEventInPropertyCore()\r\n .Execute();\r\n\r\n await this.odataCoreService.Schedule.Patch()\r\n .Key(Guid.parse(res2.Identity))\r\n .ValueType(this.odataCoreService.ODataTypes().Schedule())\r\n .ValueProperty(\"Cycle\", this.model.cycle)\r\n .ValueProperty(\"CycleUnit\", this.model.cycleUnit)\r\n .ValueProperty(\"CycleStart\", this.model.dueDate)\r\n .Exec();\r\n if (this.model.contact) {\r\n await this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.model.Identity))\r\n .Value(\"ServiceProvider\", this.odataCoreService.ServiceProvider.Get().Key(Guid.parse(this.model.contact.Identity)).Bind())\r\n .Post()\r\n if (next) {\r\n this.toasterService.pop('info', '', this.translateService.instant('DefectWizardEquipment.create_success'));\r\n this.service.resetCurrentDefect();\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.START);\r\n } else {\r\n await this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.model.parentId))\r\n .NavigateToArray(\"Response\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().EventResponse())\r\n .ValueProperty(\"IsDefectProcessed\", true)\r\n .Exec();\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.EXIT); \r\n }\r\n\r\n } else {\r\n if (next) {\r\n this.toasterService.pop('info', '', this.translateService.instant('DefectWizardEquipment.create_success'));\r\n this.service.resetCurrentDefect();\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.START);\r\n } else {\r\n await this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.model.parentId))\r\n .NavigateToArray(\"Response\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().EventResponse())\r\n .ValueProperty(\"IsDefectProcessed\", true)\r\n .Exec();\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.EXIT); \r\n }\r\n }\r\n\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('DefectWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('DefectWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('DefectWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('DefectWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentDefect();\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(DefectWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n}\r\n","export enum DefectWizardNavigationPaths {\r\n\r\n DATA = 'data',\r\n ADD_SERVICE_CONTACT = 'add-service-contact',\r\n EQUIPMENT = 'equipment',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit'\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { IncidentWizardModel } from './../../incident/incident-wizard-model';\r\nimport { DefectWizardNavigationPaths } from './../defect-wizard-navigation-paths.enum';\r\nimport { DefectWizardService } from './../defect-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-defect-wizard-progress',\r\n templateUrl: './defect-wizard-progress.component.html',\r\n styleUrls: ['./defect-wizard-progress.component.scss']\r\n})\r\nexport class DefectWizardProgressComponent implements OnInit {\r\n\r\n PAGE_DATA = DefectWizardNavigationPaths.DATA;\r\n PAGE_ADD_SERVICE_CONTACT = DefectWizardNavigationPaths.ADD_SERVICE_CONTACT;\r\n PAGE_EQUIPMENT = DefectWizardNavigationPaths.EQUIPMENT;\r\n\r\n model: IncidentWizardModel;\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n currentPage: DefectWizardNavigationPaths;\r\n\r\n constructor(private service: DefectWizardService) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDefect();\r\n }\r\n\r\n navigate(pageChangeEvent: DefectWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\nimport {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {DefectWizardNavigationPaths} from './defect-wizard-navigation-paths.enum';\r\nimport {DefectWizardService} from './defect-wizard.service';\r\nimport { Incident } from '../../../core/model/incident';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-defect-wizard',\r\n templateUrl: './defect-wizard.component.html',\r\n styleUrls: ['./defect-wizard.component.scss']\r\n})\r\nexport class DefectWizardComponent implements OnInit, OnDestroy {\r\n\r\n navigateBack: string;\r\n\r\n currentPage: DefectWizardNavigationPaths;\r\n\r\n modelReady: boolean;\r\n\r\n PAGE_DATA = DefectWizardNavigationPaths.DATA;\r\n PAGE_ADD_SERVICE_CONTACT = DefectWizardNavigationPaths.ADD_SERVICE_CONTACT;\r\n PAGE_EQUIPMENT = DefectWizardNavigationPaths.EQUIPMENT;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private service: DefectWizardService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.navigateBack = this.route.snapshot.data.navigateBack;\r\n this.currentPage = this.PAGE_DATA;\r\n this.service.startWizard();\r\n this.subscriptions.add(this.route.paramMap.pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Event.Query()\r\n .Expand(x => {\r\n x.Expand(\"Response\"),\r\n x.Expand(\"Schedule\", xa => {\r\n xa.Expand(\"InspectionDuty\", xaa => {\r\n xaa.Select(\"Id\"),\r\n xaa.Expand(\"OperatorTask\", xaaa => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\")\r\n })\r\n }),\r\n xa.Expand(\"MaintenanceContract\", xab => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", xabb => {\r\n xabb.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"Building\", xb => {\r\n xb.Select(\"Name\"),\r\n xb.Select(\"Id\"),\r\n xb.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Equipment\", xc => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\"),\r\n xc.Expand(\"Room\", xcc => {\r\n xcc.Select(\"Name\"),\r\n xcc.Select(\"Id\"),\r\n xcc.Select(\"Identity\")\r\n xcc.Expand(\"Floor\", xccc => {\r\n xccc.Select(\"Id\"),\r\n xccc.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"ServiceProvider\", xd => {\r\n xd.Select(\"Name\"),\r\n xd.Select(\"Id\"),\r\n xd.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Module\", xe => {\r\n xe.Select(\"Name\"),\r\n xe.Select(\"Id\"),\r\n xe.Select(\"Identity\"),\r\n xe.Expand(\"ModuleType\", xee => {\r\n xee.Select(\"Code\"),\r\n xee.Select(\"Id\"),\r\n xee.Select(\"Name\")\r\n })\r\n })\r\n x.Expand(\"KpiMarker\")\r\n })\r\n .Filter(x => x\r\n .EqualsField(\"Id\", (+params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Incident(), res[0])\r\n }))\r\n }))\r\n .subscribe(res => {\r\n this.service.fillWizard(res);\r\n this.modelReady = true;\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: DefectWizardNavigationPaths): void {\r\n switch (pageChangeEvent) {\r\n\r\n case DefectWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_DATA;\r\n break;\r\n }\r\n case DefectWizardNavigationPaths.EXIT: {\r\n const buildingUT = this.service.getParentIncident().Building.Identity;\r\n const parentIncidentId = this.service.getParentIncident().Id;\r\n const newIncidentId = 0; //this.service.getCurrentDefect().id; // we just want to navigate to parent incident\r\n if (this.navigateBack && this.navigateBack === 'building' && buildingUT && (newIncidentId || parentIncidentId)) {\r\n this.router.navigate(['/building', buildingUT, {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['defect']}}],\r\n right: ['incident', (newIncidentId || parentIncidentId)]\r\n }\r\n }]);\r\n } else if (this.navigateBack && this.navigateBack === 'dashboard-conformity-defect') {\r\n this.router.navigate(['/dashboard', {\r\n outlets: {\r\n left: ['board'],\r\n right: ['conformity', 'list', {tab: 'defect'}]\r\n }\r\n }]);\r\n } else {\r\n console.error('Could not find a navigation route for defect wizard!');\r\n }\r\n break;\r\n }\r\n case DefectWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n }\r\n break;\r\n }\r\n case DefectWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case DefectWizardNavigationPaths.DATA: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_ADD_SERVICE_CONTACT || this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case DefectWizardNavigationPaths.ADD_SERVICE_CONTACT: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_ADD_SERVICE_CONTACT || this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_ADD_SERVICE_CONTACT;\r\n }\r\n break;\r\n }\r\n case DefectWizardNavigationPaths.EQUIPMENT: {\r\n if (this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveNewServiceContact(serviceContact: PropertyCore.ServiceProvider) {\r\n this.service.getCurrentDefect().contact = serviceContact;\r\n this.processPageChangeRequest(DefectWizardNavigationPaths.DATA);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { Incident } from './../../../core/model/incident';\r\nimport { IncidentWizardModel } from './../incident/incident-wizard-model';\r\n\r\n\r\n@Injectable()\r\nexport class DefectWizardService {\r\n\r\n model: IncidentWizardModel = new IncidentWizardModel;\r\n\r\n parentIncident: Incident;\r\n\r\n constructor() { }\r\n\r\n getCurrentDefect(): IncidentWizardModel {\r\n return this.model;\r\n }\r\n\r\n getParentIncident(): Incident {\r\n return this.parentIncident;\r\n }\r\n\r\n startWizard(): void {\r\n this.resetCurrentDefect();\r\n }\r\n\r\n fillWizard(parentIncident: Incident): void {\r\n this.parentIncident = parentIncident;\r\n this.model.parentId = this.parentIncident.Identity;\r\n this.model.buildingUT = this.parentIncident.Building.Identity;\r\n this.model.buildingName = this.parentIncident.Building.Name;\r\n if (this.parentIncident.Equipment) {\r\n this.model.equipment = { Id: undefined, Identity: this.parentIncident.Equipment.Identity, Name: this.parentIncident.Equipment.Name, CustomId: this.parentIncident.Equipment.CustomId, Building: { Identity: this.parentIncident.Building.Identity, Name: this.parentIncident.Building.Name } };\r\n }\r\n }\r\n\r\n createDefect(): void {\r\n // service call\r\n }\r\n\r\n resetCurrentDefect(): void {\r\n this.model.reset();\r\n this.model.isDefectHandler = true;\r\n\r\n this.parentIncident && this.fillWizard(this.parentIncident);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FileItem } from 'ng2-file-upload';\r\nimport { Subscription } from 'rxjs';\r\nimport { IdName } from './../../../../core/model/idName';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { DocumentType, DocumentWizardModel } from './../document-wizard-model';\r\nimport { DocumentWizardNavigationPaths } from './../document-wizard-navigation-paths.enum';\r\nimport { DocumentWizardService } from './../document-wizard.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-document-wizard-data',\r\n templateUrl: './document-wizard-data.component.html',\r\n styleUrls: ['./document-wizard-data.component.scss']\r\n})\r\nexport class DocumentWizardDataComponent implements OnInit, OnDestroy {\r\n\r\n model: DocumentWizardModel;\r\n\r\n types: IdName[] = [];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: DocumentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDocument();\r\n\r\n for (const enumValue in DocumentType) {\r\n if (typeof DocumentType[enumValue] === 'number') {\r\n this.types.push({ Id: +DocumentType[enumValue], Name: enumValue });\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n // convert string value to number value\r\n this.model.type = +this.model.type;\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.NEXT);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('DocumentWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('DocumentWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('DocumentWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('DocumentWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentDocument();\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n onVirtualChange(virtual: boolean): void {\r\n this.model.virtual = virtual;\r\n\r\n // reset data which depends on virtual\r\n this.model.file = null;\r\n this.model.name = null;\r\n\r\n this.formSubmitted = false;\r\n }\r\n\r\n onTypeChange(type: DocumentType): void {\r\n this.model.type = +type; // for sure convert string to number\r\n\r\n // reset data which depends on type\r\n this.model.DocumentType = null;\r\n this.model.equipments = [];\r\n this.model.incidents = [];\r\n }\r\n\r\n onAddFile(file: FileItem): void {\r\n this.model.file = file;\r\n }\r\n\r\n onRemoveFile(): void {\r\n this.model.file = null;\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {forkJoin, Subscription, from, Observable} from 'rxjs';\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {DocumentWizardNavigationPaths} from '../document-wizard-navigation-paths.enum';\r\nimport {Selectable} from '../../../../core/model/common';\r\nimport {FilterByPipe} from '../../../../core/pipes/filter.pipe';\r\nimport {ConfirmationModal} from \"../../../../core/popup/confirmation.modal\";\r\nimport {DocumentWizardModel} from '../document-wizard-model';\r\nimport {DocumentWizardService} from '../document-wizard.service';\r\nimport { ODataCoreService } from \"../../../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { FileItem } from 'ng2-file-upload';\r\nimport { HttpClient} from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-document-wizard-equipment',\r\n templateUrl: './document-wizard-equipment.component.html',\r\n styleUrls: ['./document-wizard-equipment.component.scss']\r\n})\r\nexport class DocumentWizardEquipmentComponent implements OnInit, OnDestroy {\r\n\r\n model: DocumentWizardModel;\r\n installEquipments: Selectable[];\r\n\r\n searchFilter: string = '';\r\n equipments: PropertyCore.EquipmentType[];\r\n equipmentFilter: any = '';\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: DocumentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private filterByPipe: FilterByPipe,\r\n private odataCoreService: ODataCoreService,\r\n private httpClient: HttpClient\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDocument();\r\n\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.building.Identity)))\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => {\r\n // TODO odata cast?\r\n const res2 = []>res;\r\n // preselect already selected items\r\n if (this.model.equipments && this.model.equipments.length > 0) {\r\n this.model.equipments.map(mie => {\r\n const foundIe = res2.filter(ie => ie.Identity === mie.Identity);\r\n foundIe.forEach(x => x.selected = true);\r\n });\r\n }\r\n this.installEquipments = res2;\r\n }));\r\n this.subscriptions.add(from(this.odataCoreService.EquipmentType.Query().Exec().then(x => x.value)).subscribe(res => this.equipments = res));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n async save(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n if (this.model.virtual) {\r\n await forkJoin(...this.model.equipments.map(async equipment =>\r\n await this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\"DocumentType\", this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind())\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec()\r\n .then(async res => {\r\n await this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(equipment.Identity))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res.Identity)).Bind())\r\n .Post().then(res1 => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n });\r\n }))\r\n )\r\n } else {\r\n await this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\"DocumentType\", this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind())\r\n .ValueProperty(\"Name\", this.model.file.file.name)\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec()\r\n .then(async res => {\r\n\r\n if(this.model.file.file.type != \"\") {\r\n\r\n var odataDocumentUrl = this.odataCoreService.Document.Get().Raw()\r\n .Key(Guid.parse(res.Identity))\r\n .ToUrlString(false);\r\n\r\n await this.uploadODataDocument(this.model.file, odataDocumentUrl)\r\n .toPromise().then(async res1 => {\r\n var equipmentIdentity = this.model.equipments.map(x => x.Identity);\r\n let x = 0;\r\n while (equipmentIdentity.length > x) {\r\n await this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(equipmentIdentity[x]))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res.Identity)).Bind())\r\n .Post()\r\n .then(res2 => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n });\r\n x++;\r\n }\r\n });\r\n } else {\r\n await this.uploadDocumentNoContentType(res.Identity);\r\n }\r\n })\r\n }\r\n }\r\n\r\n uploadODataDocument(file: FileItem, url: string): Observable {\r\n return this.httpClient.put(url, file._file);\r\n }\r\n\r\n uploadODataDocumentNoCT(file: Blob, url: string): Observable {\r\n return this.httpClient.put(url, file);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('DocumentWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('DocumentWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('DocumentWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('DocumentWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentDocument();\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n selectAll(all: boolean): void {\r\n let filtered = this.installEquipments;\r\n if (this.searchFilter) {\r\n filtered = this.filterByPipe.transform(filtered, this.searchFilter, ['CustomId', 'Name', 'Room.Floor.Name', 'Room.Name']);\r\n }\r\n if (this.equipmentFilter) {\r\n filtered = this.filterByPipe.transform(filtered, this.equipmentFilter, 'equipmentId');\r\n }\r\n filtered.map(installEquipment => (installEquipment.selected = all));\r\n\r\n this.saveToModel();\r\n }\r\n\r\n saveToModel(): void {\r\n const selectedIEs: PropertyCore.Equipment[] = this.installEquipments.filter(installEquipment => installEquipment.selected);\r\n\r\n if (!this.model.equipments) {\r\n this.model.equipments = selectedIEs;\r\n } else {\r\n // ignore already set installequipments and remove unselected ones\r\n this.model.equipments = this.model.equipments.filter(cie => selectedIEs.some(sie => sie.Identity === cie.Identity));\r\n // add new installequipments to model\r\n selectedIEs.forEach(sie => {\r\n if (!this.model.equipments.some(cie => cie.Identity === sie.Identity)) {\r\n this.model.equipments.push(sie);\r\n }\r\n });\r\n }\r\n }\r\n\r\n async uploadDocumentNoContentType(documentIdentity : string): Promise {\r\n let fileExtensionIndex = this.model.file.file.name.lastIndexOf(\".\");\r\n let fileExtension = this.model.file.file.name.substring(fileExtensionIndex);\r\n let blobFile;\r\n\r\n switch (fileExtension) {\r\n\r\n case '.pdf':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/pdf'); \r\n break;\r\n\r\n case '.png':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/png');\r\n break;\r\n\r\n case '.jpg':\r\n case '.jpeg':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/jpeg');\r\n break;\r\n\r\n case '.tif':\r\n case '.tiff':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/tiff');\r\n break;\r\n\r\n case '.doc':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/msword');\r\n break;\r\n\r\n case '.docx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document');\r\n break;\r\n\r\n case '.xls':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.ms-excel');\r\n break;\r\n\r\n case '.xlsx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n break;\r\n\r\n case '.ppt': \r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.ms-powerpoint');\r\n break;\r\n\r\n case '.pptx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.presentationml.presentation');\r\n break;\r\n\r\n case '.dwg':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/vnd.dwg');\r\n break;\r\n\r\n default: \r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/octet-stream');\r\n break;\r\n \r\n }\r\n\r\n var odataDocumentUrl = this.odataCoreService.Document.Get().Raw()\r\n .Key(Guid.parse(documentIdentity))\r\n .ToUrlString(false);\r\n\r\n await this.uploadODataDocumentNoCT(blobFile, odataDocumentUrl);\r\n var equipmentIdentity = this.model.equipments.map(x => x.Identity);\r\n let x = 0;\r\n while (equipmentIdentity.length > x) {\r\n await this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(equipmentIdentity[x]))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(documentIdentity)).Bind())\r\n .Post();\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n x++;\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, from, Observable} from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {DocumentWizardNavigationPaths} from '../document-wizard-navigation-paths.enum';\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {Utils} from './../../../../core/tools/utils';\r\nimport {DocumentWizardModel} from './../document-wizard-model';\r\nimport {DocumentWizardService} from './../document-wizard.service';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { FileItem } from 'ng2-file-upload';\r\n\r\n\r\n@Component({\r\n selector: 'app-document-wizard-incident-data',\r\n templateUrl: './document-wizard-incident-data.component.html',\r\n styleUrls: ['./document-wizard-incident-data.component.scss']\r\n})\r\nexport class DocumentWizardIncidentDataComponent implements OnInit, OnDestroy {\r\n\r\n model: DocumentWizardModel;\r\n\r\n buildingIncidents: any[]; // array with Incident[] per building\r\n installEquipmentIncidents: any[]; // array with Incident[] per installEquipment\r\n\r\n nowNgbDateStruct = Utils.dateToDatepicker((new Date()));\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: DocumentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService,\r\n private httpClient: HttpClient\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDocument();\r\n\r\n this.buildingIncidents = this.model.missingDataIncidents.filter(x => !x.Equipment).reduce((prev, next) => {\r\n // if event does not have response yet, add it, so that data can be edited\r\n if (!next.Response) {\r\n next.Response = {DefectRating: PropertyCore.DefectRatings.Undefined};\r\n next.DefectChecker = DefectShort(next.Response.DefectRating);\r\n }\r\n const b = prev.find(x => x.buildingUT === next.Building.Identity);\r\n if (!b) {\r\n prev.push({buildingUT: next.Building.Identity, buildingName: next.Building.Name, dataList: [next]});\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []);\r\n this.installEquipmentIncidents = this.model.missingDataIncidents.filter(x => x.Equipment).reduce((prev, next) => {\r\n // if event does not have response yet, add it, so that data can be edited\r\n if (!next.Response) {\r\n next.Response = {DefectRating: PropertyCore.DefectRatings.Undefined};\r\n next.DefectChecker = DefectShort(next.Response.DefectRating);\r\n }\r\n const b = prev.find(x => x.installEquipmentId === next.Equipment.Identity);\r\n if (!b) {\r\n prev.push({\r\n installEquipmentId: next.Equipment.Identity,\r\n installEquipmentName: next.Equipment.Name,\r\n installEquipmentCustomId: next.Equipment.CustomId,\r\n dataList: [next]\r\n });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n // save incident data\r\n let a = 0;\r\n while(this.model.incidents.length > a) {\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.model.incidents[a].Identity))\r\n .Select(\"Identity\",\"Response\")\r\n .Expand(x => {\r\n x.Expand(\"Response\", y => {\r\n y.Select(\"Identity\")\r\n })\r\n }) \r\n .Exec()\r\n .then(res4 => {\r\n var eventResponse = res4.value[0];\r\n var eventModel = this.model.missingDataIncidents.find(x => x.Identity == eventResponse.Identity);\r\n if(eventModel?.Identity != undefined){\r\n if (eventResponse.Response != null){\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(eventModel.Identity))\r\n .NavigateToArray(\"Response\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().EventResponse())\r\n .ValueProperty(\"Comment\", eventModel.Response.Comment ? eventModel.Response.Comment : '') \r\n .ValueProperty(\"DefectRating\", eventModel.IsSkipped ? PropertyCore.DefectRatings.Undefined : (eventModel.DefectChecker ? PropertyCore.DefectRatings.Unrated : PropertyCore.DefectRatings.Undefined)) // skipped incident does not have defect))\r\n .ValueProperty(\"ReferenceDate\", eventModel.IsSkipped ? null : eventModel.RefDate) // skipped incident does not have refdate \r\n .Exec()\r\n } \r\n else {\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(eventModel.Identity))\r\n .NavigateToArray(\"Response\")\r\n .Post()\r\n .ValueType(this.odataCoreService.ODataTypes().EventResponse())\r\n .ValueProperty(\"Comment\", eventModel.Response.Comment ? eventModel.Response.Comment : '') \r\n .ValueProperty(\"DefectRating\", eventModel.IsSkipped ? PropertyCore.DefectRatings.Undefined : (eventModel.DefectChecker ? PropertyCore.DefectRatings.Unrated : PropertyCore.DefectRatings.Undefined)) // skipped incident does not have defect))\r\n .ValueProperty(\"ReferenceDate\", eventModel.IsSkipped ? null : eventModel.RefDate) // skipped incident does not have refdate \r\n .Exec()\r\n }\r\n } else {\r\n // do nothing\r\n } \r\n })\r\n a++;\r\n }\r\n \r\n // save document data\r\n if (this.model.virtual) {\r\n this.uploadVirtualDocumentEvent(); \r\n } else {\r\n this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\"DocumentType\", this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind())\r\n .ValueProperty(\"Name\", this.model.file.file.name)\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec()\r\n .then(res2 => {\r\n if(this.model.file.file.type != \"\") {\r\n var odataDocumentUrl = this.odataCoreService.Document.Get().Raw()\r\n .Key(Guid.parse(res2.Identity))\r\n .ToUrlString(false);\r\n\r\n from(this.uploadODataDocument(this.model.file, odataDocumentUrl))\r\n .subscribe(res4 => {\r\n var eventDetails = this.model.incidents;\r\n let x = 0;\r\n while (eventDetails.length > x) {\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(eventDetails[x].Identity))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res2.Identity)).Bind())\r\n .Post()\r\n .then(res3 => { \r\n if(eventDetails.length == x){\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n x++;\r\n }\r\n }) \r\n } else {\r\n this.uploadDocumentNoContentType(res2.Identity);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private async uploadVirtualDocumentEvent() {\r\n for (let x = 0; x < this.model.incidents.length; x++) {\r\n let res = await this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\"DocumentType\", this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind())\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec();\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.model.incidents[x].Identity))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res.Identity)).Bind())\r\n .Post()\r\n if (this.model.incidents.length == x + 1) {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n\r\n }\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('DocumentWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('DocumentWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('DocumentWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('DocumentWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentDocument();\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n uploadODataDocument(file: FileItem, url: string): Observable {\r\n return this.httpClient.put(url, file._file);\r\n }\r\n\r\n uploadODataDocumentNoCT(file: Blob, url: string): Observable {\r\n return this.httpClient.put(url, file);\r\n }\r\n\r\n uploadDocumentNoContentType(documentIdentity : string): void{\r\n let fileExtensionIndex = this.model.file.file.name.lastIndexOf(\".\");\r\n let fileExtension = this.model.file.file.name.substring(fileExtensionIndex);\r\n let blobFile;\r\n\r\n switch (fileExtension) {\r\n\r\n case '.pdf':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/pdf'); \r\n break;\r\n\r\n case '.png':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/png');\r\n break;\r\n\r\n case '.jpg':\r\n case '.jpeg':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/jpeg');\r\n break;\r\n\r\n case '.tif':\r\n case '.tiff':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/tiff');\r\n break;\r\n\r\n case '.doc':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/msword');\r\n break;\r\n\r\n case '.docx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document');\r\n break;\r\n\r\n case '.xls':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.ms-excel');\r\n break;\r\n\r\n case '.xlsx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n break;\r\n\r\n case '.ppt': \r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.ms-powerpoint');\r\n break;\r\n\r\n case '.pptx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.presentationml.presentation');\r\n break;\r\n\r\n case '.dwg':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/vnd.dwg');\r\n break;\r\n\r\n default: \r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/octet-stream');\r\n break;\r\n \r\n }\r\n\r\n var odataDocumentUrl = this.odataCoreService.Document.Get().Raw().Key(Guid.parse(documentIdentity)).ToUrlString(false);\r\n\r\n from(this.uploadODataDocumentNoCT(blobFile, odataDocumentUrl))\r\n .subscribe(res => {\r\n var eventIdentity = this.model.incidents.map(x => x.Identity);\r\n let x = 0;\r\n while (eventIdentity.length > x) {\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(eventIdentity[x]))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(documentIdentity)).Bind())\r\n .Post()\r\n .then(res => {\r\n if(eventIdentity.length == x + 1){\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n x++;\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction DefectShort(DefectRating): boolean {\r\n switch (DefectRating) {\r\n case PropertyCore.DefectRatings.Unrated:\r\n case PropertyCore.DefectRatings.Minor:\r\n case PropertyCore.DefectRatings.Major:\r\n case PropertyCore.DefectRatings.Dangerous:\r\n return true;\r\n case PropertyCore.DefectRatings.Undefined:\r\n return false;\r\n }\r\n return false;\r\n};\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { forkJoin, Subscription, from, Observable } from \"rxjs\";\r\nimport { DocumentWizardNavigationPaths } from \"../document-wizard-navigation-paths.enum\";\r\nimport { Incident } from \"../../../../core/model/incident\";\r\nimport { DateComparePipe } from \"../../../../core/pipes/dateCompare.pipe\";\r\nimport { FilterByPipe } from \"../../../../core/pipes/filter.pipe\";\r\nimport { ConfirmationModal } from \"../../../../core/popup/confirmation.modal\";\r\nimport { DocumentWizardModel } from \"../document-wizard-model\";\r\nimport { DocumentWizardService } from \"../document-wizard.service\";\r\nimport { ODataPath } from \"../../../../core/odata/odataclient\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ODataCoreService } from \"../../../../core/odata-services/odata.coreapi.service\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { Utils } from \"../../../../core/tools/utils\";\r\nimport { FileItem } from \"ng2-file-upload\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"app-document-wizard-incident\",\r\n templateUrl: \"./document-wizard-incident.component.html\",\r\n styleUrls: [\"./document-wizard-incident.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DocumentWizardIncidentComponent implements OnInit, OnDestroy {\r\n model: DocumentWizardModel;\r\n\r\n buildingIncidents: any[]; // array with Incident[] per building\r\n installEquipmentIncidents: any[]; // array with Incident[] per installEquipment\r\n\r\n searchFilter: string = \"\";\r\n fromDateFilter: Date;\r\n toDateFilter: Date;\r\n typeshortvalue: string;\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: DocumentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private filterByPipe: FilterByPipe,\r\n private dateComparePipe: DateComparePipe,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService,\r\n private httpClient: HttpClient\r\n ) {}\r\n\r\n ngOnInit() {\r\n // t+3 month\r\n const to = new Date();\r\n to.setMonth(to.getMonth() + 3);\r\n to.setDate(to.getDate() + 1);\r\n to.setHours(0, 0, 0, 0);\r\n // prefilled filter\r\n this.toDateFilter = to;\r\n\r\n this.model = this.service.getCurrentDocument();\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n //.And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.building.Identity))\r\n )\r\n .Select(\"Identity\", \"Id\", \"Type\", \"Guidelines\", \"Qualification\", \"DueDate\", \"RefDate\")\r\n .Expand((x) => {\r\n x.Expand(\"Schedule\", (y) => {\r\n y.Select(\"CycleUnit\");\r\n y.Select(\"Cycle\");\r\n y.Expand(\"InspectionDuty\", (y) => {\r\n y.Select(\"OperatorTask\");\r\n y.Expand(\"OperatorTask\", (z) => {\r\n z.Select(\"Guidelines\");\r\n z.Select(\"Qualification\");\r\n });\r\n });\r\n y.Expand(\"MaintenanceContract\", (z) => {\r\n z.Select(\"StartDate\");\r\n z.Expand(\"ServiceProvider\", (za) => {\r\n za.Select(\"Name\");\r\n });\r\n });\r\n });\r\n x.Expand(\"Building\", (y) => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"Equipment\", (y) => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n y.Select(\"CustomId\");\r\n });\r\n x.Expand(\"Documents\", (y) => {\r\n y.Select(\"DocumentType\"),\r\n y.Expand(\"DocumentType\", (z) => {\r\n z.Select(\"Id\"), z.Select(\"Name\");\r\n });\r\n });\r\n x.Expand(\"ServiceProvider\", (y) => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"KpiMarker\");\r\n })\r\n .OrderBy(\"DueDate\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n return Object.assign(new Incident(), Utils.mapAllJSONDatesToDates(i));\r\n })\r\n )\r\n )\r\n .subscribe((res) => {\r\n // if primary incident set, then prefilter results\r\n this.subscriptions.add(\r\n this.route.queryParams.subscribe((params) => {\r\n const incidentId = params[\"incidentId\"];\r\n if (incidentId && this.model.incidents && this.model.incidents.length) {\r\n switch (this.model.incidents[0].TypeShort) {\r\n case \"P\":\r\n case \"W\":\r\n // for P and W only incidents of same type and with missing required document\r\n res = res.filter(\r\n (i) => TypeShort(i.Type) === this.model.incidents[0].TypeShort && i.Id === incidentId\r\n );\r\n break;\r\n case \"I\":\r\n case \"S\":\r\n // for I and E only the given incident\r\n res = res.filter((i) => i.Id === incidentId);\r\n break;\r\n }\r\n }\r\n })\r\n );\r\n\r\n // preselect already selected items\r\n if (this.model.incidents && this.model.incidents.length > 0) {\r\n this.model.incidents.map((mi) => {\r\n const foundIe = res.filter((i) => i.Identity === mi.Identity);\r\n foundIe.forEach((x) => {\r\n x.selected = true;\r\n });\r\n });\r\n }\r\n\r\n this.buildingIncidents = res\r\n .filter((x) => !x.Equipment)\r\n .reduce((prev, next) => {\r\n const b = prev.find((x) => x.buildingUT === next.Building.Identity);\r\n if (!b) {\r\n prev.push({\r\n buildingUT: next.Building.Identity,\r\n buildingName: next.Building.Name,\r\n dataList: [next],\r\n });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []);\r\n this.installEquipmentIncidents = res\r\n .filter((x) => x.Equipment)\r\n .reduce((prev, next) => {\r\n const b = prev.find((x) => x.installEquipmentId === next.Equipment.Identity);\r\n if (!b) {\r\n prev.push({\r\n installEquipmentId: next.Equipment.Identity,\r\n installEquipmentName: next.Equipment.Name,\r\n installEquipmentCustomId: next.Equipment.CustomId,\r\n dataList: [next],\r\n });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []);\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n async next(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n // go to next page if missing incident data\r\n if (\r\n this.model.DocumentType.Id !== 1 &&\r\n this.model.DocumentType.Id !== 2 &&\r\n this.model.missingDataIncidents &&\r\n this.model.missingDataIncidents.length\r\n ) {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.NEXT);\r\n } else {\r\n // save\r\n if (this.model.virtual) {\r\n if (this.model.incidents.length) {\r\n await forkJoin(\r\n ...this.model.incidents.map(\r\n async (incident) =>\r\n await this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\r\n \"DocumentType\",\r\n this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind()\r\n )\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec()\r\n .then(async (res) => {\r\n await this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(incident.Identity))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res.Identity)).Bind())\r\n .Post()\r\n .then((res1) => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n });\r\n })\r\n )\r\n );\r\n }\r\n } else {\r\n await this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\r\n \"DocumentType\",\r\n this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind()\r\n )\r\n .ValueProperty(\"Name\", this.model.file.file.name)\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec()\r\n .then(async (res) => {\r\n if (this.model.file.file.type != \"\") {\r\n var odataDocumentUrl = this.odataCoreService.Document.Get()\r\n .Raw()\r\n .Key(Guid.parse(res.Identity))\r\n .ToUrlString(false);\r\n\r\n this.uploadODataDocument(this.model.file, odataDocumentUrl)\r\n .toPromise()\r\n .then(async (res1) => {\r\n var eventIdentity = this.model.incidents.map((x) => x.Identity);\r\n let x = 0;\r\n while (eventIdentity.length > x) {\r\n await this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(eventIdentity[x]))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res.Identity)).Bind())\r\n .Post()\r\n .then((res2) => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n });\r\n x++;\r\n }\r\n });\r\n } else {\r\n await this.uploadDocumentNoContentType(res.Identity);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n uploadODataDocument(file: FileItem, url: string): Observable {\r\n return this.httpClient.put(url, file._file);\r\n }\r\n\r\n uploadODataDocumentNoCT(file: Blob, url: string): Observable {\r\n return this.httpClient.put(url, file);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"DocumentWizard._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"DocumentWizard._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"DocumentWizard._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"DocumentWizard._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentDocument();\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n selectAll(all: boolean): void {\r\n let filtered = this.buildingIncidents.concat(this.installEquipmentIncidents).reduce((prev, next) => {\r\n return prev.concat(next.dataList);\r\n }, []);\r\n if (this.searchFilter) {\r\n filtered = this.filterByPipe.transform(filtered, this.searchFilter, [\r\n \"Building.Name\",\r\n \"Equipment.CustomId\",\r\n \"Equipment.Name\",\r\n \"Type\",\r\n \"Guidelines\",\r\n \"ServiceProvider.Name\",\r\n \"Schedule.Cycle\",\r\n \"Schedule.CycleUnit\",\r\n \"DueDate\",\r\n ]);\r\n }\r\n if (this.fromDateFilter) {\r\n filtered = this.dateComparePipe.transform(filtered, this.fromDateFilter, \"DueDate\", \"gte\");\r\n }\r\n if (this.toDateFilter) {\r\n filtered = this.dateComparePipe.transform(filtered, this.toDateFilter, \"DueDate\", \"lte\");\r\n }\r\n filtered.map((incident) => (incident.selected = all));\r\n\r\n this.saveToModel();\r\n }\r\n\r\n saveToModel(): void {\r\n const selectedIncidents: Incident[] = this.buildingIncidents\r\n .concat(this.installEquipmentIncidents)\r\n .reduce((prev, next) => {\r\n return prev.concat(next.dataList);\r\n }, [])\r\n .filter((incident) => incident.selected);\r\n\r\n if (!this.model.incidents) {\r\n this.model.incidents = selectedIncidents;\r\n } else {\r\n // ignore already set incidents and remove unselected ones\r\n const incidents = this.model.incidents.filter((cie) =>\r\n selectedIncidents.some((sie) => sie.Identity === cie.Identity)\r\n );\r\n // add new incidents to model\r\n selectedIncidents.forEach((sie) => {\r\n if (!incidents.some((cie) => cie.Identity === sie.Identity)) {\r\n incidents.push(sie);\r\n }\r\n });\r\n this.model.incidents = incidents;\r\n }\r\n }\r\n\r\n async uploadDocumentNoContentType(documentIdentity: string): Promise {\r\n let fileExtensionIndex = this.model.file.file.name.lastIndexOf(\".\");\r\n let fileExtension = this.model.file.file.name.substring(fileExtensionIndex);\r\n let blobFile;\r\n\r\n switch (fileExtension) {\r\n case \".pdf\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"application/pdf\");\r\n break;\r\n\r\n case \".png\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"image/png\");\r\n break;\r\n\r\n case \".jpg\":\r\n case \".jpeg\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"image/jpeg\");\r\n break;\r\n\r\n case \".tif\":\r\n case \".tiff\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"image/tiff\");\r\n break;\r\n\r\n case \".doc\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"application/msword\");\r\n break;\r\n\r\n case \".docx\":\r\n blobFile = this.model.file._file.slice(\r\n 0,\r\n this.model.file.file.size,\r\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n );\r\n break;\r\n\r\n case \".xls\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"application/vnd.ms-excel\");\r\n break;\r\n\r\n case \".xlsx\":\r\n blobFile = this.model.file._file.slice(\r\n 0,\r\n this.model.file.file.size,\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n );\r\n break;\r\n\r\n case \".ppt\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"application/vnd.ms-powerpoint\");\r\n break;\r\n\r\n case \".pptx\":\r\n blobFile = this.model.file._file.slice(\r\n 0,\r\n this.model.file.file.size,\r\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\"\r\n );\r\n break;\r\n\r\n case \".dwg\":\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"image/vnd.dwg\");\r\n break;\r\n\r\n default:\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, \"application/octet-stream\");\r\n break;\r\n }\r\n\r\n var odataDocumentUrl = this.odataCoreService.Document.Get()\r\n .Raw()\r\n .Key(Guid.parse(documentIdentity))\r\n .ToUrlString(false);\r\n\r\n this.uploadODataDocumentNoCT(blobFile, odataDocumentUrl)\r\n .toPromise()\r\n .then(async (res1) => {\r\n var eventIdentity = this.model.incidents.map((x) => x.Identity);\r\n let x = 0;\r\n while (eventIdentity.length > x) {\r\n await this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(eventIdentity[x]))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(documentIdentity)).Bind())\r\n .Post()\r\n .then((res2) => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n });\r\n x++;\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction TypeShort(Type): string {\r\n switch (Type) {\r\n case Type.Inspection:\r\n case Type.FollowUpInspection:\r\n return \"P\";\r\n case Type.Maintenance:\r\n return \"W\";\r\n case Type.Repair:\r\n return \"I\";\r\n case Type.Custom:\r\n return \"S\";\r\n }\r\n return \"\";\r\n}\r\n","import { FileItem } from 'ng2-file-upload';\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { Selectable } from './../../../core/model/common';\r\nimport { Incident } from './../../../core/model/incident';\r\n\r\n\r\nexport class DocumentWizardModel {\r\n\r\n building: PropertyCore.Building;\r\n\r\n virtual: boolean;\r\n file: FileItem;\r\n name: string;\r\n type: DocumentType;\r\n DocumentType: PropertyCore.DocumentType;\r\n equipments: Selectable[] = [];\r\n _incidents: Incident[] = [];\r\n missingDataIncidents: Incident[] = [];\r\n\r\n typeFromUrl: boolean;\r\n documentTypeFromUrl: boolean;\r\n requiredDocumentTypeId: number;\r\n\r\n reset(): void {\r\n this.building = null;\r\n this.virtual = false;\r\n this.file = null;\r\n this.name = null;\r\n this.type = null;\r\n this.DocumentType = null;\r\n this.equipments = [];\r\n this._incidents = [];\r\n this.missingDataIncidents = [];\r\n this.typeFromUrl = false;\r\n this.documentTypeFromUrl = false;\r\n this.requiredDocumentTypeId = null;\r\n }\r\n\r\n get typeString(): string {\r\n return this.type ? this.type.toString() : null;\r\n }\r\n\r\n set typeString(type: string) {\r\n this.type = +type;\r\n }\r\n\r\n get documentTypeString(): string {\r\n return this.DocumentType ? this.DocumentType.Id.toString() : null;\r\n }\r\n\r\n get incidents(): Incident[] {\r\n return this._incidents.concat(this.missingDataIncidents);\r\n }\r\n\r\n set incidents(incidents: Incident[]) {\r\n this._incidents = incidents.filter(i => i.RefDate);\r\n this.missingDataIncidents = incidents.filter(i => !i.RefDate);\r\n }\r\n}\r\n\r\nexport enum DocumentType {\r\n BUILDING = 3, EQUIPMENT = 2, INCIDENT = 1\r\n}\r\n","export enum DocumentWizardNavigationPaths {\r\n\r\n DATA = 'data',\r\n TYPE = 'type',\r\n EQUIPMENT = 'equipment',\r\n INCIDENT = 'incident',\r\n INCIDENT_DATA = 'incident-data',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit'\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { DocumentType, DocumentWizardModel } from './../document-wizard-model';\r\nimport { DocumentWizardNavigationPaths } from './../document-wizard-navigation-paths.enum';\r\nimport { DocumentWizardService } from './../document-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-document-wizard-progress',\r\n templateUrl: './document-wizard-progress.component.html',\r\n styleUrls: ['./document-wizard-progress.component.scss']\r\n})\r\nexport class DocumentWizardProgressComponent implements OnInit {\r\n\r\n PAGE_DATA = DocumentWizardNavigationPaths.DATA;\r\n PAGE_TYPE = DocumentWizardNavigationPaths.TYPE;\r\n PAGE_EQUIPMENT = DocumentWizardNavigationPaths.EQUIPMENT;\r\n PAGE_INCIDENT = DocumentWizardNavigationPaths.INCIDENT;\r\n PAGE_INCIDENT_DATA = DocumentWizardNavigationPaths.INCIDENT_DATA;\r\n\r\n DOCUMENT_TYPE_BUILDING = DocumentType.BUILDING;\r\n DOCUMENT_TYPE_EQUIPMENT = DocumentType.EQUIPMENT;\r\n DOCUMENT_TYPE_INCIDENT = DocumentType.INCIDENT;\r\n\r\n model: DocumentWizardModel;\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n currentPage: DocumentWizardNavigationPaths;\r\n\r\n constructor(private service: DocumentWizardService) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDocument();\r\n }\r\n\r\n navigate(pageChangeEvent: DocumentWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, from, Observable } from 'rxjs';\r\nimport { PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { DocumentType, DocumentWizardModel } from './../document-wizard-model';\r\nimport { DocumentWizardNavigationPaths } from './../document-wizard-navigation-paths.enum';\r\nimport { DocumentWizardService } from './../document-wizard.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { ODataCoreService } from './../../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { HttpClient} from '@angular/common/http';\r\nimport { FileItem } from 'ng2-file-upload';\r\n\r\n\r\n@Component({\r\n selector: 'app-document-wizard-type',\r\n templateUrl: './document-wizard-type.component.html',\r\n styleUrls: ['./document-wizard-type.component.scss']\r\n})\r\nexport class DocumentWizardTypeComponent implements OnInit, OnDestroy {\r\n\r\n model: DocumentWizardModel;\r\n\r\n documentTypes: PropertyCore.DocumentType[];\r\n\r\n formSubmitted: boolean;\r\n\r\n DOCUMENT_TYPE_BUILDING = DocumentType.BUILDING;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: DocumentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService,\r\n private httpClient: HttpClient\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentDocument();\r\n\r\n switch (this.model.type) {\r\n case DocumentType.BUILDING:\r\n this.subscriptions.add(from(this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", 3))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].DocumentTypes.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.documentTypes = res));\r\n break;\r\n case DocumentType.EQUIPMENT:\r\n this.subscriptions.add(from(this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", 2))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].DocumentTypes.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.documentTypes = res));\r\n break;\r\n case DocumentType.INCIDENT:\r\n this.subscriptions.add(from(this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", 1))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].DocumentTypes.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.documentTypes = res));\r\n break;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n async next(validForm: boolean): Promise {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n if (this.model.type === this.DOCUMENT_TYPE_BUILDING) {\r\n if (this.model.virtual) {\r\n\r\n await this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\"DocumentType\", this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind())\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec()\r\n .then(async res => {\r\n await this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.model.building.Identity))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res.Identity)).Bind())\r\n .Post()\r\n .then(res1 => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n })\r\n })\r\n } else {\r\n await this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\"DocumentType\", this.odataCoreService.DocumentType.Get().Key(this.model.DocumentType.Id).Bind())\r\n .ValueProperty(\"Name\", this.model.file.file.name)\r\n .ValueProperty(\"Description\", this.model.name)\r\n .Exec()\r\n .then(async res => {\r\n await this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.model.building.Identity))\r\n .Value(\"Documents\", this.odataCoreService.Document.Get().Key(Guid.parse(res.Identity)).Bind())\r\n .Post()\r\n .then(async res1 => {\r\n if(this.model.file.file.type != \"\") {\r\n\r\n var odataDocumentUrl = this.odataCoreService.Document.Get().Raw()\r\n .Key(Guid.parse(res.Identity))\r\n .ToUrlString(false);\r\n\r\n await this.uploadODataDocument(this.model.file, odataDocumentUrl)\r\n .toPromise().then(res2 => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n })\r\n \r\n } else {\r\n await this.uploadDocumentNoContentType(res.Identity);\r\n }\r\n })\r\n })\r\n }\r\n } else {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.NEXT);\r\n }\r\n}\r\n\r\n uploadODataDocument(file: FileItem, url: string): Observable {\r\n return this.httpClient.put(url, file._file);\r\n }\r\n\r\n uploadODataDocumentNoCT(file: Blob, url: string): Observable {\r\n return this.httpClient.put(url, file);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('DocumentWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('DocumentWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('DocumentWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('DocumentWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentDocument();\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n onDocumentTypeChange(typeId: string): void {\r\n this.model.DocumentType = this.documentTypes.find(x => x.Id === +typeId);\r\n }\r\n\r\n async uploadDocumentNoContentType(documentIdentity : string): Promise{\r\n let fileExtensionIndex = this.model.file.file.name.lastIndexOf(\".\");\r\n let fileExtension = this.model.file.file.name.substring(fileExtensionIndex);\r\n let blobFile;\r\n\r\n switch (fileExtension) {\r\n\r\n case '.pdf':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/pdf'); \r\n break;\r\n\r\n case '.png':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/png');\r\n break;\r\n\r\n case '.jpg':\r\n case '.jpeg':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/jpeg');\r\n break;\r\n\r\n case '.tif':\r\n case '.tiff':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/tiff');\r\n break;\r\n\r\n case '.doc':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/msword');\r\n break;\r\n\r\n case '.docx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document');\r\n break;\r\n\r\n case '.xls':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.ms-excel');\r\n break;\r\n\r\n case '.xlsx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n break;\r\n\r\n case '.ppt': \r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.ms-powerpoint');\r\n break;\r\n\r\n case '.pptx':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/vnd.openxmlformats-officedocument.presentationml.presentation');\r\n break;\r\n\r\n case '.dwg':\r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'image/vnd.dwg');\r\n break;\r\n\r\n default: \r\n blobFile = this.model.file._file.slice(0, this.model.file.file.size, 'application/octet-stream');\r\n break;\r\n \r\n }\r\n \r\n var odataDocumentUrl = this.odataCoreService.Document.Get().Raw()\r\n .Key(Guid.parse(documentIdentity))\r\n .ToUrlString(false);\r\n\r\n await this.uploadODataDocumentNoCT(blobFile, odataDocumentUrl)\r\n .toPromise().then(res => {\r\n this.pageChangeRequest.emit(DocumentWizardNavigationPaths.EXIT);\r\n })\r\n }\r\n}\r\n","import {DocumentStatus, Incident} from '../../../core/model/incident';\r\nimport {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\nimport {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {NavigatorService} from '../../../core/shared/navigator.service';\r\nimport {DocumentType, DocumentWizardModel} from './document-wizard-model';\r\nimport {DocumentWizardNavigationPaths} from './document-wizard-navigation-paths.enum';\r\nimport {DocumentWizardService} from './document-wizard.service';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\"\r\n\r\n\r\n@Component({\r\n selector: 'app-document-wizard',\r\n templateUrl: './document-wizard.component.html',\r\n styleUrls: ['./document-wizard.component.scss']\r\n})\r\nexport class DocumentWizardComponent implements OnInit, OnDestroy {\r\n\r\n model: DocumentWizardModel;\r\n\r\n navigateBack: string;\r\n returnUrl: string;\r\n\r\n currentPage: DocumentWizardNavigationPaths;\r\n\r\n modelReady: boolean;\r\n\r\n PAGE_DATA = DocumentWizardNavigationPaths.DATA;\r\n PAGE_TYPE = DocumentWizardNavigationPaths.TYPE;\r\n PAGE_EQUIPMENT = DocumentWizardNavigationPaths.EQUIPMENT;\r\n PAGE_INCIDENT = DocumentWizardNavigationPaths.INCIDENT;\r\n PAGE_INCIDENT_DATA = DocumentWizardNavigationPaths.INCIDENT_DATA;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private service: DocumentWizardService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private navigator: NavigatorService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }))\r\n .subscribe(building => {\r\n this.service.startWizard(building);\r\n this.modelReady = true;\r\n\r\n this.model = this.service.getCurrentDocument();\r\n\r\n this.subscriptions.add(this.route.queryParams.subscribe(params => {\r\n\r\n // set type if it exists\r\n const type = +params['type'] || null;\r\n if (type) {\r\n // check if such enum exists\r\n for (const dt in DocumentType) {\r\n if (!isNaN(+dt) && +dt === type) {\r\n this.model.type = +dt;\r\n this.model.typeFromUrl = true;\r\n }\r\n }\r\n }\r\n\r\n // set document type if it exists\r\n const documentType = +params['documentType'];\r\n if (this.model.type && documentType) {\r\n switch (this.model.type) {\r\n case DocumentType.BUILDING:\r\n this.subscriptions.add(from(this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", 3))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].DocumentTypes.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.setDocumentType(res, documentType)));\r\n break;\r\n case DocumentType.EQUIPMENT:\r\n this.subscriptions.add(from(this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", 2))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].DocumentTypes.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.setDocumentType(res, documentType)));\r\n break;\r\n case DocumentType.INCIDENT:\r\n this.subscriptions.add(from(this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", 1))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].DocumentTypes.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.setDocumentType(res, documentType)));\r\n break;\r\n }\r\n }\r\n\r\n // set anlage if it exists\r\n const ieUT = params['ieUT'];\r\n if (ieUT) {\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(ieUT)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe(res => {\r\n if (res.Building.Identity === this.model.building.Identity) {\r\n this.model.equipments = [res];\r\n }\r\n }));\r\n }\r\n\r\n // set incident if it exists\r\n const incidentId = params['incidentId'];\r\n if (incidentId) {\r\n this.subscriptions.add(from(this.odataCoreService.Event.Query()\r\n .Expand(x => {\r\n x.Expand(\"Response\"),\r\n x.Expand(\"Schedule\", xa => {\r\n xa.Expand(\"InspectionDuty\", xaa => {\r\n xaa.Select(\"Id\"),\r\n xaa.Expand(\"OperatorTask\", xaaa => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\")\r\n })\r\n }),\r\n xa.Expand(\"MaintenanceContract\", xab => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", xabb => {\r\n xabb.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"Building\", xb => {\r\n xb.Select(\"Name\"),\r\n xb.Select(\"Id\"),\r\n xb.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Equipment\", xc => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\"),\r\n xc.Expand(\"Room\", xcc => {\r\n xcc.Select(\"Name\"),\r\n xcc.Select(\"Id\"),\r\n xcc.Select(\"Identity\")\r\n xcc.Expand(\"Floor\", xccc => {\r\n xccc.Select(\"Id\"),\r\n xccc.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"ServiceProvider\", xd => {\r\n xd.Select(\"Name\"),\r\n xd.Select(\"Id\"),\r\n xd.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Module\", xe => {\r\n xe.Select(\"Name\"),\r\n xe.Select(\"Id\"),\r\n xe.Select(\"Identity\"),\r\n xe.Expand(\"ModuleType\", xee => {\r\n xee.Select(\"Code\"),\r\n xee.Select(\"Id\"),\r\n xee.Select(\"Name\")\r\n })\r\n }),\r\n x.Expand(\"Documents\", xe => {\r\n xe.Select(\"DocumentType\"),\r\n xe.Expand(\"DocumentType\", xea => {\r\n xea.Select(\"Id\"),\r\n xea.Select(\"Name\")\r\n })\r\n }),\r\n x.Expand(\"KpiMarker\")\r\n })\r\n .Filter(x => x\r\n .EqualsField(\"Id\", (+incidentId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Incident(), res[0])\r\n })).subscribe(res => {\r\n if (res.Building.Identity === this.model.building.Identity) {\r\n this.model.incidents = [res];\r\n // get required document type\r\n this.subscriptions.add(from(this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", 1))\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].DocumentTypes.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res2 => {\r\n if (res.documentOfferStatus === DocumentStatus.MissingRequired) {\r\n this.model.requiredDocumentTypeId = 1; // Angebot\r\n } else if (res.documentCommissionStatus === DocumentStatus.MissingRequired) {\r\n this.model.requiredDocumentTypeId = 2; // Beauftragung\r\n } else if (res.documentProtocolStatus === DocumentStatus.MissingRequired) {\r\n this.model.requiredDocumentTypeId = 3; // Protokoll\r\n } else if (res.documentReportStatus === DocumentStatus.MissingRequired) {\r\n this.model.requiredDocumentTypeId = 4; // Regiebericht\r\n } else if (res.documentInvoiceStatus === DocumentStatus.MissingRequired) {\r\n this.model.requiredDocumentTypeId = 5; // Rechnung\r\n }\r\n if (this.model.requiredDocumentTypeId) {\r\n this.model.DocumentType = res2.find(x => x.Id === this.model.requiredDocumentTypeId);\r\n }\r\n }));\r\n }\r\n }));\r\n }\r\n\r\n // set returnUrl if it exists\r\n const returnUrl = params['returnUrl'];\r\n if (returnUrl) {\r\n this.returnUrl = this.navigator.getBackUrl();\r\n }\r\n }));\r\n }));\r\n\r\n this.navigateBack = this.route.snapshot.data.navigateBack;\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n\r\n private setDocumentType(types: PropertyCore.DocumentType[], typeId: number): void {\r\n this.model.DocumentType = types.find(x => x.Id === typeId);\r\n this.model.documentTypeFromUrl = true;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: DocumentWizardNavigationPaths): void {\r\n switch (pageChangeEvent) {\r\n\r\n case DocumentWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_DATA;\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.EXIT: {\r\n if (this.returnUrl) {\r\n this.router.navigateByUrl(this.returnUrl);\r\n } else {\r\n switch (this.navigateBack) {\r\n case 'dashboard':\r\n this.router.navigate(['dashboard']);\r\n break;\r\n case 'building':\r\n this.router.navigate(['/building', this.model.building.Identity, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', {outlets: {'tab': ['incident']}}]\r\n }\r\n }]);\r\n break;\r\n default:\r\n if (this.model.type === DocumentType.BUILDING || this.model.type === DocumentType.EQUIPMENT) {\r\n this.router.navigate(['/building', this.model.building.Identity, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['document', {outlets: {'tab': ['building-equipment']}}]\r\n }\r\n }]);\r\n } else {\r\n this.router.navigate(['/building', this.model.building.Identity, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['document', {outlets: {'tab': ['incident']}}]\r\n }\r\n }]);\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_TYPE;\r\n } else if (this.currentPage === this.PAGE_TYPE) {\r\n if (this.model.type === DocumentType.EQUIPMENT) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n } else if (this.model.type === DocumentType.INCIDENT) {\r\n this.currentPage = this.PAGE_INCIDENT;\r\n }\r\n } else if (this.currentPage === this.PAGE_INCIDENT) {\r\n this.currentPage = this.PAGE_INCIDENT_DATA;\r\n }\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_INCIDENT_DATA) {\r\n this.currentPage = this.PAGE_INCIDENT;\r\n } else if (this.currentPage === this.PAGE_INCIDENT || this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_TYPE;\r\n } else if (this.currentPage === this.PAGE_TYPE) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.DATA: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_TYPE || this.currentPage === this.PAGE_EQUIPMENT || this.currentPage === this.PAGE_INCIDENT || this.currentPage === this.PAGE_INCIDENT_DATA) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.TYPE: {\r\n if (this.currentPage === this.PAGE_TYPE || this.currentPage === this.PAGE_EQUIPMENT || this.currentPage === this.PAGE_INCIDENT || this.currentPage === this.PAGE_INCIDENT_DATA) {\r\n this.currentPage = this.PAGE_TYPE;\r\n }\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.EQUIPMENT: {\r\n if (this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n }\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.INCIDENT: {\r\n if (this.currentPage === this.PAGE_INCIDENT || this.currentPage === this.PAGE_INCIDENT_DATA) {\r\n this.currentPage = this.PAGE_INCIDENT;\r\n }\r\n break;\r\n }\r\n case DocumentWizardNavigationPaths.INCIDENT_DATA: {\r\n if (this.currentPage === this.PAGE_INCIDENT_DATA) {\r\n this.currentPage = this.PAGE_INCIDENT_DATA;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { DocumentWizardModel } from './document-wizard-model';\r\n\r\n@Injectable()\r\nexport class DocumentWizardService {\r\n\r\n model: DocumentWizardModel = new DocumentWizardModel;\r\n\r\n building: PropertyCore.Building;\r\n\r\n constructor() { }\r\n\r\n getCurrentDocument(): DocumentWizardModel {\r\n return this.model;\r\n }\r\n\r\n startWizard(building: PropertyCore.Building): void {\r\n this.building = building;\r\n this.resetCurrentDocument();\r\n }\r\n\r\n resetCurrentDocument(): void {\r\n this.model.reset();\r\n this.model.building = this.building;\r\n }\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { of, Subject, Subscription, from } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\nimport { PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { EquipmentWizardNavigationPaths } from '../equipment-wizard-navigation-paths.enum';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { EquipmentWizardModel } from './../equipment-wizard-model';\r\nimport { EquipmentWizardService } from './../equipment-wizard.service';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-wizard-data',\r\n templateUrl: './equipment-wizard-data.component.html',\r\n styleUrls: ['./equipment-wizard-data.component.scss']\r\n})\r\nexport class EquipmentWizardDataComponent implements OnInit, OnDestroy {\r\n\r\n model: EquipmentWizardModel;\r\n\r\n floors: PropertyCore.Floor[];\r\n rooms: PropertyCore.Room[];\r\n\r\n newRoomName: string;\r\n\r\n qrCodeState: PropertyCore.QuickResponseCode;\r\n newQrCode = new Subject();\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: EquipmentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentEquipment();\r\n this.subscriptions.add(from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.model.buildingId))\r\n .Expand(x => {\r\n x.Expand(\"Floors\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res[0].Floors.map(f => Utils.mapAllJSONDatesToDates(f)).sort((a, b) => a.Order - b.Order))).subscribe(res => this.floors = res));\r\n if (this.model.floor) {\r\n this.subscriptions.add(from(this.odataCoreService.Room.Query()\r\n .Expand(x => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.buildingId)).And\r\n .Equals(ODataPath.For(\"Floor\", \"Id\"), this.model.floor.Id))\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res => this.rooms = res));\r\n }\r\n\r\n this.newQrCode\r\n .pipe(debounceTime(200), distinctUntilChanged(), switchMap(term => (term ? from(this.odataCoreService.QuickResponseCode.Query()\r\n .Filter(x => x\r\n .EqualsField(\"Id\", +term))\r\n .Expand(x => {\r\n x.Expand(\"Equipments\")})\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .pipe(map(res => (res && res.length) ? res[0] : {})) : of(null))))\r\n .subscribe(res => (this.qrCodeState = res));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.NEXT);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentWiz._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentWiz._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentWiz._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('EquipmentWiz._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentEquipment();\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n onFloorChange(selectedFloor: PropertyCore.Floor): void {\r\n this.model.floor = selectedFloor;\r\n this.model.room = null;\r\n if (selectedFloor) {\r\n this.subscriptions.add(from(this.odataCoreService.Room.Query()\r\n .Expand(x => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.buildingId)).And\r\n .Equals(ODataPath.For(\"Floor\", \"Id\"), this.model.floor.Id))\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res => this.rooms = res));\r\n }\r\n }\r\n\r\n findRoom(rooms: PropertyCore.Room[], roomName: string): PropertyCore.Room {\r\n\r\n let room = rooms.find(x => x.Name == roomName);\r\n\r\n return room\r\n }\r\n\r\n async openNewRoomPopup(content): Promise {\r\n this.modalService.open(content).result.then(async (result) => {\r\n // on save click\r\n let res = await this.odataCoreService.Room.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Room())\r\n .ValueProperty(\"Name\", this.newRoomName)\r\n .ValuePropertyBinding(\"Floor\", this.odataCoreService.Floor.Get().Key(this.model.floor.Id).Bind())\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.model.buildingId)).Bind())\r\n .Exec();\r\n this.model.room = { Id: res, Name: this.newRoomName };\r\n this.rooms.push(this.model.room);\r\n let res2 = await this.odataCoreService.Room.Query()\r\n .Expand(x => {\r\n x.Expand(\"Floor\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.buildingId)).And\r\n .Equals(ODataPath.For(\"Floor\", \"Id\"), this.model.floor.Id))\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value);\r\n this.rooms = res2.map(i => Utils.mapAllJSONDatesToDates(i))\r\n if (this.newRoomName) {\r\n let newRoomNameSaved = this.newRoomName\r\n\r\n this.model.room = this.findRoom(this.rooms, newRoomNameSaved)\r\n }\r\n this.newRoomName = null\r\n }).catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n\r\n getImgPath(qrCodeId: number): string {\r\n return this.odataCoreService.QuickResponseCode.Get().Key(qrCodeId).Raw().ToUrlString(false);\r\n }\r\n\r\n compareId(val1: {Id: number}, val2: {Id: number}): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n searchQrCode(newQrCode: string) {\r\n this.newQrCode.next(newQrCode.trim());\r\n }\r\n\r\n assignQrCode(qrCode: string): void {\r\n this.model.qrCodes = [{ Id: +qrCode }];\r\n this.qrCodeState = null;\r\n }\r\n\r\n isAllowedToAssignQrCode(): boolean {\r\n return this.qrCodeState && !!this.qrCodeState.Id;\r\n }\r\n\r\n deleteQrCode(qrCode: PropertyCore.QuickResponseCode): void {\r\n const idx = this.model.qrCodes.indexOf(qrCode);\r\n if (idx > -1) {\r\n this.model.qrCodes.splice(idx, 1);\r\n }\r\n }\r\n\r\n openInfoDialog() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentWizData._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentWizData._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentWizData._modal_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n openInfoDialog2() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentDetailEdit._modal_qrcode_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentDetailEdit._modal_qrcode_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentDetailEdit._modal_qrcode_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n openInfoDialog3() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentWizData._modal_customName_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentWizData._modal_customName_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentWizData._modal_customName_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n}\r\n","import { PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\nexport class EquipmentWizardModel {\r\n\r\n buildingId: string;\r\n buildingName: string;\r\n\r\n equipment?: PropertyCore.EquipmentType;\r\n name: string;\r\n comment: string;\r\n\r\n floor?: PropertyCore.Floor;\r\n room?: PropertyCore.Room;\r\n isRenterResponsibility: boolean;\r\n isNoMaintenanceDesired: boolean;\r\n tuevNo: string;\r\n qrCodes: PropertyCore.QuickResponseCode[];\r\n\r\n attributesCategories?: any = {};\r\n\r\n reset(): void {\r\n this.buildingId = null;\r\n this.buildingName = null;\r\n this.equipment = null;\r\n this.name = null;\r\n this.comment = null;\r\n this.floor = null;\r\n this.room = null;\r\n this.isRenterResponsibility = false;\r\n this.isNoMaintenanceDesired = false;\r\n this.tuevNo = null;\r\n this.qrCodes = [];\r\n this.attributesCategories = null;\r\n }\r\n}\r\n","export enum EquipmentWizardNavigationPaths {\r\n\r\n TYPE = 'type',\r\n DATA = 'data',\r\n TECHNICAL = 'technical',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit'\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { EquipmentWizardModel } from './../equipment-wizard-model';\r\nimport { EquipmentWizardNavigationPaths } from './../equipment-wizard-navigation-paths.enum';\r\nimport { EquipmentWizardService } from './../equipment-wizard.service';\r\nimport { ObjektBrief } from 'app/core/odata/odata.coreapi';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-wizard-progress',\r\n templateUrl: './equipment-wizard-progress.component.html',\r\n styleUrls: ['./equipment-wizard-progress.component.scss']\r\n})\r\nexport class EquipmentWizardProgressComponent implements OnInit {\r\n\r\n PAGE_DATA = EquipmentWizardNavigationPaths.DATA;\r\n PAGE_TYPE = EquipmentWizardNavigationPaths.TYPE;\r\n PAGE_TECHNICAL = EquipmentWizardNavigationPaths.TECHNICAL;\r\n\r\n model: EquipmentWizardModel;\r\n AttributeType: any;\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n currentPage: EquipmentWizardNavigationPaths;\r\n\r\n constructor(private service: EquipmentWizardService) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentEquipment();\r\n this.AttributeType = ObjektBrief.AttributeValueTypes;\r\n }\r\n\r\n navigate(pageChangeEvent: EquipmentWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { forkJoin, Subscription, from } from \"rxjs\";\r\n\r\nimport { EquipmentWizardNavigationPaths } from \"../equipment-wizard-navigation-paths.enum\";\r\nimport { AttributeDTO } from \"./../../../../core/model/attributeDTO\";\r\nimport { ConfirmationModal } from \"./../../../../core/popup/confirmation.modal\";\r\nimport { Utils } from \"./../../../../core/tools/utils\";\r\nimport { InstallEquipmentService } from \"./../../../installEquipment.service\";\r\nimport { EquipmentWizardModel } from \"./../equipment-wizard-model\";\r\nimport { EquipmentWizardService } from \"./../equipment-wizard.service\";\r\nimport { ODataCoreService } from \"./../../../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ODataPath } from \"app/core/odata/odataclient\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { PropertyCore, AttributeTypeEntityFunctions, ObjektBrief } from \"app/core/odata/odata.coreapi\";\r\n\r\n@Component({\r\n selector: \"app-equipment-wizard-technical\",\r\n templateUrl: \"./equipment-wizard-technical.component.html\",\r\n styleUrls: [\"./equipment-wizard-technical.component.scss\"],\r\n})\r\nexport class EquipmentWizardTechnicalComponent implements OnInit, OnDestroy {\r\n model: EquipmentWizardModel;\r\n\r\n attributeFilter: string;\r\n categoryFilter: string = \"\";\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n requiredAttributes: any[] = [];\r\n categoryArray: any[] = [];\r\n years: string[];\r\n AttributeType: any;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: EquipmentWizardService,\r\n private installEquipmentService: InstallEquipmentService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.AttributeType = ObjektBrief.AttributeValueTypes;\r\n this.model = this.service.getCurrentEquipment();\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Select(\"AttributeTypeSets\")\r\n .Expand((x) => {\r\n x.Expand(\"AttributeTypeSets\", (y) => {\r\n y.Expand(\"AttributeTypes\", (z) => {\r\n z.Expand(\"MeasurementUnit\");\r\n z.OrderBy(\"Order\", \"asc\");\r\n });\r\n });\r\n })\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(this.model.buildingId)))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res[0]))\r\n .subscribe((res1) => {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.EquipmentType.Query()\r\n .Expand((x) =>\r\n x.Expand(\"AttributeTypes\", (y) => {\r\n y.Expand(\"Set\");\r\n y.Expand(\"MeasurementUnit\");\r\n })\r\n )\r\n .Filter((x) => x.EqualsField(\"Id\", this.model.equipment.Id))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res[0]))\r\n .subscribe((res) => {\r\n let a = 0;\r\n\r\n while (res1.AttributeTypeSets.length > a) {\r\n let b = 0;\r\n\r\n while (res1.AttributeTypeSets[a].AttributeTypes.length > b) {\r\n let requiredAttributeItem = res.AttributeTypes.find(\r\n (x) => x.Id == res1.AttributeTypeSets[a].AttributeTypes[b].Id\r\n );\r\n\r\n if (requiredAttributeItem) {\r\n this.requiredAttributes.push(requiredAttributeItem);\r\n }\r\n\r\n b++;\r\n }\r\n a++;\r\n }\r\n\r\n this.model.attributesCategories = this.requiredAttributes;\r\n\r\n let x = 0;\r\n\r\n while (this.model.attributesCategories.length > x) {\r\n this.attributesCategories.push(this.model.attributesCategories[x]);\r\n this.attributesCategoryNames.push(this.model.attributesCategories[x].Set.Name);\r\n x++;\r\n }\r\n\r\n this.categoryArray = this.attributesCategoryNames.filter((element, index, input) => {\r\n if (input.indexOf(element) === index) {\r\n return element;\r\n }\r\n });\r\n\r\n this.preselectCategory();\r\n })\r\n );\r\n })\r\n );\r\n\r\n this.years = Utils.yearsTillToday();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n private preselectCategory() {\r\n // pre-select ob standard category\r\n if (this.attributesCategories.length != 0) {\r\n var defaultCategory = this.attributesCategories.find((x) => x.Set.IsDefault == true);\r\n let obStandardCategory = \"\";\r\n\r\n if (defaultCategory != undefined) {\r\n obStandardCategory = this.attributesCategoryNames.find((Name) => Name == defaultCategory.Set.Name);\r\n }\r\n\r\n if (obStandardCategory) {\r\n this.categoryFilter = obStandardCategory;\r\n }\r\n }\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n save(andNew: boolean = false): void {\r\n const id = Utils.guid();\r\n\r\n if (this.model.room == null) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .ValueProperty(\"Identity\", id)\r\n .ValueProperty(\"TuevNo\", this.model.tuevNo)\r\n .ValueProperty(\"Comment\", this.model.comment)\r\n .ValueProperty(\"IsRenterResponsibility\", this.model.isRenterResponsibility)\r\n .ValueProperty(\"IsNoMaintenanceDesired\", this.model.isNoMaintenanceDesired)\r\n .ValueProperty(\"CustomId\", this.model.name)\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get().Key(this.model.equipment.Code).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get().Key(Guid.parse(this.model.buildingId)).Bind()\r\n )\r\n .Exec()\r\n ).subscribe((res) => {\r\n // save qr code\r\n if (this.model.qrCodes && this.model.qrCodes.length) {\r\n this.subscriptions.add(\r\n forkJoin([\r\n ...this.model.qrCodes.map((qrCode) =>\r\n from(\r\n this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(id))\r\n .Value(\"QuickResponseCodes\", this.odataCoreService.QuickResponseCode.Get().Key(qrCode.Id).Bind())\r\n .Post()\r\n )\r\n ),\r\n ]).subscribe((res) => {\r\n this.save2(id, andNew);\r\n })\r\n );\r\n } else {\r\n this.save2(id, andNew);\r\n }\r\n })\r\n );\r\n } else {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .ValueProperty(\"Identity\", id)\r\n .ValueProperty(\"TuevNo\", this.model.tuevNo)\r\n .ValueProperty(\"Comment\", this.model.comment)\r\n .ValueProperty(\"IsRenterResponsibility\", this.model.isRenterResponsibility)\r\n .ValueProperty(\"IsNoMaintenanceDesired\", this.model.isNoMaintenanceDesired)\r\n .ValueProperty(\"CustomId\", this.model.name)\r\n .ValuePropertyBinding(\r\n \"Room\",\r\n this.odataCoreService.Room.Get().Key(Guid.parse(this.model.room.Identity)).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get().Key(this.model.equipment.Code).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get().Key(Guid.parse(this.model.buildingId)).Bind()\r\n )\r\n .Exec()\r\n ).subscribe((res) => {\r\n // save qr code\r\n if (this.model.qrCodes && this.model.qrCodes.length) {\r\n this.subscriptions.add(\r\n forkJoin(\r\n ...this.model.qrCodes.map((qrCode) =>\r\n from(\r\n this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(id))\r\n .Value(\"QuickResponseCodes\", this.odataCoreService.QuickResponseCode.Get().Key(qrCode.Id).Bind())\r\n .Post()\r\n )\r\n )\r\n ).subscribe((res) => {\r\n this.save2(id, andNew);\r\n })\r\n );\r\n } else {\r\n this.save2(id, andNew);\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n private save2(id: string, andNew: boolean = false): void {\r\n // save attributes\r\n const attributes: AttributeDTO[] = this.model.attributesCategories\r\n .filter((attribute) => attribute.Value !== undefined && !!attribute.Value)\r\n .map((attribute) => {\r\n const attributeDto = new AttributeDTO();\r\n attributeDto.Id = attribute.Id;\r\n attributeDto.Value = attribute.ValueType === \"Date\" ? Utils.dateToJson(attribute.Value) : attribute.Value;\r\n attributeDto.TypToken = attribute.ValueType;\r\n return attributeDto;\r\n });\r\n if (attributes.length) {\r\n let a = 0;\r\n while (attributes.length > a) {\r\n if (attributes[a].Value == \"\") {\r\n } else {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(id))\r\n .NavigateToArray(\"AttributeValues\")\r\n .Patch()\r\n .Key(attributes[a].Id)\r\n .ValueType(this.odataCoreService.ODataTypes().AttributeValue())\r\n .ValueProperty(\"Value\", attributes[a].Value.toString())\r\n .Exec()\r\n ).subscribe((res2) => {\r\n if (attributes.length == a) {\r\n if (andNew) {\r\n this.service.resetCurrentEquipment();\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.START);\r\n } else {\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n })\r\n );\r\n }\r\n a++;\r\n }\r\n } else if (andNew) {\r\n this.service.resetCurrentEquipment();\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.START);\r\n } else {\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"EquipmentWiz._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"EquipmentWiz._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"EquipmentWiz._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"EquipmentWiz._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentEquipment();\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { EquipmentWizardNavigationPaths } from '../equipment-wizard-navigation-paths.enum';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { EquipmentWizardModel } from './../equipment-wizard-model';\r\nimport { EquipmentWizardService } from './../equipment-wizard.service';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-wizard-type',\r\n templateUrl: './equipment-wizard-type.component.html',\r\n styleUrls: ['./equipment-wizard-type.component.scss']\r\n})\r\nexport class EquipmentWizardTypeComponent implements OnInit, OnDestroy {\r\n\r\n model: EquipmentWizardModel;\r\n\r\n costGroups: PropertyCore.CostGroup[];\r\n\r\n equipmentFilter: any = '';\r\n costGroupFilter: string = '';\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: EquipmentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentEquipment();\r\n this.subscriptions.add(from(this.odataCoreService.CostGroup.Query()\r\n .OrderBy(\"No\")\r\n .Filter(x => x\r\n .NotEquals(\"Id\", 30))\r\n .Expand(x => {\r\n x.Expand(\"EquipmentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.costGroups = res));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(equipment: PropertyCore.EquipmentType): void {\r\n if (!equipment) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.NEXT);\r\n }\r\n\r\n selectEquipment(equipment: PropertyCore.EquipmentType): void {\r\n if (!this.model.equipment || (equipment.Id !== this.model.equipment.Id)) {\r\n this.model.equipment = equipment;\r\n this.model.attributesCategories = null;\r\n }\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentWiz._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentWiz._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentWiz._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('EquipmentWiz._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentEquipment();\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(EquipmentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { Subscription, from } from 'rxjs';\r\n\r\nimport { EquipmentWizardNavigationPaths } from './equipment-wizard-navigation-paths.enum';\r\nimport { EquipmentWizardService } from './equipment-wizard.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-equipment-wizard',\r\n templateUrl: './equipment-wizard.component.html',\r\n styleUrls: ['./equipment-wizard.component.scss']\r\n})\r\nexport class EquipmentWizardComponent implements OnInit, OnDestroy {\r\n\r\n equipmentId: string;\r\n buildingId: string;\r\n navigateBack: string;\r\n\r\n currentPage: EquipmentWizardNavigationPaths;\r\n\r\n modelReady: boolean;\r\n\r\n PAGE_DATA = EquipmentWizardNavigationPaths.DATA;\r\n PAGE_TYPE = EquipmentWizardNavigationPaths.TYPE;\r\n PAGE_TECHNICAL = EquipmentWizardNavigationPaths.TECHNICAL;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private service: EquipmentWizardService,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.paramMap.subscribe((params: ParamMap) => this.buildingId = params.get('id')));\r\n this.subscriptions.add(this.route.paramMap.subscribe((params: ParamMap) => this.equipmentId = params.get('id')));\r\n this.navigateBack = this.route.snapshot.data.navigateBack;\r\n this.currentPage = this.PAGE_TYPE;\r\n\r\n this.subscriptions.add(from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingId))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe(b => {\r\n this.service.startWizard(b.Identity, b.Name);\r\n this.modelReady = true;\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: EquipmentWizardNavigationPaths): void {\r\n\r\n switch (pageChangeEvent) {\r\n\r\n case EquipmentWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_TYPE;\r\n break;\r\n }\r\n case EquipmentWizardNavigationPaths.EXIT: {\r\n if (this.navigateBack && this.navigateBack === 'equipment' && this.equipmentId) {\r\n this.router.navigate(['/building', this.buildingId, { outlets: { left: ['building', 'view', { outlets: { tab: ['equipment'] } }], right: ['equipment', this.equipmentId] } }]);\r\n } else if (this.navigateBack && this.navigateBack === 'building' && this.buildingId) {\r\n this.router.navigate(['/building', this.buildingId, { outlets: { left: ['list'], right: ['building'] } }]);\r\n } else {\r\n console.error('Could not find a navigation route for equipment wizard!');\r\n }\r\n break;\r\n }\r\n case EquipmentWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_TYPE) {\r\n this.currentPage = this.PAGE_DATA;\r\n } else if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_TECHNICAL;\r\n }\r\n break;\r\n }\r\n case EquipmentWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_TYPE;\r\n } else if (this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case EquipmentWizardNavigationPaths.TYPE: {\r\n if (this.currentPage === this.PAGE_TYPE || this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_TYPE;\r\n }\r\n break;\r\n }\r\n case EquipmentWizardNavigationPaths.DATA: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case EquipmentWizardNavigationPaths.TECHNICAL: {\r\n if (this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_TECHNICAL;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EquipmentWizardModel } from './equipment-wizard-model';\r\n\r\n@Injectable()\r\nexport class EquipmentWizardService {\r\n\r\n model: EquipmentWizardModel = new EquipmentWizardModel;\r\n\r\n buildingId: string;\r\n buildingName: string;\r\n\r\n constructor() { }\r\n\r\n getCurrentEquipment(): EquipmentWizardModel {\r\n return this.model;\r\n }\r\n\r\n startWizard(buildingId: string, buildingName: string): void {\r\n this.buildingId = buildingId;\r\n this.buildingName = buildingName;\r\n this.resetCurrentEquipment();\r\n }\r\n\r\n createEquipment(): void {\r\n // service call\r\n }\r\n\r\n resetCurrentEquipment(): void {\r\n this.model.reset();\r\n this.model.buildingId = this.buildingId;\r\n this.model.buildingName = this.buildingName;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { IncidentWizardNavigationPaths } from '../incident-wizard-navigation-paths.enum';\r\nimport { ConfirmationModal } from '../../../../core/popup/confirmation.modal';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { IncidentWizardModel } from '../incident-wizard-model';\r\nimport { IncidentWizardService } from '../incident-wizard.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataPath, ODataBinding } from '../../../../core/odata/odataclient';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-incident-wizard-contact',\r\n templateUrl: './incident-wizard-contact.component.html',\r\n styleUrls: ['./incident-wizard-contact.component.scss']\r\n})\r\nexport class IncidentWizardContactComponent implements OnInit, OnDestroy {\r\n\r\n model: IncidentWizardModel;\r\n\r\n contacts: PropertyCore.ServiceProvider[];\r\n\r\n contactFilter: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: IncidentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentIncident();\r\n this.subscriptions.add(from(this.odataCoreService.ServiceProvider.Query()\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"Account\", \"Identity\"), Guid.parse(localStorage.getItem('mandator'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.contacts = res));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n selectContact(contact: PropertyCore.ServiceProvider): void {\r\n if (!this.model.contact || this.model.contact.Identity !== contact.Identity) {\r\n this.model.contact = contact;\r\n } else {\r\n // deselect\r\n this.model.contact = null;\r\n }\r\n }\r\n\r\n save(): void {\r\n\r\n this.model.Identity = Utils.guid();\r\n\r\n var equipmentBind;\r\n if (this.model.equipment) {\r\n equipmentBind = this.odataCoreService.Equipment.Get().Key(Guid.parse(this.model.equipment.Identity)).Bind();\r\n } else {\r\n equipmentBind = \"\";\r\n }\r\n\r\n this.odataCoreService.Event.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Event())\r\n .ValueProperty(\"Identity\", this.model.Identity)\r\n .ValueProperty(\"Type\", this.model.type)\r\n .ValueProperty(\"DueDate\", this.model.dueDate)\r\n .ValueProperty(\"IsDefectHandler\", this.model.isDefectHandler)\r\n .ValueProperty(\"Guidelines\", this.model.guidelines)\r\n .ValueProperty(\"Qualification\", this.model.qualification)\r\n .ValuePropertyBinding(\"Equipment\", equipmentBind)\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.model.buildingUT)).Bind())\r\n .Exec()\r\n .then(res => {\r\n this.model.id = res.Id;\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.model.Identity))\r\n .Actions()\r\n .MakeSeriesInOperationsOnEventInPropertyCore()\r\n .Execute()\r\n .then(res => {\r\n this.odataCoreService.Schedule.Patch()\r\n .Key(Guid.parse(res.Identity))\r\n .ValueType(this.odataCoreService.ODataTypes().Schedule())\r\n .ValueProperty(\"Cycle\", this.model.cycle)\r\n .ValueProperty(\"CycleUnit\", this.model.cycleUnit)\r\n .ValueProperty(\"CycleStart\", this.model.dueDate)\r\n .Exec()\r\n .then(res1 => {\r\n if (this.model.contact) {\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.model.Identity))\r\n .Value(\"ServiceProvider\", this.odataCoreService.ServiceProvider.Get().Key(Guid.parse(this.model.contact.Identity)).Bind())\r\n .Post()\r\n .then(res2 => {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n });\r\n });\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('IncidentWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('IncidentWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('IncidentWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('IncidentWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentIncident();\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n serviceContactWizard(): void {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.ADD_SERVICE_CONTACT);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Common, PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { IncidentWizardModel } from './../incident-wizard-model';\r\nimport { IncidentWizardNavigationPaths } from './../incident-wizard-navigation-paths.enum';\r\nimport { IncidentWizardService } from './../incident-wizard.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-incident-wizard-data',\r\n templateUrl: './incident-wizard-data.component.html',\r\n styleUrls: ['./incident-wizard-data.component.scss']\r\n})\r\nexport class IncidentWizardDataComponent implements OnInit, OnDestroy {\r\n\r\n model: IncidentWizardModel;\r\n\r\n incidentTypes: string[] = Object.keys(PropertyCore.EventTypes).filter(x => x !== PropertyCore.EventTypes.Undefined && x !== PropertyCore.EventTypes.FollowUpInspection);\r\n EventTypes = PropertyCore.EventTypes;\r\n cycleUnits: string[] = Object.keys(Common.IntervalUnits);\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: IncidentWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentIncident();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.NEXT);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('IncidentWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('IncidentWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('IncidentWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('IncidentWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentIncident();\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n onTypeChange(): void {\r\n if (this.model.type !== PropertyCore.EventTypes.Inspection && this.model.type !== PropertyCore.EventTypes.Maintenance && this.model.type !== PropertyCore.EventTypes.Custom) {\r\n this.model.cycle = 1;\r\n this.model.cycleUnit = Common.IntervalUnits.Undefined;\r\n }\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n openInfoDialog() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('IncidentWizardData._span_guidelines');\r\n modalRef.componentInstance.message = this.translateService.instant('IncidentWizardData._modal_guidelines_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('IncidentWizardData._modal_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n openInfoDialog2() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('IncidentWizardData._span_type');\r\n modalRef.componentInstance.message = this.translateService.instant('IncidentWizardData._modal_type_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('IncidentWizardData._modal_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {IncidentWizardNavigationPaths} from '../incident-wizard-navigation-paths.enum';\r\nimport {ConfirmationModal} from '../../../../core/popup/confirmation.modal';\r\nimport {InstallEquipmentService} from '../../../installEquipment.service';\r\nimport {InstallEquipmentKpiFilter} from '../../../kpiFilter.enum';\r\nimport {IncidentWizardModel} from '../incident-wizard-model';\r\nimport {IncidentWizardService} from '../incident-wizard.service';\r\nimport { ODataCoreService } from \"../../../../core/odata-services/odata.coreapi.service\";\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n@Component({\r\n selector: 'app-incident-wizard-equipment',\r\n templateUrl: './incident-wizard-equipment.component.html',\r\n styleUrls: ['./incident-wizard-equipment.component.scss']\r\n})\r\nexport class IncidentWizardEquipmentComponent implements OnInit, OnDestroy {\r\n\r\n model: IncidentWizardModel;\r\n\r\n installEquipments: PropertyCore.Equipment[];\r\n\r\n searchFilter: string = '';\r\n equipments: PropertyCore.EquipmentType[];\r\n equipmentFilter: any = '';\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: IncidentWizardService,\r\n private installEquipmentService: InstallEquipmentService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentIncident();\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.buildingUT)))\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => this.installEquipments = res));\r\n this.subscriptions.add(from(this.odataCoreService.EquipmentType.Query().Exec().then(x => x.value)).subscribe(res => this.equipments = res));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(): void {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.NEXT);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n selectEquipment(equipment: PropertyCore.Equipment): void {\r\n if (!this.model.equipment || this.model.equipment.Identity !== equipment.Identity) {\r\n this.model.equipment = equipment;\r\n } else {\r\n // deselect\r\n this.model.equipment = null;\r\n }\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('IncidentWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('IncidentWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('IncidentWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('IncidentWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentIncident();\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(IncidentWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n}\r\n","import { Common, PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\n\r\nexport class IncidentWizardModel {\r\n\r\n Identity?: string;\r\n id?: number; // will be filled upon save\r\n\r\n parentId?: string;\r\n buildingUT?: string;\r\n buildingName?: string;\r\n\r\n type?: PropertyCore.EventTypes;\r\n guidelines?: string = '';\r\n qualification?: string = '';\r\n dueDate?: Date = new Date();\r\n cycle?: number = 1;\r\n cycleUnit?: Common.IntervalUnits = Common.IntervalUnits.Undefined;\r\n\r\n equipment?: PropertyCore.Equipment;\r\n contact?: PropertyCore.ServiceProvider;\r\n\r\n isDefectHandler?: boolean;\r\n\r\n refDate?: Date;\r\n isDefectExists?: boolean;\r\n defectComment?: string;\r\n\r\n isSkipped?: boolean;\r\n\r\n reset(): void {\r\n this.Identity = null;\r\n this.id = null;\r\n this.parentId = null;\r\n this.buildingUT = null;\r\n this.buildingName = null;\r\n this.type = null;\r\n this.guidelines = '';\r\n this.qualification = '';\r\n this.dueDate = new Date();\r\n this.cycle = 1;\r\n this.cycleUnit = Common.IntervalUnits.Undefined;\r\n this.equipment = null;\r\n this.contact = null;\r\n this.isDefectHandler = false;\r\n this.refDate = null;\r\n this.isDefectExists = false;\r\n this.defectComment = null;\r\n this.isSkipped = false;\r\n }\r\n}\r\n","export enum IncidentWizardNavigationPaths {\r\n\r\n DATA = 'data',\r\n EQUIPMENT = 'equipment',\r\n CONTACT = 'contact',\r\n ADD_SERVICE_CONTACT = 'add-service-contact',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit'\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { IncidentWizardNavigationPaths } from '../incident-wizard-navigation-paths.enum';\r\nimport { IncidentWizardModel } from './../incident-wizard-model';\r\nimport { IncidentWizardService } from './../incident-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-incident-wizard-progress',\r\n templateUrl: './incident-wizard-progress.component.html',\r\n styleUrls: ['./incident-wizard-progress.component.scss']\r\n})\r\nexport class IncidentWizardProgressComponent implements OnInit {\r\n\r\n PAGE_DATA = IncidentWizardNavigationPaths.DATA;\r\n PAGE_EQUIPMENT = IncidentWizardNavigationPaths.EQUIPMENT;\r\n PAGE_CONTACT = IncidentWizardNavigationPaths.CONTACT;\r\n PAGE_ADD_SERVICE_CONTACT = IncidentWizardNavigationPaths.ADD_SERVICE_CONTACT;\r\n\r\n model: IncidentWizardModel;\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n currentPage: IncidentWizardNavigationPaths;\r\n\r\n constructor(private service: IncidentWizardService) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentIncident();\r\n }\r\n\r\n navigate(pageChangeEvent: IncidentWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {forkJoin, of, Subscription, from} from 'rxjs';\r\nimport {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {IncidentWizardNavigationPaths} from './incident-wizard-navigation-paths.enum';\r\nimport {IncidentWizardService} from './incident-wizard.service';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\"\r\n\r\n\r\n@Component({\r\n selector: 'app-incident-wizard',\r\n templateUrl: './incident-wizard.component.html',\r\n styleUrls: ['./incident-wizard.component.scss']\r\n})\r\nexport class IncidentWizardComponent implements OnInit, OnDestroy {\r\n\r\n equipmentId: string;\r\n buildingId: string;\r\n navigateBack: string;\r\n\r\n currentPage: IncidentWizardNavigationPaths;\r\n\r\n modelReady: boolean;\r\n\r\n PAGE_DATA = IncidentWizardNavigationPaths.DATA;\r\n PAGE_EQUIPMENT = IncidentWizardNavigationPaths.EQUIPMENT;\r\n PAGE_CONTACT = IncidentWizardNavigationPaths.CONTACT;\r\n PAGE_ADD_SERVICE_CONTACT = IncidentWizardNavigationPaths.ADD_SERVICE_CONTACT;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private service: IncidentWizardService,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.paramMap.subscribe((params: ParamMap) => this.buildingId = params.get('id')));\r\n this.subscriptions.add(this.route.paramMap.subscribe((params: ParamMap) => {\r\n this.equipmentId = params.get('id');\r\n let observable = of(null);\r\n if (this.equipmentId) {\r\n observable = from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(this.equipmentId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }\r\n this.subscriptions.add(forkJoin(from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.buildingId))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0]))), observable).subscribe(([b, ie]) => {\r\n this.service.startWizard(b.Identity, b.Name, ie);\r\n this.modelReady = true;\r\n }));\r\n }));\r\n this.navigateBack = this.route.snapshot.data.navigateBack;\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: IncidentWizardNavigationPaths): void {\r\n\r\n switch (pageChangeEvent) {\r\n\r\n case IncidentWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_DATA;\r\n break;\r\n }\r\n case IncidentWizardNavigationPaths.EXIT: {\r\n if (this.navigateBack && this.navigateBack === 'building' && this.buildingId) {\r\n const model = this.service.getCurrentIncident();\r\n if (model.id) {\r\n if (model.equipment) {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['equipment', model.equipment.Identity, 'view', {outlets: {tab: ['incident']}}],\r\n right: ['equipment', 'incident', model.id]\r\n }\r\n }]);\r\n } else {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['incident']}}],\r\n right: ['incident', model.id]\r\n }\r\n }]);\r\n }\r\n } else {\r\n if (this.equipmentId) {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['equipment']}}],\r\n right: ['equipment', this.equipmentId, 'view', {outlets: {tab: ['incident']}}]\r\n }\r\n }]);\r\n } else {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['building', 'view', {outlets: {tab: ['incident']}}]\r\n }\r\n }]);\r\n }\r\n }\r\n } else {\r\n console.error('Could not find a navigation route for incident wizard!');\r\n }\r\n break;\r\n }\r\n case IncidentWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n } else if (this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_CONTACT;\r\n }\r\n break;\r\n }\r\n case IncidentWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_EQUIPMENT) {\r\n this.currentPage = this.PAGE_DATA;\r\n } else if (this.currentPage === this.PAGE_CONTACT) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n }\r\n break;\r\n }\r\n case IncidentWizardNavigationPaths.DATA: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_EQUIPMENT || this.currentPage === this.PAGE_CONTACT || this.currentPage === this.PAGE_ADD_SERVICE_CONTACT) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case IncidentWizardNavigationPaths.EQUIPMENT: {\r\n if (this.currentPage === this.PAGE_EQUIPMENT || this.currentPage === this.PAGE_CONTACT || this.currentPage === this.PAGE_ADD_SERVICE_CONTACT) {\r\n this.currentPage = this.PAGE_EQUIPMENT;\r\n }\r\n break;\r\n }\r\n case IncidentWizardNavigationPaths.CONTACT: {\r\n if (this.currentPage === this.PAGE_CONTACT || this.currentPage === this.PAGE_ADD_SERVICE_CONTACT) {\r\n this.currentPage = this.PAGE_CONTACT;\r\n }\r\n break;\r\n }\r\n case IncidentWizardNavigationPaths.ADD_SERVICE_CONTACT: {\r\n if (this.currentPage === this.PAGE_CONTACT || this.currentPage === this.PAGE_ADD_SERVICE_CONTACT) {\r\n this.currentPage = this.PAGE_ADD_SERVICE_CONTACT;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveNewServiceContact(serviceContact: PropertyCore.ServiceProvider) {\r\n this.service.getCurrentIncident().contact = serviceContact;\r\n this.processPageChangeRequest(IncidentWizardNavigationPaths.CONTACT);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { IncidentWizardModel } from './incident-wizard-model';\r\n\r\n@Injectable()\r\nexport class IncidentWizardService {\r\n\r\n model: IncidentWizardModel = new IncidentWizardModel;\r\n\r\n buildingId: string;\r\n buildingName: string;\r\n\r\n equipment: PropertyCore.Equipment;\r\n\r\n constructor() { }\r\n\r\n getCurrentIncident(): IncidentWizardModel {\r\n return this.model;\r\n }\r\n\r\n startWizard(buildingId: string, buildingName: string, equipment: PropertyCore.Equipment): void {\r\n this.buildingId = buildingId;\r\n this.buildingName = buildingName;\r\n this.equipment = equipment;\r\n this.resetCurrentIncident();\r\n }\r\n\r\n createIncident(): void {\r\n // service call\r\n }\r\n\r\n resetCurrentIncident(): void {\r\n this.model.reset();\r\n this.model.buildingUT = this.buildingId;\r\n this.model.buildingName = this.buildingName;\r\n this.model.equipment = this.equipment;\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { PropertyCore } from \"app/core/odata/odata.coreapi\";\r\nimport { Observable, from } from \"rxjs\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { switchMap, map } from \"rxjs/operators\";\r\nimport { ODataPath } from \"app/core/odata/odataclient\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { Utils } from \"app/core/tools/utils\";\r\nimport { ODataCoreService } from \"app/core/odata-services/odata.coreapi.service\";\r\n@Injectable()\r\nexport class InspectiondutyWizardApiService {\r\n constructor(private odataCoreService: ODataCoreService) {}\r\n\r\n getEquipmentAllData(id: Guid): Observable {\r\n return from(\r\n this.odataCoreService.Equipment.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", (xa) => xa.Expand(\"Floor\"));\r\n })\r\n .Filter((x) => x.EqualsField(\"Identity\", id))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res[0]))\r\n .pipe(\r\n switchMap((simpleEquipment) => {\r\n return from(\r\n this.odataCoreService.Building.Query()\r\n .Expand((b) => {\r\n b.Expand(\"Equipments\", (xaa) => {\r\n xaa.Expand(\"EquipmentType\"),\r\n xaa.Expand(\"OperatorTaskMarkers\", (xaaa) => {\r\n xaaa.Expand(\"OperatorTask\", (xaaaa) => {\r\n xaaaa.Select(\"Id\");\r\n xaaaa.Select(\"Identity\");\r\n xaaaa.Select(\"Guidelines\");\r\n xaaaa.Select(\"Subject\");\r\n xaaaa.Select(\"Deadline\");\r\n xaaaa.Select(\"Qualification\");\r\n xaaaa.Select(\"Cycle\");\r\n xaaaa.Select(\"CycleUnit\");\r\n xaaaa.Select(\"IsRelevant\");\r\n });\r\n xaaa.Filter((z) =>\r\n z\r\n .Equals(\r\n ODataPath.For(\"OperatorTask\", \"IsRelevant\"),\r\n true\r\n )\r\n .Or.EqualsField(\"IsMissing\", false)\r\n );\r\n });\r\n xaa.Expand(\"InspectionDuties\", (y) => {\r\n y.Expand(\"Schedule\", (z) => {\r\n z.Select(\"Identity\");\r\n z.Select(\"Cycle\");\r\n z.Select(\"CycleUnit\");\r\n z.Select(\"CycleStart\");\r\n }),\r\n y.Expand(\"OperatorTask\", (z) => {\r\n z.Select(\"Identity\");\r\n z.Select(\"Id\");\r\n });\r\n y.Filter((z) => z.EqualsField(\"IsDisabled\", false));\r\n }),\r\n xaa.Expand(\"Room\", (room) => room.Expand(\"Floor\"));\r\n });\r\n })\r\n .Filter((b) =>\r\n b.EqualsField(\r\n \"Identity\",\r\n Guid.parse(simpleEquipment.Building.Identity)\r\n )\r\n )\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n .pipe(\r\n map((b) => {\r\n simpleEquipment.Building = b;\r\n return simpleEquipment;\r\n })\r\n )\r\n .pipe(map((res) => Utils.mapAllJSONDatesToDates(res)));\r\n })\r\n );\r\n\r\n //TODO: Delete nach test\r\n // return from(this.odataCoreService.Equipment.Query()\r\n // .Expand(x => {\r\n // x.Expand(\"Building\", xa => {\r\n // xa.Expand(\"Equipments\", xaa => {\r\n // xaa.Expand(\"EquipmentType\"),\r\n // xaa.Expand(\"OperatorTaskMarkers\", xaaa => {\r\n // xaaa.Expand(\"OperatorTask\", xaaaa => {\r\n // xaaaa.Select(\"Id\")\r\n // xaaaa.Select(\"Identity\")\r\n // xaaaa.Select(\"Guidelines\")\r\n // xaaaa.Select(\"Subject\")\r\n // xaaaa.Select(\"Deadline\")\r\n // xaaaa.Select(\"Qualification\")\r\n // xaaaa.Select(\"Cycle\")\r\n // xaaaa.Select(\"CycleUnit\")\r\n // xaaaa.Select(\"IsRelevant\")\r\n // })\r\n // xaaa.Filter(z => z\r\n // .Equals(ODataPath.For(\"OperatorTask\", \"IsRelevant\"), true).Or\r\n // .EqualsField(\"IsMissing\", false))\r\n\r\n // })\r\n // xaa.Expand(\"InspectionDuties\", y => {\r\n // y.Expand(\"Schedule\", z => {\r\n // z.Select(\"Identity\")\r\n // z.Select(\"Cycle\")\r\n // z.Select(\"CycleUnit\")\r\n // z.Select(\"CycleStart\")\r\n // }),\r\n // y.Expand(\"OperatorTask\", z => {\r\n // z.Select(\"Identity\")\r\n // z.Select(\"Id\")\r\n // })\r\n // y.Filter(z => z\r\n // .EqualsField(\"IsDisabled\", false))\r\n // })\r\n // })\r\n // }),\r\n\r\n // x.Expand(\"EquipmentType\"),\r\n // x.Expand(\"Room\", xa =>\r\n // xa.Expand(\"Floor\"))\r\n // })\r\n // .Filter(x =>\r\n // x.EqualsField(\"Identity\", id))\r\n // .Exec().then(x => x.value))\r\n // .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { InspectiondutyWizardComponent } from \"../inspectionduty-wizard.component\";\r\nimport { InspectiondutyWizardModel } from \"../inspectionduty-wizard-model\";\r\nimport { Equipment } from \"app/core/model/equipmentOperatorTask\";\r\nimport { InspectiondutyWizardNavigationPaths } from \"../inspectionduty-wizard-navigation-paths\";\r\nimport { ConfirmationModal } from \"app/core/popup/confirmation.modal\";\r\nimport { InspectiondutyWizardService } from \"../inspectionduty-wizard-service\";\r\nimport {\r\n NgbModal,\r\n NgbModalModule,\r\n NgbPanelChangeEvent,\r\n} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ODataCoreService } from \"app/core/odata-services/odata.coreapi.service\";\r\nimport {\r\n Common,\r\n PropertyCore,\r\n Operations,\r\n ObjektBrief,\r\n} from \"app/core/odata/odata.coreapi\";\r\nimport { EditInspectionDutyGroup } from \"app/core/components/equipment/edit-inspection-duties/editInspectionDutyGroup\";\r\nimport { from, Subscription } from \"rxjs\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { EditOperatorTask } from \"app/core/components/equipment/edit-inspection-duties/editOperatorTask\";\r\nimport { EquipmentEditInspectionDutiesSaveOutputData } from \"app/core/components/equipment/equipment-edit-inspection-duties-save-output-data\";\r\nimport { Router } from \"@angular/router\";\r\nimport { IntegrityBoxComponent } from \"app/dashboard/dashboard-boxes/integrity-box/integrity-box.component\";\r\nimport { Utils } from \"app/core/tools/utils\";\r\nimport { AuthService } from \"app/core/auth/auth.service\";\r\n\r\n@Component({\r\n selector: \"app-inspectionduty-wizard-data\",\r\n templateUrl: \"./inspectionduty-wizard-data.component.html\",\r\n styleUrls: [\"./inspectionduty-wizard-data.component.scss\"],\r\n})\r\nexport class InspectiondutyWizardDataComponent implements OnInit {\r\n isAttributePanelOpen: boolean;\r\n subscriptions: Subscription;\r\n model: InspectiondutyWizardModel;\r\n formSubmitted: boolean = false;\r\n showClose: boolean;\r\n showHeader: boolean;\r\n hasInspectionDutiesActivatedChanged: boolean;\r\n inspectionDutyGroups: EditInspectionDutyGroup[];\r\n //equipmentOperatorTaskMarkers: EditOperatorTask[];\r\n\r\n cycleUnits: String[];\r\n CycleUnits = Common.IntervalUnits;\r\n\r\n comment: string;\r\n\r\n originalIsDisabled: boolean;\r\n isChangedSeriesStart: boolean;\r\n isChangedActive: boolean;\r\n bulkInspectionDutyChange: PropertyCore.InspectionDutyChanges;\r\n //bulkInspectionDutyChange: PropertyCore.InspectionDutyChanges;\r\n storeInspectionDutyChange: any[] = [];\r\n equipmentPatchFlag = 0;\r\n\r\n //attributeType: PropertyCore.AttributeType[];\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Output()\r\n saveRequest = new EventEmitter();\r\n constructor(\r\n private service: InspectiondutyWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService,\r\n private router: Router,\r\n protected authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isAttributePanelOpen = false;\r\n\r\n this.model = this.service.getCurrentEquipmentModel();\r\n }\r\n onPanelChange($event: NgbPanelChangeEvent) {\r\n this.isAttributePanelOpen = $event.nextState;\r\n }\r\n changeInspectionDutyActive(\r\n equipmentOperatorTaskMarkers: EditOperatorTask\r\n ): void {\r\n equipmentOperatorTaskMarkers.originalIsDisabled =\r\n equipmentOperatorTaskMarkers.originalIsDisabled === undefined ||\r\n equipmentOperatorTaskMarkers.originalIsDisabled === null\r\n ? equipmentOperatorTaskMarkers.isMissing\r\n : equipmentOperatorTaskMarkers.originalIsDisabled;\r\n\r\n equipmentOperatorTaskMarkers.isMissing = !equipmentOperatorTaskMarkers.isMissing;\r\n\r\n equipmentOperatorTaskMarkers.isChangedActive =\r\n equipmentOperatorTaskMarkers.originalIsDisabled !==\r\n equipmentOperatorTaskMarkers.isMissing;\r\n\r\n this.storeInspectionDuties();\r\n }\r\n\r\n changeSeriesStart(equipmentOperatorTaskMarkers: EditOperatorTask): void {\r\n equipmentOperatorTaskMarkers.isChangedSeriesStart = true;\r\n }\r\n close(): void {\r\n this.router.navigate(\r\n [\r\n \"/dashboard\",\r\n {\r\n outlets: {\r\n left: [\"board\"],\r\n right: [\r\n IntegrityBoxComponent.PATH_PREFIX,\r\n IntegrityBoxComponent.PATH_EQUIPMENTS_NO_INSPECTION_DUTIES,\r\n ],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n save(validForm: boolean): void {\r\n let validInspections = true;\r\n this.model.equipmentOperatorTasks.forEach((eot) => {\r\n if (\r\n eot.originalIsDisabled &&\r\n (!eot.cycle ||\r\n !eot.cycleUnit ||\r\n eot.cycleUnit === this.CycleUnits.Undefined)\r\n ) {\r\n validInspections = false;\r\n }\r\n });\r\n if (!validForm || !validInspections) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n // check if checkbox is active, show popup\r\n if (this.model.equipment.HasInspectionDutiesActivated) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_title2\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_message2\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_yes2\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_cancel2\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.saveInstallEquipment();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.saveInstallEquipment();\r\n }\r\n }\r\n\r\n private saveInstallEquipment(): void {\r\n // update hasInspectionDutiesActivated flag\r\n if (this.hasInspectionDutiesActivatedChanged) {\r\n if (this.model.equipment.Room == null) {\r\n this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.model.equipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.model.equipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.model.equipment.Comment)\r\n .ValueProperty(\r\n \"IsRenterResponsibility\",\r\n this.model.equipment.IsRenterResponsibility\r\n )\r\n .ValueProperty(\r\n \"IsNoMaintenanceDesired\",\r\n this.model.equipment.IsNoMaintenanceDesired\r\n )\r\n .ValueProperty(\r\n \"HasInspectionDutiesActivated\",\r\n this.model.equipment.HasInspectionDutiesActivated\r\n )\r\n .ValueProperty(\"CustomId\", this.model.equipment.CustomId)\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get()\r\n .Key(this.model.equipment.EquipmentType.Code)\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.model.equipment.Building.Identity))\r\n .Bind()\r\n )\r\n .Exec()\r\n .then((res) => {\r\n this.equipmentPatchFlag = 1;\r\n this.saveInspectionDuties();\r\n });\r\n } else {\r\n this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.model.equipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.model.equipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.model.equipment.Comment)\r\n .ValueProperty(\r\n \"IsRenterResponsibility\",\r\n this.model.equipment.IsRenterResponsibility\r\n )\r\n .ValueProperty(\r\n \"IsNoMaintenanceDesired\",\r\n this.model.equipment.IsNoMaintenanceDesired\r\n )\r\n .ValueProperty(\r\n \"HasInspectionDutiesActivated\",\r\n this.model.equipment.HasInspectionDutiesActivated\r\n )\r\n .ValueProperty(\"CustomId\", this.model.equipment.CustomId)\r\n .ValuePropertyBinding(\r\n \"Room\",\r\n this.odataCoreService.Room.Get()\r\n .Key(Guid.parse(this.model.equipment.Room.Identity))\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get()\r\n .Key(this.model.equipment.EquipmentType.Code)\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.model.equipment.Building.Identity))\r\n .Bind()\r\n )\r\n .Exec()\r\n .then((res) => {\r\n this.equipmentPatchFlag = 1;\r\n this.saveInspectionDuties();\r\n });\r\n }\r\n } else {\r\n this.saveInspectionDuties();\r\n }\r\n }\r\n private saveInspectionDuties(): void {\r\n let inspectionDutyChangeFlag = 0;\r\n this.model.equipmentOperatorTasks.forEach((y) => {\r\n if (y.isChangedActive || y.cycleStart) {\r\n inspectionDutyChangeFlag++;\r\n }\r\n });\r\n\r\n this.model.equipmentOperatorTasks.forEach(async (x) => {\r\n if (x.isChangedActive || x.cycleStart) {\r\n // Operation: 0 - Undefined, 1 - Create, 2 - Update, 3 - Delete\r\n let operation;\r\n if (x.isChangedActive) {\r\n if (x.isMissing) {\r\n operation = Operations.Operations.Delete;\r\n } else {\r\n operation = Operations.Operations.Create; // activation and possible deadline change only here\r\n }\r\n } else if (x.isChangedSeriesStart) {\r\n operation = Operations.Operations.Update; // only when series start changed\r\n }\r\n\r\n let inspectionDutyChange: any;\r\n const guid = Utils.guid();\r\n switch (operation) {\r\n case Operations.Operations.Create:\r\n inspectionDutyChange = {\r\n Operation: operation,\r\n Identity: guid,\r\n Interval: {\r\n Step: x.cycle,\r\n Size: this.mapCycleUnitToEnum(x.cycleUnit),\r\n },\r\n EquipmentRef: this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.model.equipment.Identity))\r\n .Bind()\r\n .toString(),\r\n OperatorTaskRef: this.odataCoreService.OperatorTask.Get()\r\n .Key(Guid.parse(x.operatortaskIdentity))\r\n .Bind()\r\n .toString(),\r\n };\r\n\r\n break;\r\n\r\n case Operations.Operations.Delete:\r\n inspectionDutyChange = {\r\n Operation: operation,\r\n Identity: x.aInspectionDutyIdentity,\r\n EquipmentRef: this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.model.equipment.Identity))\r\n .Bind().toString,\r\n OperatorTaskRef: this.odataCoreService.OperatorTask.Get()\r\n .Key(Guid.parse(x.operatortaskIdentity))\r\n .Bind().toString,\r\n };\r\n break;\r\n\r\n case Operations.Operations.Update:\r\n inspectionDutyChange = {\r\n Identity: x.aInspectionDutyIdentity,\r\n Operation: operation,\r\n SeriesStart: x.cycleStart,\r\n Interval: {\r\n Step: x.aCycle,\r\n Size: this.mapCycleUnitToEnum(x.aCycleUnit),\r\n },\r\n };\r\n break;\r\n }\r\n\r\n this.storeInspectionDutyChange.push(inspectionDutyChange);\r\n\r\n if (\r\n this.storeInspectionDutyChange.length == inspectionDutyChangeFlag &&\r\n inspectionDutyChangeFlag != 1\r\n ) {\r\n this.bulkInspectionDutyChange = {\r\n Comment: this.comment,\r\n Changes: this.storeInspectionDutyChange,\r\n };\r\n\r\n await this.odataCoreService.InspectionDuty.Actions()\r\n .BulkChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet()\r\n .Parameters(this.bulkInspectionDutyChange)\r\n .Execute()\r\n .then((res) => {\r\n this.storeInspectionDutyChange = [];\r\n if (this.equipmentPatchFlag == 0) {\r\n this.saveRequest.emit();\r\n this.ngOnInit();\r\n }\r\n });\r\n } else if (inspectionDutyChangeFlag == 1) {\r\n await this.odataCoreService.InspectionDuty.Actions()\r\n .SingleChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet()\r\n .Parameters(this.comment, inspectionDutyChange)\r\n .Execute()\r\n .then((res) => {\r\n this.storeInspectionDutyChange = [];\r\n if (this.equipmentPatchFlag == 0) {\r\n this.saveRequest.emit();\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.equipmentPatchFlag == 1) {\r\n this.saveRequest.emit();\r\n }\r\n }\r\n openInfoDialog() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_yes\"\r\n );\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n private mapCycleUnitToEnum(unit: string): Common.IntervalUnits {\r\n let cycleUnitEnum;\r\n switch (unit) {\r\n case Common.IntervalUnits.Undefined:\r\n cycleUnitEnum = Common.IntervalUnits.Undefined;\r\n break;\r\n case Common.IntervalUnits.Year:\r\n cycleUnitEnum = Common.IntervalUnits.Year;\r\n break;\r\n case Common.IntervalUnits.Month:\r\n cycleUnitEnum = Common.IntervalUnits.Month;\r\n break;\r\n case Common.IntervalUnits.Week:\r\n cycleUnitEnum = Common.IntervalUnits.Week;\r\n break;\r\n }\r\n return cycleUnitEnum;\r\n }\r\n\r\n hasInspectionDutiesActivatedChange() {\r\n this.hasInspectionDutiesActivatedChanged = true;\r\n }\r\n\r\n next(validForm): void {\r\n let validInspections = true;\r\n this.model.equipmentOperatorTasks.forEach((eot) => {\r\n if (eot.isChangedActive && !eot.isMissing) {\r\n //Changed and currently it is active\r\n\r\n if (eot.originalIsDisabled) {\r\n if (\r\n !eot.cycle ||\r\n !eot.cycleUnit ||\r\n eot.cycleUnit === this.CycleUnits.Undefined\r\n ) {\r\n validInspections = false;\r\n }\r\n } else {\r\n if (\r\n !eot.aCycle ||\r\n !eot.aCycleUnit ||\r\n eot.aCycleUnit === this.CycleUnits.Undefined\r\n ) {\r\n validInspections = false;\r\n }\r\n }\r\n }\r\n });\r\n if (!validForm || !validInspections) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n //return;\r\n this.formSubmitted = true;\r\n\r\n this.model.comment = this.comment;\r\n this.storeInspectionDuties();\r\n this.pageChangeRequest.emit(\r\n InspectiondutyWizardNavigationPaths.OTHEREQUIPMENTS\r\n );\r\n }\r\n\r\n storeInspectionDuties() {\r\n this.model.storeInspectionDutyChange = [];\r\n this.model.changedIDs = [];\r\n let inspectionDutyChangeFlag = 0;\r\n this.model.equipmentOperatorTasks.forEach((y) => {\r\n if (y.isChangedActive || y.cycleStart) {\r\n inspectionDutyChangeFlag++;\r\n }\r\n });\r\n\r\n this.model.equipmentOperatorTasks.forEach(async (x) => {\r\n if (x.isChangedActive || x.cycleStart) {\r\n // Operation: 0 - Undefined, 1 - Create, 2 - Update, 3 - Delete\r\n let operation;\r\n if (x.isChangedActive) {\r\n if (x.isMissing) {\r\n operation = Operations.Operations.Delete;\r\n } else {\r\n operation = Operations.Operations.Create; // activation and possible deadline change only here\r\n }\r\n } else if (x.isChangedSeriesStart) {\r\n operation = Operations.Operations.Update; // only when series start changed\r\n }\r\n\r\n let inspectionDutyChange: any;\r\n switch (operation) {\r\n case Operations.Operations.Create:\r\n inspectionDutyChange = {\r\n Operation: operation,\r\n SeriesStart: x.cycleStart,\r\n Interval: {\r\n Step: x.cycle,\r\n Size: this.mapCycleUnitToEnum(x.cycleUnit),\r\n },\r\n EquipmentRef: this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.model.equipment.Identity))\r\n .Bind()\r\n .toString(),\r\n OperatorTaskRef: this.odataCoreService.OperatorTask.Get()\r\n .Key(Guid.parse(x.operatortaskIdentity))\r\n .Bind()\r\n .toString(),\r\n };\r\n break;\r\n\r\n case Operations.Operations.Delete:\r\n inspectionDutyChange = {\r\n Operation: operation,\r\n Identity: x.aInspectionDutyIdentity,\r\n EquipmentRef: this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.model.equipment.Identity))\r\n .Bind()\r\n .toString(),\r\n OperatorTaskRef: this.odataCoreService.OperatorTask.Get()\r\n .Key(Guid.parse(x.operatortaskIdentity))\r\n .Bind()\r\n .toString(),\r\n };\r\n break;\r\n\r\n case Operations.Operations.Update:\r\n inspectionDutyChange = {\r\n Identity: x.aInspectionDutyIdentity,\r\n Operation: operation,\r\n SeriesStart: x.cycleStart,\r\n Interval: {\r\n Step: x.aCycle,\r\n Size: this.mapCycleUnitToEnum(x.aCycleUnit),\r\n },\r\n };\r\n break;\r\n }\r\n if (this.model.changedIDs.indexOf(x.operatortaskId) === -1) {\r\n this.model.changedIDs.push(x.operatortaskId);\r\n }\r\n this.model.storeInspectionDutyChange.push(inspectionDutyChange);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n\r\nimport { Common, PropertyCore} from '../../../core/odata/odata.coreapi';\r\n\r\nimport { EditInspectionDutyGroup } from '../../../core/components/equipment/edit-inspection-duties/editInspectionDutyGroup';\r\n\r\nimport { EditOperatorTask } from '../../../core/components/equipment/edit-inspection-duties/editOperatorTask';\r\n\r\n\r\nexport class InspectiondutyWizardModel {\r\n\r\n equipment: PropertyCore.Equipment;\r\n equipmentOperatorTasks: EditOperatorTask[];\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray: any[] =[];\r\n cycleUnits: String[] = [];\r\n storeInspectionDutyChange?: any[] = [];\r\n selectedEquipments: String[];\r\n inspectiondutyChanges?:any[];\r\n comment: string=\"\";\r\n changedIDs: number[] =[];\r\n reset(): void {\r\n this.equipment = null;\r\n this.equipmentOperatorTasks = [];\r\n this.attributesCategories= [];\r\n this.attributesCategoryNames= [];\r\n this.categoryArray = [];\r\n this.cycleUnits = [];\r\n this.storeInspectionDutyChange = [];\r\n this.selectedEquipments = [];\r\n this.inspectiondutyChanges = [];\r\n this.comment = \"\";\r\n this.changedIDs=[];\r\n \r\n }\r\n}\r\n","export enum InspectiondutyWizardNavigationPaths {\r\n DATA = 'data',\r\n OTHEREQUIPMENTS = 'otherequipments',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit',\r\n }\r\n","import { Component, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { InspectiondutyWizardComponent } from \"../inspectionduty-wizard.component\";\r\nimport { InspectiondutyWizardModel } from \"../inspectionduty-wizard-model\";\r\nimport { Equipment } from \"app/core/model/equipmentOperatorTask\";\r\nimport { InspectiondutyWizardNavigationPaths } from \"../inspectionduty-wizard-navigation-paths\";\r\nimport { ConfirmationModal } from \"app/core/popup/confirmation.modal\";\r\nimport { InspectiondutyWizardService } from \"../inspectionduty-wizard-service\";\r\nimport {\r\n NgbModal,\r\n NgbModalModule,\r\n NgbPanelChangeEvent,\r\n} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ODataCoreService } from \"app/core/odata-services/odata.coreapi.service\";\r\nimport {\r\n Common,\r\n PropertyCore,\r\n Operations,\r\n ObjektBrief,\r\n} from \"app/core/odata/odata.coreapi\";\r\nimport { EditInspectionDutyGroup } from \"app/core/components/equipment/edit-inspection-duties/editInspectionDutyGroup\";\r\nimport { from, Subscription, zip } from \"rxjs\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { EquipmentNoInspectionDutiesState } from \"app/dashboard/integrity/equipments-no-inspection-duties/equipment-no-inspection-duties-state.service\";\r\nimport { EditOperatorTask } from \"app/core/components/equipment/edit-inspection-duties/editOperatorTask\";\r\nimport { EquipmentEditInspectionDutiesSaveOutputData } from \"app/core/components/equipment/equipment-edit-inspection-duties-save-output-data\";\r\nimport { Router } from \"@angular/router\";\r\nimport { IntegrityBoxComponent } from \"app/dashboard/dashboard-boxes/integrity-box/integrity-box.component\";\r\nimport { Utils } from \"app/core/tools/utils\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\n\r\n@Component({\r\n selector: \"app-inspectionduty-wizard-other-equipments\",\r\n templateUrl: \"./inspectionduty-wizard-other-equipments.component.html\",\r\n styleUrls: [\"./inspectionduty-wizard-other-equipments.component.scss\"],\r\n})\r\nexport class InspectiondutyWizardOtherEquipmentsComponent implements OnInit {\r\n model: InspectiondutyWizardModel;\r\n numberOfOtherEquipments: number = 0;\r\n formSubmitted: boolean;\r\n\r\n cycleUnits: String[];\r\n CycleUnits = Common.IntervalUnits;\r\n bulkInspectionDutyChange: PropertyCore.InspectionDutyChanges;\r\n\r\n equipmentPatchFlag = 0;\r\n problematicEquipments: string[] = [];\r\n changes: any = [];\r\n\r\n saveInspectiondutiesOutputData: any;\r\n\r\n @Output()\r\n saveRequest = new EventEmitter();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private toaster: ToasterService,\r\n private state: EquipmentNoInspectionDutiesState,\r\n private router: Router,\r\n private service: InspectiondutyWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentEquipmentModel();\r\n\r\n this.numberOfOtherEquipments = 0;\r\n this.model.equipment.Building.Equipments.forEach((a) => {\r\n if (\r\n a.EquipmentType.Name === this.model.equipment.EquipmentType.Name &&\r\n a.Identity !== this.model.equipment.Identity\r\n ) {\r\n this.numberOfOtherEquipments = this.numberOfOtherEquipments + 1;\r\n }\r\n });\r\n }\r\n\r\n selectEquipment(eqId: String, event) {\r\n if (this.model.selectedEquipments.length === 0) {\r\n this.model.selectedEquipments.push(eqId);\r\n }\r\n var index = this.model.selectedEquipments.indexOf(eqId);\r\n if (event.target.checked) {\r\n this.model.selectedEquipments.push(eqId);\r\n } else {\r\n if (index !== -1) {\r\n this.model.selectedEquipments.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n selectAll(event): void {\r\n this.model.selectedEquipments = [];\r\n this.model.selectedEquipments.push(this.model.equipment.Identity);\r\n\r\n if (event.target.checked) {\r\n this.model.equipment.Building.Equipments.forEach((element) => {\r\n if (\r\n element.EquipmentType.Name ===\r\n this.model.equipment.EquipmentType.Name &&\r\n element.Identity !== this.model.equipment.Identity\r\n ) {\r\n this.model.selectedEquipments.push(element.Identity);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private checkOtherEquipments() {\r\n //Alle Equipments\r\n this.problematicEquipments = [];\r\n this.model.equipment.Building.Equipments.forEach((x) => {\r\n // Alle ausgewählten Equipments\r\n if (this.model.selectedEquipments.indexOf(x.Identity) !== -1) {\r\n //Alle OperatorTaskMarkers\r\n x.OperatorTaskMarkers.forEach((s) => {\r\n if (\r\n x.Identity !== this.model.equipment.Identity &&\r\n this.model.changedIDs.indexOf(s.OperatorTask.Id) !== -1 &&\r\n s.IsMissing === false &&\r\n this.problematicEquipments.indexOf(x.Identity) === -1\r\n ) {\r\n this.problematicEquipments.push(x.Identity);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n private collectAllSaves(): void {\r\n this.problematicEquipments = [];\r\n this.changes = [];\r\n this.model.equipmentOperatorTasks.forEach((s) => {\r\n let operation;\r\n let change: any;\r\n let guid = Utils.guid();\r\n\r\n if (s.isChangedActive) {\r\n if (s.isMissing) {\r\n operation = Operations.Operations.Delete;\r\n } else {\r\n operation = Operations.Operations.Create; // activation and possible deadline change only here\r\n }\r\n change = {\r\n Operation: operation,\r\n Identity: guid,\r\n EquipmentRef:\r\n \"Equipment(\" + this.model.equipment.Identity.toString() + \")\",\r\n Interval: '{\"Step\":' + s.cycle + ',\"Size\":\"' + s.cycleUnit + '\"}',\r\n OperatorTaskRef:\r\n \"OperatorTask(\" + s.operatortaskIdentity.toString() + \")\",\r\n };\r\n this.changes.push(change);\r\n }\r\n });\r\n this.model.equipment.Building.Equipments.forEach((y) => {\r\n if (\r\n this.model.selectedEquipments.indexOf(y.Identity) !== -1 &&\r\n y.Identity !== this.model.equipment.Identity\r\n ) {\r\n this.model.equipmentOperatorTasks.forEach(async (x) => {\r\n y.OperatorTaskMarkers.forEach((z) => {\r\n let operation;\r\n let change: any;\r\n let secondChange: any;\r\n let guid = Utils.guid();\r\n if (z.OperatorTask.Id === x.operatortaskId) {\r\n /// CREATE\r\n\r\n if (z.IsMissing === true && x.isMissing === false) {\r\n operation = Operations.Operations.Create;\r\n\r\n change = {\r\n Operation: operation,\r\n Identity: guid,\r\n EquipmentRef: \"Equipment(\" + y.Identity.toString() + \")\",\r\n Interval:\r\n '{\"Step\":\"' + x.cycle + '\",\"Size\":\"' + x.cycleUnit + '\"}',\r\n OperatorTaskRef:\r\n \"OperatorTask(\" + x.operatortaskIdentity.toString() + \")\",\r\n };\r\n\r\n this.changes.push(change);\r\n }\r\n\r\n if (z.IsMissing === true && x.isMissing === true) {\r\n /// overwrite\r\n }\r\n if (z.IsMissing === false && x.isMissing === false) {\r\n let guid1 = Utils.guid();\r\n operation = Operations.Operations.Delete;\r\n change = {\r\n Operation: operation,\r\n Identity: guid1,\r\n EquipmentRef: \"Equipment(\" + y.Identity.toString() + \")\",\r\n OperatorTaskRef:\r\n \"OperatorTask(\" + x.operatortaskIdentity.toString() + \")\",\r\n };\r\n\r\n this.changes.push(change);\r\n\r\n operation = Operations.Operations.Create;\r\n\r\n let guid = Utils.guid();\r\n\r\n secondChange = {\r\n Operation: operation,\r\n Identity: guid,\r\n Interval:\r\n '{\"Step\":\"' + x.cycle + '\",\"Size\":\"' + x.cycleUnit + '\"}',\r\n EquipmentRef: \"Equipment(\" + y.Identity.toString() + \")\",\r\n OperatorTaskRef:\r\n \"OperatorTask(\" + x.operatortaskIdentity.toString() + \")\",\r\n };\r\n\r\n this.changes.push(secondChange);\r\n\r\n if (this.problematicEquipments.indexOf(y.Identity) === -1) {\r\n this.problematicEquipments.push(y.Identity);\r\n }\r\n }\r\n\r\n /// DELETE\r\n\r\n if (z.IsMissing === false && x.isMissing === true) {\r\n operation = \"Delete\";\r\n change = {\r\n Operation: operation,\r\n Identity: guid,\r\n EquipmentRef: \"Equipment(\" + y.Identity.toString() + \")\",\r\n OperatorTaskRef:\r\n \"OperatorTask(\" + x.operatortaskIdentity.toString() + \")\",\r\n };\r\n\r\n this.changes.push(change);\r\n\r\n if (this.problematicEquipments.indexOf(y.Identity) === -1) {\r\n this.problematicEquipments.push(y.Identity);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n if (\r\n this.changes.length === 0 &&\r\n this.model.equipment.HasInspectionDutiesActivated\r\n ) {\r\n // Die Prüfpflichten wurden gar nicht geändert, aber das Abschliessen Flag ist aktiv (das checkbox) =>\r\n //Müssen die Ids der selektierten Anlagen mit Operation UpdateActivateInspectionDutiesOnly gespeichert werden\r\n this.model.selectedEquipments.forEach((eqId) => {\r\n let change = {\r\n Operation: Operations.Operations.UpdateActivateInspectionDutiesOnly,\r\n //Identity: Utils.guid(),\r\n EquipmentRef: \"Equipment(\" + eqId + \")\",\r\n };\r\n\r\n this.changes.push(change);\r\n });\r\n }\r\n\r\n let jsonChanges = \"[\";\r\n\r\n this.changes.forEach((change) => {\r\n if (jsonChanges !== \"[\") {\r\n jsonChanges = jsonChanges + \",\";\r\n }\r\n jsonChanges =\r\n jsonChanges +\r\n \"{\" +\r\n '\"Operation\":' +\r\n '\"' +\r\n change.Operation +\r\n '\",' +\r\n '\"EquipmentRef\":' +\r\n '\"' +\r\n change.EquipmentRef +\r\n '\"';\r\n\r\n if (change.Identity) {\r\n jsonChanges += \",\" + '\"Identity\":' + '\"' + change.Identity + '\"';\r\n }\r\n if (change.Interval) {\r\n jsonChanges += \",\" + '\"Interval\":' + change.Interval;\r\n }\r\n\r\n if (change.OperatorTaskRef) {\r\n jsonChanges +=\r\n \",\" + '\"OperatorTaskRef\":' + '\"' + change.OperatorTaskRef + '\"';\r\n }\r\n\r\n jsonChanges += \"}\";\r\n });\r\n\r\n jsonChanges = jsonChanges + \"]\";\r\n\r\n this.saveInspectiondutiesOutputData = {\r\n Comment: this.model.comment,\r\n ActivateInspectionDuties:\r\n this.model.equipment.HasInspectionDutiesActivated.toString(),\r\n Changes: jsonChanges,\r\n };\r\n }\r\n\r\n SaveAll(validForm: boolean): void {\r\n this.collectAllSaves();\r\n\r\n if (this.changes.length > 0) {\r\n if (this.problematicEquipments.length > 0) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n\r\n let names: string[] = [];\r\n let message: string = \"\";\r\n this.model.equipment.Building.Equipments.forEach((x) => {\r\n if (this.problematicEquipments.indexOf(x.Identity) > -1) {\r\n names.push(x.Name);\r\n }\r\n });\r\n\r\n modalRef.componentInstance.title =\r\n \"Ãœberschreiben von aktivierten Prüfpflichten\";\r\n message =\r\n \"Bei folgenden Anlagen werden aktivierte Prüfpflichten überschrieben:
\";\r\n\r\n names.forEach((y) => {\r\n message = message + \" - \" + y + \"
\";\r\n });\r\n modalRef.componentInstance.message = message;\r\n modalRef.componentInstance.yesButton = \"Speichern\";\r\n modalRef.componentInstance.cancelButton = \"Abbrechen\";\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.odataCoreService.InspectionDuty.Actions()\r\n .BatchChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet()\r\n .Parameters(\r\n this.saveInspectiondutiesOutputData.Comment,\r\n this.saveInspectiondutiesOutputData.ActivateInspectionDuties,\r\n this.saveInspectiondutiesOutputData.Changes\r\n )\r\n .Execute()\r\n .then((res) => {\r\n this.model = null;\r\n this.changes = [];\r\n this.problematicEquipments = [];\r\n this.goToInspectionDutiesNotActivated();\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n this.changes = [];\r\n this.problematicEquipments = [];\r\n });\r\n } else {\r\n this.odataCoreService.InspectionDuty.Actions()\r\n .BatchChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet()\r\n .Parameters(\r\n this.saveInspectiondutiesOutputData.Comment,\r\n this.saveInspectiondutiesOutputData.ActivateInspectionDuties,\r\n this.saveInspectiondutiesOutputData.Changes\r\n )\r\n .Execute()\r\n .then((res) => {\r\n this.changes = [];\r\n this.problematicEquipments = [];\r\n this.goToInspectionDutiesNotActivated();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private mapCycleUnitToEnum(unit: string): Common.IntervalUnits {\r\n let cycleUnitEnum;\r\n switch (unit) {\r\n case Common.IntervalUnits.Undefined:\r\n cycleUnitEnum = Common.IntervalUnits.Undefined;\r\n break;\r\n case Common.IntervalUnits.Year:\r\n cycleUnitEnum = Common.IntervalUnits.Year;\r\n break;\r\n case Common.IntervalUnits.Month:\r\n cycleUnitEnum = Common.IntervalUnits.Month;\r\n break;\r\n case Common.IntervalUnits.Week:\r\n cycleUnitEnum = Common.IntervalUnits.Week;\r\n break;\r\n }\r\n return cycleUnitEnum;\r\n }\r\n\r\n private goToInspectionDutiesNotActivated(): void {\r\n this.router.navigate(\r\n [\r\n \"/dashboard\",\r\n {\r\n outlets: {\r\n left: [\"board\"],\r\n right: [\r\n IntegrityBoxComponent.PATH_PREFIX,\r\n IntegrityBoxComponent.PATH_EQUIPMENTS_NO_INSPECTION_DUTIES,\r\n ],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n close(): void {\r\n this.router.navigate(\r\n [\r\n \"/dashboard\",\r\n {\r\n outlets: {\r\n left: [\"board\"],\r\n right: [\r\n IntegrityBoxComponent.PATH_PREFIX,\r\n IntegrityBoxComponent.PATH_EQUIPMENTS_NO_INSPECTION_DUTIES,\r\n ],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n }\r\n\r\n public previous() {\r\n this.pageChangeRequest.emit(InspectiondutyWizardNavigationPaths.PREVIOUS);\r\n }\r\n}\r\n","import { Component, OnInit, Input,EventEmitter,Output } from '@angular/core';\r\nimport {InspectiondutyWizardNavigationPaths} from './../inspectionduty-wizard-navigation-paths';\r\nimport { InspectiondutyWizardService } from '../inspectionduty-wizard-service';\r\nimport { InspectiondutyWizardModel } from '../inspectionduty-wizard-model';\r\nimport { Common } from 'app/core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-inspectionduty-wizard-progress',\r\n templateUrl: './inspectionduty-wizard-progress.component.html',\r\n styleUrls: ['./inspectionduty-wizard-progress.component.scss']\r\n})\r\nexport class InspectiondutyWizardProgressComponent implements OnInit {\r\n\r\n CycleUnits = Common.IntervalUnits;\r\n\r\n PAGE_DATA = InspectiondutyWizardNavigationPaths.DATA;\r\n PAGE_OTHEREQUIPMENTS = InspectiondutyWizardNavigationPaths.OTHEREQUIPMENTS;\r\n \r\n @Input()\r\n currentPage: InspectiondutyWizardNavigationPaths;\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(private service: InspectiondutyWizardService) { }\r\n model: InspectiondutyWizardModel;\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentEquipmentModel();\r\n }\r\n navigate(pageChangeEvent: InspectiondutyWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {PropertyCore} from 'app/core/odata/odata.coreapi';\r\nimport { InspectiondutyWizardModel} from './inspectionduty-wizard-model';\r\n//import { Equipment } from 'app/core/model/equipmentOperatorTask';\r\nimport { EditOperatorTask } from '../../../core/components/equipment/edit-inspection-duties/editOperatorTask';\r\n@Injectable()\r\nexport class InspectiondutyWizardService {\r\n\r\n model: InspectiondutyWizardModel = new InspectiondutyWizardModel;\r\n equipment: PropertyCore.Equipment;\r\n equipmentOperatorTasks: EditOperatorTask[];\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray?: any[] = []; \r\n cycleUnits: string[];\r\n selectedEquipments: String[] = [];\r\n changedIDs: number[] =[];\r\n\r\n constructor() {\r\n }\r\n getCurrentEquipmentModel(): InspectiondutyWizardModel{\r\n return this.model;\r\n }\r\n startWizard(equipment: PropertyCore.Equipment,\r\n equipmentOperatorTasks: EditOperatorTask[],\r\n attributesCategories:any[],\r\n attributesCategoryNames:any[],\r\n categoryArray: any[],\r\n cycleUnits: String[]\r\n ):void{\r\n\r\n this.model.equipment = equipment;\r\n this.model.equipmentOperatorTasks = equipmentOperatorTasks;\r\n this.model.attributesCategories = attributesCategories;\r\n this.model.attributesCategoryNames = attributesCategoryNames;\r\n this.model.categoryArray = categoryArray;\r\n this.model.cycleUnits = cycleUnits;\r\n this.model.selectedEquipments = [];\r\n this.model.selectedEquipments.push(equipment.Identity);\r\n this.model.comment= \"\";\r\n this.changedIDs=[];\r\n \r\n \r\n\r\n \r\n }\r\n resettInspectionduty():void {\r\n \r\n \r\n }\r\n\r\n\r\n \r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { NgbModal, NgbPanelChangeEvent } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, Subscription, from, Observable } from 'rxjs';\r\nimport { Common, PropertyCore, Operations, ObjektBrief } from 'app/core/odata/odata.coreapi';\r\nimport { AuthService } from 'app/core/auth/auth.service';\r\nimport { ConfirmationModal } from 'app/core/popup/confirmation.modal';\r\nimport { EquipmentEditInspectionDutiesInputData } from 'app/core/components/equipment/equipment-edit-inspection-duties-input-data';\r\nimport { EquipmentEditInspectionDutiesSaveOutputData } from 'app/core/components/equipment/equipment-edit-inspection-duties-save-output-data';\r\nimport { EditInspectionDutyGroup } from 'app/core/components/equipment/edit-inspection-duties/editInspectionDutyGroup';\r\nimport { InspectiondutyWizardNavigationPaths } from './inspectionduty-wizard-navigation-paths';\r\nimport { ODataCoreService } from 'app/core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataPath } from 'app/core/odata/odataclient';\r\nimport { EditOperatorTask } from 'app/core/components/equipment/edit-inspection-duties/editOperatorTask';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { Utils } from 'app/core/tools/utils';\r\nimport { InspectiondutyWizardService } from './inspectionduty-wizard-service';\r\nimport { InspectiondutyWizardModel } from './inspectionduty-wizard-model';\r\nimport { InspectiondutyWizardApiService } from './inspectionduty-wizard-api-service';\r\n\r\n@Component({\r\n selector: 'app-inspectionduty-wizard',\r\n templateUrl: './inspectionduty-wizard.component.html',\r\n styleUrls: ['./inspectionduty-wizard.component.scss'],\r\n providers: [InspectiondutyWizardApiService],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InspectiondutyWizardComponent implements OnInit, OnDestroy {\r\n //@Input() inputData: EquipmentEditInspectionDutiesInputData;\r\n\r\n //@Output() closeRequest = new EventEmitter();\r\n\r\n //@Output() saveRequest = new EventEmitter();\r\n inputData = new EquipmentEditInspectionDutiesInputData();\r\n equipment: PropertyCore.Equipment;\r\n equipmentOperatorTaskMarkers$: Observable;\r\n hasInspectionDutiesActivatedChanged: boolean;\r\n\r\n modelReady: boolean;\r\n installEquipmentUT: String;\r\n currentPage: InspectiondutyWizardNavigationPaths;\r\n PAGE_DATA = InspectiondutyWizardNavigationPaths.DATA;\r\n PAGE_OTHEREQUIPMENTS = InspectiondutyWizardNavigationPaths.OTHEREQUIPMENTS;\r\n\r\n\r\n showClose: boolean;\r\n showHeader: boolean;\r\n\r\n inspectionDutyGroups: EditInspectionDutyGroup[];\r\n equipmentOperatorTaskMarkers: EditOperatorTask[];\r\n\r\n cycleUnits: string[];\r\n CycleUnits = Common.IntervalUnits;\r\n comment: string;\r\n\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray?: any[] = [];\r\n\r\n isAttributePanelOpen: boolean;\r\n\r\n formSubmitted: boolean;\r\n originalIsDisabled: boolean;\r\n isChangedSeriesStart: boolean;\r\n isChangedActive: boolean;\r\n\r\n bulkInspectionDutyChange: PropertyCore.InspectionDutyChanges;\r\n storeInspectionDutyChange: any[] = [];\r\n equipmentPatchFlag = 0;\r\n\r\n attributeType: PropertyCore.AttributeType[];\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n protected authService: AuthService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private odataCoreService: ODataCoreService,\r\n private service: InspectiondutyWizardService,\r\n private apiService: InspectiondutyWizardApiService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.inputData.installEquipment$ = this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.installEquipmentUT = params.get('id');\r\n return this.apiService.getEquipmentAllData(Guid.parse(params.get('id')));\r\n }));\r\n this.currentPage = this.PAGE_DATA;\r\n\r\n this.inputData.equipmentOperatorTaskMarkers$ = this.route.paramMap.pipe(switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"OperatorTaskMarkers\", y => {\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Id\")\r\n z.Select(\"Identity\")\r\n z.Select(\"Guidelines\")\r\n z.Select(\"Subject\")\r\n z.Select(\"Deadline\")\r\n z.Select(\"Qualification\")\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n z.Select(\"IsRelevant\")\r\n z.Expand(\"ModuleTypes\")\r\n })\r\n y.Filter(z => z\r\n .Equals(ODataPath.For(\"OperatorTask\", \"IsRelevant\"), true).Or\r\n .EqualsField(\"IsMissing\", false))\r\n }),\r\n x.Expand(\"InspectionDuties\", y => {\r\n y.Expand(\"Schedule\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n z.Select(\"CycleStart\")\r\n }),\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Id\")\r\n })\r\n y.Filter(z => z\r\n .EqualsField(\"IsDisabled\", false))\r\n })\r\n })\r\n .Select(\"Identity\")\r\n .Exec()\r\n .then(x => x.value)))\r\n , map(id => {\r\n const activatedInspectionDuties = id[0].InspectionDuties;\r\n const idg: EditOperatorTask[] = []\r\n id.forEach(x => {\r\n let a: number = 0;\r\n while (a < x.OperatorTaskMarkers.length) {\r\n\r\n let activatedOperatorTaskId = x.OperatorTaskMarkers[a].OperatorTask.Id;\r\n\r\n let activatedInspectionDutyItem =\r\n activatedInspectionDuties.filter(x => x.OperatorTask.Id == activatedOperatorTaskId).length != 0 ?\r\n activatedInspectionDuties.filter(x => x.OperatorTask.Id == activatedOperatorTaskId)[0] : null;\r\n\r\n let idgItem;\r\n idgItem = new EditOperatorTask();\r\n if (x.OperatorTaskMarkers[a].OperatorTask.ModuleTypes) {\r\n idgItem.imName = x.OperatorTaskMarkers[a].OperatorTask.ModuleTypes.map(m => m.Name).join(\", \");\r\n }\r\n idgItem.guideline = x.OperatorTaskMarkers[a].OperatorTask.Guidelines;\r\n idgItem.deadline = x.OperatorTaskMarkers[a].OperatorTask.Deadline;\r\n idgItem.subject = x.OperatorTaskMarkers[a].OperatorTask.Subject;\r\n idgItem.qualification = x.OperatorTaskMarkers[a].OperatorTask.Qualification;\r\n idgItem.operatortaskId = x.OperatorTaskMarkers[a].OperatorTask.Id;\r\n idgItem.operatortaskIdentity = x.OperatorTaskMarkers[a].OperatorTask.Identity;\r\n idgItem.cycle = x.OperatorTaskMarkers[a].OperatorTask.Cycle;\r\n idgItem.cycleUnit = x.OperatorTaskMarkers[a].OperatorTask.CycleUnit;\r\n idgItem.isMissing = x.OperatorTaskMarkers[a].IsMissing;\r\n\r\n if (activatedInspectionDutyItem != null) {\r\n idgItem.aCycle = activatedInspectionDutyItem.Schedule.Cycle;\r\n idgItem.aCycleUnit = activatedInspectionDutyItem.Schedule.CycleUnit;\r\n if (activatedInspectionDutyItem.Schedule.CycleStart == null) {\r\n idgItem.aCycleStart = null;\r\n idgItem.aCycleStartIsNotEmpty = false;\r\n } else {\r\n idgItem.aCycleStart = new Date(activatedInspectionDutyItem.Schedule.CycleStart);\r\n idgItem.aCycleStartIsNotEmpty = true;\r\n }\r\n idgItem.aInspectionDutyIdentity = activatedInspectionDutyItem.Identity;\r\n } else {\r\n idgItem.aCycle = null;\r\n idgItem.aCycleUnit = null;\r\n idgItem.aCycleStart = null;\r\n idgItem.aCycleStartIsNotEmpty = false;\r\n idgItem.aInspectionDutyIdentity = null;\r\n }\r\n\r\n idg.push(idgItem)\r\n a++;\r\n }\r\n });\r\n idg.sort((a, b) => {\r\n const imNameCompare = a.imName ? a.imName.localeCompare(b.imName) : (b.imName ? -b.imName.localeCompare(a.imName) : 0);\r\n return imNameCompare ? imNameCompare : (a.guideline ? a.guideline.localeCompare(b.guideline) : (b.guideline ? -b.guideline.localeCompare(a.guideline) : 0));\r\n });\r\n return idg;\r\n }));\r\n this.equipmentPatchFlag = 0;\r\n this.cycleUnits = this.inputData.cycleUnits;\r\n\r\n this.subscriptions.add(\r\n combineLatest(\r\n this.inputData.equipmentOperatorTaskMarkers$,\r\n this.inputData.installEquipment$,\r\n ).subscribe(([idg, ie]) => {\r\n this.equipmentOperatorTaskMarkers = idg;\r\n this.equipment = ie;\r\n\r\n // reset input data\r\n this.comment = null;\r\n this.formSubmitted = false;\r\n this.categoryArray.length = 0;\r\n this.attributesCategories.length = 0;\r\n this.attributesCategoryNames.length = 0;\r\n this.isAttributePanelOpen = false;\r\n\r\n // load ie attributes\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.equipment.Identity))\r\n .Select(\"Identity\", \"Name\", \"AttributeValues\")\r\n .Expand(x =>\r\n x.Expand(\"AttributeValues\"))\r\n .Exec()\r\n .then(x => x.value))\r\n .pipe(map(res => res[0]))\r\n .subscribe(res => {\r\n\r\n this.odataCoreService.AttributeType.Query()\r\n .Expand(x => {\r\n x.Expand(\"Set\")\r\n x.Expand(\"MeasurementUnit\")\r\n })\r\n .OrderBy(\"Order\", \"asc\")\r\n .Exec()\r\n .then(res1 => {\r\n let result1 = res1.value;\r\n let a: number = 0;\r\n\r\n while (result1.length > a) {\r\n let attributeItem = res.AttributeValues.find(x => x.Id == result1[a].Id);\r\n if (attributeItem) {\r\n attributeItem['Description'] = result1[a].Description;\r\n attributeItem['Name'] = result1[a].Name;\r\n attributeItem['MeasurementUnit'] = result1[a].MeasurementUnit;\r\n attributeItem['IsOptional'] = result1[a].IsOptional;\r\n attributeItem['AttributeCategory'] = result1[a].Set;\r\n attributeItem['ValueType'] = result1[a].ValueType;\r\n\r\n this.attributesCategories.push(attributeItem);\r\n if (attributeItem.Value != null || \"\") {\r\n this.attributesCategoryNames.push(attributeItem['AttributeCategory'].Name);\r\n }\r\n }\r\n a++;\r\n }\r\n this.categoryArray = this.attributesCategoryNames.filter((element, index, input) => {\r\n if (input.indexOf(element) === index) {\r\n return element\r\n }\r\n })\r\n\r\n\r\n });\r\n\r\n }));\r\n\r\n this.service.startWizard(this.equipment, this.equipmentOperatorTaskMarkers, this.attributesCategories, this.attributesCategoryNames, this.categoryArray, this.cycleUnits);\r\n })\r\n );\r\n\r\n\r\n this.showClose = this.inputData.showClose;\r\n this.showHeader = this.inputData.showHeader;\r\n this.modelReady = true;\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n processPageChangeRequest(pageChangeEvent: InspectiondutyWizardNavigationPaths): void {\r\n\r\n switch (pageChangeEvent) {\r\n\r\n case InspectiondutyWizardNavigationPaths.DATA: {\r\n this.currentPage = this.PAGE_DATA;\r\n break;\r\n }\r\n case InspectiondutyWizardNavigationPaths.EXIT: {\r\n\r\n }\r\n case InspectiondutyWizardNavigationPaths.NEXT: {\r\n this.currentPage = this.PAGE_OTHEREQUIPMENTS;\r\n break;\r\n }\r\n case InspectiondutyWizardNavigationPaths.PREVIOUS: {\r\n this.currentPage = this.PAGE_DATA;\r\n break;\r\n }\r\n case InspectiondutyWizardNavigationPaths.OTHEREQUIPMENTS: {\r\n this.currentPage = this.PAGE_OTHEREQUIPMENTS;\r\n }\r\n\r\n }\r\n }\r\n\r\n openInfoDialog() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EquipmentDetailEditInspection._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EquipmentDetailEditInspection._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EquipmentDetailEditInspection._modal_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n private mapCycleUnitToEnum(unit: string): Common.IntervalUnits {\r\n let cycleUnitEnum;\r\n switch (unit) {\r\n case Common.IntervalUnits.Undefined:\r\n cycleUnitEnum = Common.IntervalUnits.Undefined;\r\n break;\r\n case Common.IntervalUnits.Year:\r\n cycleUnitEnum = Common.IntervalUnits.Year;\r\n break;\r\n case Common.IntervalUnits.Month:\r\n cycleUnitEnum = Common.IntervalUnits.Month;\r\n break;\r\n case Common.IntervalUnits.Week:\r\n cycleUnitEnum = Common.IntervalUnits.Week;\r\n break;\r\n }\r\n return cycleUnitEnum;\r\n }\r\n\r\n hasInspectionDutiesActivatedChange() {\r\n this.hasInspectionDutiesActivatedChanged = true;\r\n }\r\n\r\n onPanelChange($event: NgbPanelChangeEvent) {\r\n this.isAttributePanelOpen = $event.nextState;\r\n }\r\n\r\n\r\n\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, Observable, from} from 'rxjs';\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {InstallEquipmentService} from './../../../installEquipment.service';\r\nimport {ModuleWizardModel} from './../module-wizard-model';\r\nimport {ModuleWizardNavigationPaths} from './../module-wizard-navigation-paths.enum';\r\nimport {ModuleWizardService} from './../module-wizard.service';\r\nimport {Utils} from \"../../../../core/tools/utils\";\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n@Component({\r\n selector: 'app-module-wizard-data',\r\n templateUrl: './module-wizard-data.component.html',\r\n styleUrls: ['./module-wizard-data.component.scss']\r\n})\r\nexport class ModuleWizardDataComponent implements OnInit, OnDestroy {\r\n\r\n\r\n model: ModuleWizardModel;\r\n\r\n floors: PropertyCore.Floor[];\r\n rooms: PropertyCore.Room[];\r\n\r\n newRoomName: string;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: ModuleWizardService,\r\n private equipmentService: InstallEquipmentService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentModule();\r\n\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.model.equipment.Identity))\r\n .Expand(x => {\r\n x.Expand(\"Building\", y => {\r\n y.Expand(\"Floors\")\r\n })\r\n })\r\n .Exec()\r\n .then(x => x.value))\r\n .pipe(map(res => res[0].Building.Floors.map(f => Utils.mapAllJSONDatesToDates(f))))\r\n .subscribe(res => this.floors = res));\r\n\r\n if (this.model.floor) {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Room.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.equipment.Building.Identity)).And\r\n .Equals(ODataPath.For(\"Floor\", \"Id\"), this.model.floor.Id))\r\n .Expand(x => {\r\n x.Expand(\"Floor\")\r\n x.Expand(\"Statistics\")\r\n })\r\n .Exec()\r\n .then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res => this.rooms = res));\r\n\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.NEXT);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ModuleWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ModuleWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ModuleWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ModuleWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentModule();\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n onFloorChange(selectedFloor: PropertyCore.Floor): void {\r\n this.model.floor = selectedFloor;\r\n this.model.room = null;\r\n\r\n if (selectedFloor) {\r\n\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Room.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Building\", \"Identity\"), Guid.parse(this.model.equipment.Building.Identity)).And\r\n .Equals(ODataPath.For(\"Floor\", \"Id\"), this.model.floor.Id))\r\n .Expand(x => {\r\n x.Expand(\"Floor\")\r\n x.Expand(\"Statistics\")\r\n })\r\n .Exec()\r\n .then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res => this.rooms = res));\r\n\r\n }\r\n }\r\n \r\n openNewRoomPopup(content): void {\r\n //TODO chage to odata\r\n this.modalService.open(content).result.then(async result => {\r\n // on save click\r\n const guid = Utils.guid();\r\n let res = await this.odataCoreService.Room.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Room())\r\n .ValueProperty(\"Identity\", guid)\r\n .ValueProperty(\"Name\", this.newRoomName)\r\n .ValuePropertyBinding(\"Floor\", this.odataCoreService.Floor.Get().Key(this.model.floor.Id).Bind())\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.model.equipment.Building.Identity)).Bind())\r\n .Exec();\r\n this.model.room = {Id: res, Name: this.newRoomName, Identity: guid};\r\n this.rooms.push(this.model.room);\r\n this.newRoomName = null;\r\n }).catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n openInfoDialog3() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ModuleWizardData._modal_customName_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ModuleWizardData._modal_customName_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ModuleWizardData._modal_customName_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n}\r\n","import { PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\nexport class ModuleWizardModel {\r\n\r\n id: string;\r\n\r\n equipment: PropertyCore.Equipment;\r\n\r\n quantity: number;\r\n\r\n installModuleType?: PropertyCore.ModuleType;\r\n\r\n customid: string;\r\n comment: string;\r\n floor?: PropertyCore.Floor;\r\n room?: PropertyCore.Room;\r\n\r\n attributesCategories: any = {};\r\n\r\n reset(): void {\r\n this.id = null;\r\n this.equipment = null;\r\n this.quantity = null;\r\n this.installModuleType = null;\r\n this.customid = null;\r\n this.comment = null;\r\n this.floor = null;\r\n this.room = null;\r\n this.attributesCategories = null;\r\n }\r\n}\r\n","export enum ModuleWizardNavigationPaths {\r\n\r\n TYPE = 'type',\r\n DATA = 'data',\r\n TECHNICAL = 'technical',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit'\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { ModuleWizardNavigationPaths } from '../module-wizard-navigation-paths.enum';\r\nimport { ModuleWizardModel } from './../module-wizard-model';\r\nimport { ModuleWizardService } from './../module-wizard.service';\r\nimport { ObjektBrief } from 'app/core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-module-wizard-progress',\r\n templateUrl: './module-wizard-progress.component.html',\r\n styleUrls: ['./module-wizard-progress.component.scss']\r\n})\r\nexport class ModuleWizardProgressComponent implements OnInit {\r\n\r\n PAGE_DATA = ModuleWizardNavigationPaths.DATA;\r\n PAGE_TYPE = ModuleWizardNavigationPaths.TYPE;\r\n PAGE_TECHNICAL = ModuleWizardNavigationPaths.TECHNICAL;\r\n\r\n model: ModuleWizardModel;\r\n AttributeType: any;\r\n\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n currentPage: ModuleWizardNavigationPaths;\r\n\r\n constructor(private service: ModuleWizardService) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentModule();\r\n this.AttributeType = ObjektBrief.AttributeValueTypes;\r\n }\r\n\r\n navigate(pageChangeEvent: ModuleWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Subscription, from } from \"rxjs\";\r\n\r\nimport { AttributeDTO } from \"../../../../core/model/attributeDTO\";\r\nimport { ConfirmationModal } from \"../../../../core/popup/confirmation.modal\";\r\nimport { Utils } from \"../../../../core/tools/utils\";\r\nimport { ModuleWizardModel } from \"../module-wizard-model\";\r\nimport { ModuleWizardNavigationPaths } from \"../module-wizard-navigation-paths.enum\";\r\nimport { ModuleWizardService } from \"../module-wizard.service\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { PropertyCore, ObjektBrief } from \"../../../../core/odata/odata.coreapi\";\r\nimport Module = PropertyCore.Module;\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { ODataCoreService } from \"../../../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"app-module-wizard-technical\",\r\n templateUrl: \"./module-wizard-technical.component.html\",\r\n styleUrls: [\"./module-wizard-technical.component.scss\"],\r\n})\r\nexport class ModuleWizardTechnicalComponent implements OnInit, OnDestroy {\r\n model: ModuleWizardModel;\r\n\r\n attributeFilter: string;\r\n categoryFilter: string = \"\";\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n requiredAttributes: any[] = [];\r\n categoryArray: any[] = [];\r\n years: string[];\r\n AttributeType: any;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output() pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: ModuleWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.AttributeType = ObjektBrief.AttributeValueTypes;\r\n this.model = this.service.getCurrentModule();\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Select(\"AttributeTypeSets\")\r\n .Expand((x) => {\r\n x.Expand(\"AttributeTypeSets\", (y) => {\r\n y.Expand(\"AttributeTypes\", (z) => {\r\n z.Expand(\"MeasurementUnit\");\r\n z.OrderBy(\"Order\", \"asc\");\r\n });\r\n });\r\n })\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(this.model.equipment.Building.Identity)))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res[0]))\r\n .subscribe((res1) => {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.ModuleType.Query()\r\n .Expand((x) =>\r\n x.Expand(\"AttributeTypes\", (y) => {\r\n y.Expand(\"Set\");\r\n y.Expand(\"MeasurementUnit\");\r\n })\r\n )\r\n .Filter((x) => x.EqualsField(\"Id\", this.model.installModuleType.Id))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res[0]))\r\n .subscribe((res) => {\r\n let a = 0;\r\n\r\n while (res1.AttributeTypeSets.length > a) {\r\n let b = 0;\r\n\r\n while (res1.AttributeTypeSets[a].AttributeTypes.length > b) {\r\n let requiredAttributeItem = res.AttributeTypes.find(\r\n (x) => x.Id == res1.AttributeTypeSets[a].AttributeTypes[b].Id\r\n );\r\n\r\n if (requiredAttributeItem) {\r\n this.requiredAttributes.push(requiredAttributeItem);\r\n }\r\n\r\n b++;\r\n }\r\n a++;\r\n }\r\n\r\n this.model.attributesCategories = this.requiredAttributes;\r\n\r\n let x = 0;\r\n\r\n while (this.model.attributesCategories.length > x) {\r\n this.attributesCategories.push(this.model.attributesCategories[x]);\r\n this.attributesCategoryNames.push(this.model.attributesCategories[x].Set.Name);\r\n x++;\r\n }\r\n\r\n this.categoryArray = this.attributesCategoryNames.filter((element, index, input) => {\r\n if (input.indexOf(element) === index) {\r\n return element;\r\n }\r\n });\r\n\r\n this.preselectCategory();\r\n })\r\n );\r\n })\r\n );\r\n\r\n this.years = Utils.yearsTillToday();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n private preselectCategory() {\r\n // pre-select ob standard category\r\n if (this.attributesCategories.length != 0) {\r\n var defaultCategory = this.attributesCategories.find((x) => x.Set.IsDefault == true);\r\n let obStandardCategory = \"\";\r\n\r\n if (defaultCategory != undefined) {\r\n obStandardCategory = this.attributesCategoryNames.find((Name) => Name == defaultCategory.Set.Name);\r\n }\r\n\r\n if (obStandardCategory) {\r\n this.categoryFilter = obStandardCategory;\r\n }\r\n }\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n async save(andNew: boolean = false): Promise {\r\n if (this.model.room != null) {\r\n await this.odataCoreService.Module.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Module())\r\n .ValueProperty(\"Equipment\", this.model.equipment)\r\n .ValueProperty(\"ModuleType\", this.model.installModuleType)\r\n .ValueProperty(\"Room\", this.model.room)\r\n .ValueProperty(\"CustomId\", this.model.customid)\r\n .ValueProperty(\"Quantity\", this.model.quantity)\r\n .ValueProperty(\"Comment\", this.model.comment)\r\n .ValuePropertyBinding(\r\n \"Equipment\",\r\n this.odataCoreService.Equipment.Get().Key(Guid.parse(this.model.equipment.Identity)).Bind()\r\n )\r\n .ValuePropertyBinding(\"Room\", this.odataCoreService.Room.Get().Key(Guid.parse(this.model.room.Identity)).Bind())\r\n .ValuePropertyBinding(\r\n \"ModuleType\",\r\n this.odataCoreService.ModuleType.Get().Key(this.model.installModuleType.Code).Bind()\r\n )\r\n .Exec()\r\n .then(\r\n (result: Module) => {\r\n this.saveAttributes(result.Identity, andNew);\r\n this.toasterService.pop(\r\n \"success\",\r\n \"\",\r\n this.translateService.instant(\"ModuleWizardTechnical._create_success\")\r\n );\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.toasterService.pop(\"error\", \"\", \"ModuleWizardTechnical._create_error\");\r\n }\r\n );\r\n } else {\r\n await this.odataCoreService.Module.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Module())\r\n .ValueProperty(\"Equipment\", this.model.equipment)\r\n .ValueProperty(\"ModuleType\", this.model.installModuleType)\r\n .ValueProperty(\"Room\", this.model.room)\r\n .ValueProperty(\"CustomId\", this.model.customid)\r\n .ValueProperty(\"Quantity\", this.model.quantity)\r\n .ValueProperty(\"Comment\", this.model.comment)\r\n .ValuePropertyBinding(\r\n \"Equipment\",\r\n this.odataCoreService.Equipment.Get().Key(Guid.parse(this.model.equipment.Identity)).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"ModuleType\",\r\n this.odataCoreService.ModuleType.Get().Key(this.model.installModuleType.Code).Bind()\r\n )\r\n .Exec()\r\n .then(\r\n (result: Module) => {\r\n this.saveAttributes(result.Identity, andNew);\r\n this.toasterService.pop(\r\n \"success\",\r\n \"\",\r\n this.translateService.instant(\"ModuleWizardTechnical._create_success\")\r\n );\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.toasterService.pop(\"error\", \"\", \"ModuleWizardTechnical._create_error\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n private saveAttributes(identity: string, andNew: boolean): void {\r\n // save attributes\r\n const attributes: AttributeDTO[] = this.model.attributesCategories\r\n .filter((attribute) => attribute.Value !== undefined && !!attribute.Value)\r\n .map((attribute) => {\r\n const attributeDto = new AttributeDTO();\r\n attributeDto.Id = attribute.Id;\r\n attributeDto.Value = attribute.ValueType === \"Date\" ? Utils.dateToJson(attribute.Value) : attribute.Value;\r\n attributeDto.TypToken = attribute.ValueType;\r\n return attributeDto;\r\n });\r\n if (attributes.length) {\r\n let a = 0;\r\n while (attributes.length > a) {\r\n if (attributes[a].Value == \"\") {\r\n } else {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Module.Get()\r\n .Key(Guid.parse(identity))\r\n .NavigateToArray(\"AttributeValues\")\r\n .Patch()\r\n .Key(attributes[a].Id)\r\n .ValueType(this.odataCoreService.ODataTypes().AttributeValue())\r\n .ValueProperty(\"Value\", attributes[a].Value.toString())\r\n .Exec()\r\n ).subscribe((res2) => {\r\n if (attributes.length == a) {\r\n if (andNew) {\r\n this.service.resetCurrentModule();\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.START);\r\n } else {\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n })\r\n );\r\n }\r\n a++;\r\n }\r\n } else if (andNew) {\r\n this.service.resetCurrentModule();\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.START);\r\n } else {\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"ModuleWizard._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"ModuleWizard._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"ModuleWizard._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"ModuleWizard._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentModule();\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, from} from 'rxjs';\r\n\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {ConfirmationModal} from '../../../../core/popup/confirmation.modal';\r\nimport {ILogger} from '../../../../core/shared/logger.service';\r\nimport {ModuleWizardModel} from '../module-wizard-model';\r\nimport {ModuleWizardNavigationPaths} from '../module-wizard-navigation-paths.enum';\r\nimport {ModuleWizardService} from '../module-wizard.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-module-wizard-type',\r\n templateUrl: './module-wizard-type.component.html',\r\n styleUrls: ['./module-wizard-type.component.scss']\r\n})\r\nexport class ModuleWizardTypeComponent implements OnInit, OnDestroy {\r\n model: ModuleWizardModel;\r\n\r\n installModuleTypes: PropertyCore.ModuleType[];\r\n\r\n installModuleTypeFilter: string;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n logger: ILogger;\r\n\r\n @Output() pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: ModuleWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentModule();\r\n // TODO filter and show only those who are not set to a equipment yet, or always show every type?\r\n this.subscriptions.add(\r\n from(this.odataCoreService.ModuleType.Query()\r\n .Filter(x => x.Equals(ODataPath.For(\"EquipmentType\", \"Id\"), this.service.equipment.EquipmentType.Id))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(moduleTypes => (this.installModuleTypes = moduleTypes))\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(installModuleType: PropertyCore.ModuleType): void {\r\n if (!installModuleType) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.NEXT);\r\n }\r\n\r\n selectInstallModuleType(moduleType: PropertyCore.ModuleType): void {\r\n if (!this.model.installModuleType || (moduleType.Id !== this.model.installModuleType.Id)) {\r\n this.model.installModuleType = moduleType;\r\n this.model.attributesCategories = null;\r\n }\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ModuleWizard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ModuleWizard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ModuleWizard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ModuleWizard._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentModule();\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(ModuleWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {ModuleWizardNavigationPaths} from './module-wizard-navigation-paths.enum';\r\nimport {ModuleWizardService} from './module-wizard.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\n\r\n@Component({\r\n selector: 'app-module-wizard',\r\n templateUrl: './module-wizard.component.html',\r\n styleUrls: ['./module-wizard.component.scss']\r\n})\r\nexport class ModuleWizardComponent implements OnInit, OnDestroy {\r\n\r\n equipmentId: string;\r\n buildingId: string;\r\n navigateBack: string;\r\n\r\n currentPage: ModuleWizardNavigationPaths;\r\n\r\n modelReady: boolean;\r\n\r\n PAGE_DATA = ModuleWizardNavigationPaths.DATA;\r\n PAGE_TYPE = ModuleWizardNavigationPaths.TYPE;\r\n PAGE_TECHNICAL = ModuleWizardNavigationPaths.TECHNICAL;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private service: ModuleWizardService,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.paramMap.subscribe((params: ParamMap) => this.buildingId = params.get('id')));\r\n this.subscriptions.add(this.route.paramMap.subscribe((params: ParamMap) => this.equipmentId = params.get('id')));\r\n this.navigateBack = this.route.snapshot.data.navigateBack;\r\n this.currentPage = this.PAGE_TYPE;\r\n\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(this.equipmentId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe(ie => {\r\n this.service.startWizard(ie);\r\n this.modelReady = true;\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: ModuleWizardNavigationPaths): void {\r\n\r\n switch (pageChangeEvent) {\r\n\r\n case ModuleWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_TYPE;\r\n break;\r\n }\r\n case ModuleWizardNavigationPaths.EXIT: {\r\n if (this.navigateBack && this.navigateBack === 'equipment' && this.equipmentId) {\r\n this.router.navigate(['/building', this.buildingId, {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['equipment']}}],\r\n right: ['equipment', this.equipmentId, 'view', {outlets: {tab: ['modules']}}]\r\n }\r\n }]);\r\n } else if (this.navigateBack && this.navigateBack === 'building' && this.buildingId) {\r\n this.router.navigate(['/building', this.buildingId, {outlets: {left: ['list'], right: ['building']}}]);\r\n } else {\r\n console.error('Could not find a navigation route for equipment wizard!');\r\n }\r\n break;\r\n }\r\n case ModuleWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_TYPE) {\r\n this.currentPage = this.PAGE_DATA;\r\n } else if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_TECHNICAL;\r\n }\r\n break;\r\n }\r\n case ModuleWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_TYPE;\r\n } else if (this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case ModuleWizardNavigationPaths.TYPE: {\r\n if (this.currentPage === this.PAGE_TYPE || this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_TYPE;\r\n }\r\n break;\r\n }\r\n case ModuleWizardNavigationPaths.DATA: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case ModuleWizardNavigationPaths.TECHNICAL: {\r\n if (this.currentPage === this.PAGE_TECHNICAL) {\r\n this.currentPage = this.PAGE_TECHNICAL;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { ModuleWizardModel } from './module-wizard-model';\r\n\r\n@Injectable()\r\nexport class ModuleWizardService {\r\n\r\n model: ModuleWizardModel = new ModuleWizardModel;\r\n\r\n equipment: PropertyCore.Equipment;\r\n\r\n constructor() { }\r\n\r\n getCurrentModule(): ModuleWizardModel {\r\n return this.model;\r\n }\r\n\r\n startWizard(equipment: PropertyCore.Equipment): void {\r\n this.equipment = equipment;\r\n this.resetCurrentModule();\r\n }\r\n\r\n createModule(): void {\r\n // service call\r\n }\r\n\r\n resetCurrentModule(): void {\r\n this.model.reset();\r\n this.model.equipment = this.equipment;\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap} from '@angular/router';\r\nimport {of, Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\n\r\nimport { PropertyCore, ObjektBrief} from '../../core/odata/odata.coreapi';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\n\r\n@Component({\r\n selector: 'app-contract-detail',\r\n templateUrl: './contract-detail.component.html',\r\n styleUrls: ['./contract-detail.component.scss']\r\n})\r\n\r\nexport class ContractDetailComponent implements OnInit, OnDestroy {\r\n\r\n contract: PropertyCore.MaintenanceContract;\r\n CancellationPeriod = ObjektBrief.MaintenanceContractCancellationPeriods;\r\n CancellationUnit = ObjektBrief.MaintenanceContractCancellationUnits;\r\n CancellationCalendar = ObjektBrief.MaintenanceContractCancellationCalendars;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.parent.parent.paramMap.pipe(switchMap((params: ParamMap) => of(params.get('id')))).subscribe(contractId => {\r\n this.subscriptions.add(from(this.odataCoreService.MaintenanceContract.Query()\r\n .Expand(x => {\r\n x.Expand(\"ServiceProvider\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(contractId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0]))).subscribe(contract => {\r\n this.contract = contract;\r\n }));\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {map} from 'rxjs/operators';\r\n\r\nimport {PropertyCore} from '../../core/odata/odata.coreapi';\r\nimport {ContractListInputdata} from '../../core/components/contract/contract-list-input-data';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { from } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-contract-list',\r\n templateUrl: './contract-list.component.html',\r\n styleUrls: ['./contract-list.component.scss']\r\n})\r\nexport class ContractListComponent implements OnInit {\r\n\r\n inputData: ContractListInputdata = new ContractListInputdata();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.contracts$ = from(this.odataCoreService.MaintenanceContract.Query()\r\n .Expand(x => {\r\n x.Expand(\"ServiceProvider\")\r\n })\r\n .OrderBy(\"Title\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))));\r\n\r\n this.inputData.contractUT$ = this.route.parent.paramMap.pipe(map((params: ParamMap) => params.get('id')));\r\n this.inputData.scrollStyle = {'height': 'calc(100vh - 245px)'};\r\n }\r\n\r\n\r\n handleWizardRequest(): void {\r\n this.router.navigate(['contract', 'wizard']);\r\n }\r\n\r\n handleDetailPageRequest(contract: PropertyCore.MaintenanceContract) {\r\n this.router.navigate(['/contract', contract.Identity, {outlets: {left: ['list'], right: ['contract']}}]);\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, ParamMap, Router } from '@angular/router';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from, Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\nimport { PropertyCore } from '../../core/odata/odata.coreapi';\r\nimport { AuthService } from './../../core/auth/auth.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from \"./../../core/odata-services/odata.coreapi.service\";\r\nimport { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n@Component({\r\n selector: 'app-contract-overview',\r\n templateUrl: './contract-overview.component.html',\r\n styleUrls: ['./contract-overview.component.scss']\r\n})\r\nexport class ContractOverviewComponent implements OnInit, OnDestroy {\r\n\r\n contract: PropertyCore.MaintenanceContract;\r\n currentTab: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private toasterService: ToasterService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n\r\n this.subscriptions.add(this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd), map(() => this.route))\r\n .subscribe((event) => {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['details'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n }));\r\n\r\n this.subscriptions.add(this.route.parent.paramMap.subscribe((params: ParamMap) => {\r\n this.subscriptions.add(from(this.odataCoreService.MaintenanceContract.Query()\r\n .Expand(x => {\r\n x.Expand(\"ServiceProvider\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0]))).subscribe(res => this.contract = res));\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onNavChange(changeEvent: NgbNavChangeEvent) {\r\n if (this.route.outlet === 'left') {\r\n this.router.navigate(['/contract', this.contract.Identity, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['contract', { outlets: { tab: [changeEvent.nextId] } }]\r\n }\r\n }]);\r\n } else {\r\n this.router.navigate([{ outlets: { tab: [changeEvent.nextId] } }], { relativeTo: this.route });\r\n }\r\n }\r\n\r\n contractEditWizard(contractId: string): void {\r\n this.subscriptions.add(this.canUpdate(this.contract.Id).subscribe(res => {\r\n this.router.navigate(['contract', 'wizard', contractId]);\r\n }, err => {\r\n this.toasterService.pop('warning', 'Warnung', 'Wartungsvertrag kann nicht bearbeitet werden');\r\n }));\r\n }\r\n\r\n canUpdate(id: number): Observable {\r\n return from(this.odataCoreService.ServiceProvider.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Id\", id))\r\n .Exec().then(x => x.value))\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { AuthGuard } from './../core/auth/auth-guard.service';\r\nimport { CoreModule } from './../core/core.module';\r\nimport { ContractDetailComponent } from './contract-detail/contract-detail.component';\r\nimport { ContractListComponent } from './contract-list/contract-list.component';\r\nimport { ContractOverviewComponent } from './contract-overview/contract-overview.component';\r\nimport { ContractComponent } from './contract/contract.component';\r\nimport { EquipmentListComponent } from './equipment-list/equipment-list.component';\r\nimport { StartComponent } from './start/start.component';\r\nimport {\r\n ContractWizardGeneralDataComponent,\r\n} from './wizard/contract/contract-wizard-general-data/contract-wizard-general-data.component';\r\nimport {\r\n ContractWizardInstallEquipmentsComponent,\r\n} from './wizard/contract/contract-wizard-install-equipments/contract-wizard-install-equipments.component';\r\nimport {\r\n ContractWizardMaintenanceDataComponent,\r\n} from './wizard/contract/contract-wizard-maintenance-data/contract-wizard-maintenance-data.component';\r\nimport {\r\n ContractWizardProgressComponent,\r\n} from './wizard/contract/contract-wizard-progress/contract-wizard-progress.component';\r\nimport {\r\n ContractWizardServiceContactComponent,\r\n} from './wizard/contract/contract-wizard-service-contact/contract-wizard-service-contact.component';\r\nimport { ContractWizardComponent } from './wizard/contract/contract-wizard.component';\r\nimport { ContractWizardService } from './wizard/contract/contract-wizard.service';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'contract',\r\n component: StartComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n component: ContractListComponent\r\n }\r\n ]\r\n },\r\n // wizard navigation routes\r\n {\r\n path: 'contract',\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n {\r\n path: 'wizard',\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n component: ContractWizardComponent,\r\n data: { navigateBack: 'contract' }\r\n },\r\n {\r\n path: 'set-equipment/:installEquipmentUT',\r\n component: ContractWizardComponent,\r\n data: { navigateBack: 'dashboard-integrity-equipment-no-contract' }\r\n },\r\n {\r\n path: ':id',\r\n component: ContractWizardComponent,\r\n data: { navigateBack: 'contract', editMode: true }\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n // detail navigation routes\r\n {\r\n path: 'contract/:id',\r\n component: ContractComponent,\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n // 1 level page setup\r\n {\r\n outlet: 'left',\r\n path: 'list',\r\n component: ContractListComponent,\r\n data: {\r\n animation: '1-contract-list'\r\n }\r\n },\r\n {\r\n outlet: 'right',\r\n path: 'contract',\r\n component: ContractOverviewComponent,\r\n data: {\r\n animation: '1-contract'\r\n },\r\n children: [\r\n {\r\n path: 'details',\r\n component: ContractDetailComponent,\r\n outlet: 'tab'\r\n },\r\n {\r\n path: 'equipment',\r\n component: EquipmentListComponent,\r\n outlet: 'tab'\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgbModule,\r\n RouterModule.forChild(routes),\r\n CoreModule],\r\n declarations: [\r\n StartComponent,\r\n ContractComponent,\r\n ContractListComponent,\r\n ContractOverviewComponent,\r\n ContractDetailComponent,\r\n EquipmentListComponent,\r\n ContractWizardComponent,\r\n ContractWizardProgressComponent,\r\n ContractWizardGeneralDataComponent,\r\n ContractWizardServiceContactComponent,\r\n ContractWizardInstallEquipmentsComponent,\r\n ContractWizardMaintenanceDataComponent\r\n ],\r\n exports: [RouterModule],\r\n providers: [ContractWizardService]\r\n})\r\nexport class ContractModule {}\r\n","import { animate, AnimationMetadata, group, query, style, transition, trigger } from '@angular/animations';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, RouterOutlet } from '@angular/router';\r\n\r\nimport { ILogger, LoggerService } from './../../core/shared/logger.service';\r\n\r\nconst leftContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ 'z-index': 2, transform: 'translate3d(100%,0,0)' }), { optional: true }), // entering panel must be over the leaving from right side in order to routerLinkActive to work\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) //'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst leftContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nconst rightContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(100%,0,0)' }), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) //'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst rightContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nexport const leftPanelSideAnimations: AnimationMetadata = trigger('leftAnimations', [\r\n transition('init => *', []), //denies any animation from 'init' state\r\n transition('void => *', []), //denies animation from 'null' state\r\n transition('2-contract => 1-contract-list', leftContentMoveToRight)\r\n]);\r\n\r\n\r\n/**\r\n * xyz => * : when moving forward to the right side: use rightContentMoveToLeft\r\n * abc => xyz : when moving backwards (close button) from abc to xyz: use rightContentMoveToRight\r\n */\r\nexport const rightPanelSideAnimations: AnimationMetadata = trigger('rightAnimations', [\r\n transition('init => *', []), //denies any animation from 'init' state\r\n transition('* => init', []), //denies any animation to 'init' state\r\n transition('void => *', []), //denies animation from 'null' state\r\n transition('1-contract => *', rightContentMoveToLeft),\r\n transition('2-equipment => 1-contract', rightContentMoveToRight), // pressed close on 2-equipment\r\n transition('2-equipment => *', rightContentMoveToLeft)\r\n]);\r\n\r\n\r\n@Component({\r\n selector: 'app-contract',\r\n templateUrl: './contract.component.html',\r\n styleUrls: ['./contract.component.scss'],\r\n animations: [leftPanelSideAnimations, rightPanelSideAnimations]\r\n})\r\nexport class ContractComponent implements OnInit {\r\n\r\n private logger: ILogger;\r\n\r\n constructor(private route: ActivatedRoute, private loggerService: LoggerService) {\r\n this.logger = loggerService.getLogger('ContractComponent');\r\n }\r\n\r\n public prepareRouteTransition(outlet: RouterOutlet) {\r\n const result = outlet.activatedRouteData['animation'] || 'init';\r\n return result;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {Subscription, from} from 'rxjs';\r\n\r\nimport {PropertyCore} from '../../core/odata/odata.coreapi';\r\nimport {ExtendedMaintenanceContractMapping} from '../../core/model/extendedMaintenanceContractMapping';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-list',\r\n templateUrl: './equipment-list.component.html',\r\n styleUrls: ['./equipment-list.component.scss']\r\n})\r\nexport class EquipmentListComponent implements OnInit, OnDestroy {\r\n\r\n contractId: string;\r\n buildingInstallEquipments: any[];\r\n\r\n searchFilter: string = '';\r\n equipments: PropertyCore.EquipmentType[];\r\n equipmentFilter: any = '';\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.parent.parent.paramMap.subscribe((params: ParamMap) => {\r\n this.contractId = params.get('id');\r\n this.subscriptions.add(from(this.odataCoreService.MaintenanceJob.Query()\r\n .Filter(xb => xb.Equals(ODataPath.For(\"Contract\", \"Identity\"), Guid.parse(this.contractId)))\r\n .Expand(xb => {\r\n xb.Expand(\"Contract\"),\r\n xb.Expand(\"Equipment\", y => {\r\n y.Expand(\"Building\"),\r\n y.Expand(\"EquipmentType\", z => {\r\n z.Expand(\"CostGroup\")\r\n })\r\n y.Expand(\"Room\", v => {\r\n v.Expand(\"Floor\")\r\n })\r\n })\r\n xb.Expand(\"Schedule\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new ExtendedMaintenanceContractMapping(), i);\r\n })))\r\n .subscribe(res => {\r\n this.buildingInstallEquipments = res.reduce((prev, next) => {\r\n const b = prev.find(x => x.buildingUT === next.Equipment.Building.Identity);\r\n if (!b) {\r\n prev.push({\r\n buildingUT: next.Equipment.Building.Identity,\r\n buildingName: next.Equipment.Building.Name,\r\n dataList: [next]\r\n });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []);\r\n }));\r\n }));\r\n\r\n this.subscriptions.add(from(this.odataCoreService.EquipmentType.Query().Exec().then(x => x.value)).subscribe(res => this.equipments = res));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n } //installEquipment.Equipment.Identity\r\n\r\n navToIE(installEquipment: ExtendedMaintenanceContractMapping) {\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(installEquipment.Equipment.Identity)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe(res => {\r\n this.router.navigate(['/building', installEquipment.Equipment.Building.Identity, {\r\n outlets: {\r\n left: ['building', 'view', {outlets: {tab: ['equipment']}}],\r\n right: ['equipment', installEquipment.Equipment.Identity, 'view', {outlets: {tab: ['details']}}]\r\n }\r\n }]);\r\n }, error => {\r\n this.toasterService.pop('warning', '', this.translateService.instant('ContractEquipmentList._navToIE_error'));\r\n }));\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\n\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\n\r\n@Component({\r\n selector: 'app-start',\r\n templateUrl: './start.component.html',\r\n styleUrls: ['./start.component.scss']\r\n})\r\nexport class StartComponent implements OnInit, OnDestroy {\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private odataCoreService: ODataCoreService,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.MaintenanceContract.Query()\r\n .Expand(x => {\r\n x.Expand(\"ServiceProvider\")\r\n })\r\n .OrderBy(\"Title\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => {\r\n if (res.length >= 1) {\r\n this.router.navigate(['/contract', res[0].Identity, {outlets: {left: ['list'], right: ['contract']}}]);\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { ContractWizardNavigationPaths } from '../contract-wizard-navigation-paths.enum';\r\nimport { ObjektBrief } from './../../../../core/odata/odata.coreapi';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { ContractWizardModel } from './../contract-wizard-model';\r\nimport { ContractWizardService } from './../contract-wizard.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-contract-wizard-general-data',\r\n templateUrl: './contract-wizard-general-data.component.html',\r\n styleUrls: ['./contract-wizard-general-data.component.scss']\r\n})\r\nexport class ContractWizardGeneralDataComponent implements OnInit, OnDestroy {\r\n model: ContractWizardModel;\r\n\r\n mcCancellationUnits: string[] = Object.keys(ObjektBrief.MaintenanceContractCancellationUnits).filter(x => x !== ObjektBrief.MaintenanceContractCancellationUnits.Undefined);\r\n mcCancellationPeriods: string[] = Object.keys(ObjektBrief.MaintenanceContractCancellationPeriods).filter(x => x !== ObjektBrief.MaintenanceContractCancellationPeriods.Undefined);\r\n mcCancellationCalendars: string[] = Object.keys(ObjektBrief.MaintenanceContractCancellationCalendars).filter(x => x !== ObjektBrief.MaintenanceContractCancellationCalendars.Undefined);\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: ContractWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentContract();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(validForm: boolean): void {\r\n const now = new Date();\r\n const fifteenYearsAgo = new Date(now.getFullYear()-15, now.getMonth(), now.getDate());\r\n\r\n if (!validForm) {\r\n if(this.model.contract.StartDate != null && fifteenYearsAgo.getTime() - this.model.contract.StartDate.getTime() > 0) {\r\n const modalRefUnvalidForm = this.modalService.open(ConfirmationModal);\r\n modalRefUnvalidForm.componentInstance.title = this.translateService.instant('ContractWizzard._modal_unvalidForm._title');\r\n modalRefUnvalidForm.componentInstance.message = this.translateService.instant('ContractWizzard._modal_unvalidForm._message');\r\n modalRefUnvalidForm.componentInstance.yesButton = this.translateService.instant('ContractWizzard._modal_unvalidForm._yes');\r\n modalRefUnvalidForm.componentInstance.hideCancelButton = true;\r\n \r\n modalRefUnvalidForm.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n modalRefUnvalidForm.close();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n }\r\n\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.NEXT);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ContractWizzard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ContractWizzard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ContractWizzard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ContractWizzard._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentContract();\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n compareId(val1: {Id: number}, val2: {Id: number}): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n getDateLimit(type = 'min') {\r\n const today = new Date();\r\n if (type === 'min') {\r\n return {year: today.getFullYear()-15, month: today.getMonth()+1, day: today.getDate()};\r\n } else {\r\n return {year: today.getFullYear(), month: today.getMonth()+1, day: today.getDate()};\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {ActivatedRoute} from '@angular/router';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, from} from 'rxjs';\r\n\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {ContractWizardNavigationPaths} from '../contract-wizard-navigation-paths.enum';\r\nimport {ACTION, ExtendedMaintenanceContractMapping} from '../../../../core/model/extendedMaintenanceContractMapping';\r\nimport {FilterByPipe} from './../../../../core/pipes/filter.pipe';\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {ContractWizardModel} from './../contract-wizard-model';\r\nimport {ContractWizardService} from './../contract-wizard.service';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-contract-wizard-install-equipments',\r\n templateUrl: './contract-wizard-install-equipments.component.html',\r\n styleUrls: ['./contract-wizard-install-equipments.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ContractWizardInstallEquipmentsComponent implements OnInit, OnDestroy {\r\n editMode: boolean;\r\n\r\n model: ContractWizardModel;\r\n\r\n equipmentFilter: string;\r\n costGroups: PropertyCore.CostGroup[];\r\n costGroupFilter: number;\r\n buildings: PropertyCore.Building[];\r\n buildingFilter: string;\r\n\r\n buildingInstallEquipments: any[]; // array with ContractInstallEquipment[] per building\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: ContractWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private filterByPipe: FilterByPipe,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.editMode = this.route.snapshot.data.editMode;\r\n\r\n this.model = this.service.getCurrentContract();\r\n\r\n this.subscriptions.add(from(this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n .subscribe(res => this.buildings = res));\r\n this.subscriptions.add(from(this.odataCoreService.CostGroup.Query()\r\n .OrderBy(\"No\")\r\n .Filter(x => x\r\n .NotEquals(\"Id\", 30))\r\n .Expand(x => {\r\n x.Expand(\"EquipmentTypes\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => (this.costGroups = res)));\r\n\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\", y => {\r\n y.Expand(\"CostGroup\")\r\n }),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return ExtendedMaintenanceContractMapping.createFromEquipment(i);\r\n })))\r\n .subscribe(res => {\r\n // preselect already selected items\r\n if (this.model.installEquipments) {\r\n this.model.installEquipments.forEach(mie => {\r\n const foundIe = res.filter(ie => ie.Equipment.Identity === mie.Equipment.Identity && mie.action !== ACTION.REMOVE);\r\n foundIe.forEach(x => {\r\n if (!x.selected) {\r\n // first item pre-selected, set action to model item action\r\n x.action = mie.action;\r\n x.selected = true;\r\n } else if (mie.action === ACTION.NONE) {\r\n x.action = mie.action;\r\n }\r\n });\r\n if (mie.action === ACTION.NONE) {\r\n foundIe.forEach(x => x.action = ACTION.NONE);\r\n }\r\n });\r\n }\r\n // group by building\r\n this.buildingInstallEquipments = res.reduce((prev, next) => {\r\n const b = prev.find(x => x.buildingUT === next.Equipment.Building.Identity);\r\n if (!b) {\r\n prev.push({\r\n buildingUT: next.Equipment.Building.Identity,\r\n buildingName: next.Equipment.Building.Name,\r\n dataList: [next]\r\n });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []).sort((b1, b2) => b1.buildingName.toLowerCase().localeCompare(b2.buildingName.toLowerCase()));\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(): void {\r\n this.saveToModel();\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.NEXT);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n selectAll(selectAll: boolean): void {\r\n let filtered = this.buildingInstallEquipments;\r\n if (this.buildingFilter) {\r\n filtered = this.filterByPipe.transform(filtered, this.buildingFilter, 'buildingUT');\r\n }\r\n filtered = filtered.reduce((a, b) => a.concat(b.dataList), []);\r\n if (this.equipmentFilter) {\r\n filtered = this.filterByPipe.transform(filtered, this.equipmentFilter, ['CustomId', 'Name', 'Room.Floor.Name', 'Room.Name']);\r\n }\r\n if (this.costGroupFilter) {\r\n filtered = this.filterByPipe.transform(filtered, this.costGroupFilter, 'costGroupId');\r\n }\r\n filtered.map(installEquipment => {\r\n if (selectAll || (!installEquipment.selected || installEquipment.action !== ACTION.NONE)) {\r\n installEquipment.selected = selectAll;\r\n }\r\n });\r\n\r\n this.saveToModel();\r\n }\r\n\r\n saveToModel(): void {\r\n const selectedIEs: ExtendedMaintenanceContractMapping[] = this.buildingInstallEquipments\r\n .reduce((a, b) => a.concat(b.dataList), [])\r\n .filter(installEquipment => installEquipment.selected);\r\n\r\n if (this.editMode) {\r\n // in editmode - mark unselected ones as removed\r\n this.model.installEquipments.forEach(cie => {\r\n if (!selectedIEs.some(sie => sie.Equipment.Identity === cie.Equipment.Identity)) {\r\n if (cie.action === ACTION.ADD) {\r\n this.model.installEquipments.splice(this.model.installEquipments.indexOf(cie), 1);\r\n } else {\r\n cie.action = ACTION.REMOVE;\r\n }\r\n }\r\n });\r\n } else {\r\n // in createmode - filter out unselected ones\r\n this.model.installEquipments = this.model.installEquipments.filter(cie => selectedIEs.some(sie => sie.Equipment.Identity === cie.Equipment.Identity));\r\n }\r\n\r\n // add new installequipments to model\r\n selectedIEs.forEach(sie => {\r\n if (!this.model.installEquipments.some(cie => cie.Equipment.Identity === sie.Equipment.Identity && cie.action !== ACTION.REMOVE)) {\r\n sie.action = ACTION.ADD;\r\n this.model.installEquipments.push(sie);\r\n }\r\n });\r\n }\r\n\r\n get selectedCount(): number {\r\n return new Set(this.model.installEquipments.filter(x => x.action === ACTION.NONE || x.action === ACTION.ADD).map(x => x.Equipment.Identity)).size;\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ContractWizzard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ContractWizzard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ContractWizzard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ContractWizzard._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentContract();\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { Common } from \"../../../../core/odata/odata.coreapi\";\r\nimport { ContractWizardNavigationPaths } from \"../contract-wizard-navigation-paths.enum\";\r\nimport {\r\n ACTION,\r\n ExtendedMaintenanceContractMapping,\r\n} from \"../../../../core/model/extendedMaintenanceContractMapping\";\r\nimport { PropertyCore } from \"../../../../core/odata/odata.coreapi\";\r\nimport { ConfirmationModal } from \"../../../../core/popup/confirmation.modal\";\r\nimport { ContractWizardModel } from \"../contract-wizard-model\";\r\nimport { ContractWizardService } from \"../contract-wizard.service\";\r\n\r\n@Component({\r\n selector: \"app-contract-wizard-maintenance-data\",\r\n templateUrl: \"./contract-wizard-maintenance-data.component.html\",\r\n styleUrls: [\"./contract-wizard-maintenance-data.component.scss\"],\r\n})\r\nexport class ContractWizardMaintenanceDataComponent\r\n implements OnInit, OnDestroy {\r\n editMode: boolean;\r\n\r\n model: ContractWizardModel;\r\n buildingInstallEquipments: any[]; // array with ContractInstallEquipment[] per building\r\n\r\n cycleUnits: string[] = Object.keys(Common.IntervalUnits).filter(\r\n (x) => x !== Common.IntervalUnits.Undefined\r\n );\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Output()\r\n saveContractRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: ContractWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.editMode = this.route.snapshot.data.editMode;\r\n\r\n this.model = this.service.getCurrentContract();\r\n // group by building\r\n this.buildingInstallEquipments = this.model.installEquipments.reduce(\r\n (prev, next) => {\r\n const b = prev.find(\r\n (x) => x.buildingUT === next.Equipment.Building.Identity\r\n );\r\n if (!b) {\r\n prev.push({\r\n buildingUT: next.Equipment.Building.Identity,\r\n buildingName: next.Equipment.Building.Name,\r\n dataList: [next],\r\n });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n },\r\n []\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.saveContractRequest.emit(this.model);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"ContractWizzard._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"ContractWizzard._modal_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"ContractWizzard._modal_yes\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"ContractWizzard._modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentContract();\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n addMaintenanceData(ieToAdd: ExtendedMaintenanceContractMapping): void {\r\n // copy data and reset input\r\n const newIe = Object.assign(\r\n new ExtendedMaintenanceContractMapping(),\r\n ieToAdd\r\n );\r\n newIe.action = ACTION.ADD;\r\n newIe.Schedule = {\r\n Cycle: null,\r\n CycleUnit: null,\r\n CycleStart: null,\r\n };\r\n // add to gui list\r\n const buildingInstallEquipments: ExtendedMaintenanceContractMapping[] = this.buildingInstallEquipments.find(\r\n (x) => x.buildingUT === ieToAdd.Equipment.Building.Identity\r\n ).dataList;\r\n buildingInstallEquipments.splice(\r\n buildingInstallEquipments.indexOf(ieToAdd) + 1,\r\n 0,\r\n newIe\r\n );\r\n // duplicate and replace main looped value so that gui is refreshed without problems\r\n this.buildingInstallEquipments = JSON.parse(\r\n JSON.stringify(this.buildingInstallEquipments)\r\n );\r\n\r\n // add to model\r\n this.model.installEquipments.push(newIe);\r\n\r\n this.editMode = this.route.snapshot.data.editMode;\r\n\r\n this.model = this.service.getCurrentContract();\r\n // group by building\r\n this.buildingInstallEquipments = this.model.installEquipments.reduce(\r\n (prev, next) => {\r\n const b = prev.find(\r\n (x) => x.buildingUT === next.Equipment.Building.Identity\r\n );\r\n if (!b) {\r\n prev.push({\r\n buildingUT: next.Equipment.Building.Identity,\r\n buildingName: next.Equipment.Building.Name,\r\n dataList: [next],\r\n });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n },\r\n []\r\n );\r\n }\r\n\r\n removeMaintenanceData(ieToRemove: ExtendedMaintenanceContractMapping): void {\r\n // remove from gui list\r\n const buildingInstallEquipments: ExtendedMaintenanceContractMapping[] = this.buildingInstallEquipments.find(\r\n (x) => x.buildingUT === ieToRemove.Equipment.Building.Identity\r\n ).dataList;\r\n buildingInstallEquipments.splice(\r\n buildingInstallEquipments.indexOf(ieToRemove),\r\n 1\r\n );\r\n if (!buildingInstallEquipments.length) {\r\n this.buildingInstallEquipments = this.buildingInstallEquipments.filter(\r\n (x) => x.buildingUT !== ieToRemove.Equipment.Building.Identity\r\n );\r\n }\r\n\r\n const removed = this.model.installEquipments.splice(\r\n this.model.installEquipments.indexOf(ieToRemove),\r\n 1\r\n );\r\n // add back to model if edit mode and when old action was not 'add'\r\n if (this.editMode && ieToRemove.action !== ACTION.ADD) {\r\n removed[0].action = ACTION.REMOVE;\r\n this.model.installEquipments.push(removed[0]);\r\n }\r\n }\r\n\r\n getDateLimit(type = \"min\") {\r\n const today = new Date();\r\n if (type === \"min\") {\r\n return {\r\n year: today.getFullYear() - 1,\r\n month: today.getMonth() + 1,\r\n day: today.getDate(),\r\n };\r\n } else {\r\n return {\r\n year: today.getFullYear() + 15,\r\n month: today.getMonth() + 1,\r\n day: today.getDate(),\r\n };\r\n }\r\n }\r\n}\r\n","import {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {\r\n ExtendedMaintenanceContractMapping\r\n} from '../../../core/model/extendedMaintenanceContractMapping';\r\n\r\n\r\nexport class ContractWizardModel {\r\n\r\n contract: PropertyCore.MaintenanceContract;\r\n installEquipments: ExtendedMaintenanceContractMapping[];\r\n\r\n reset(): void {\r\n this.contract = {};\r\n this.installEquipments = [];\r\n }\r\n}\r\n","export enum ContractWizardNavigationPaths {\r\n\r\n GENERAL_DATA = 'general-data',\r\n SERVICE_CONTACT = 'service-contact',\r\n ADD_SERVICE_CONTACT = 'add-service-contact',\r\n INSTALL_EQUIPMENTS = 'install-equipments',\r\n MAINTENANCE_DATA = 'maintenance-data',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit'\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { ObjektBrief } from '../../../../core/odata/odata.coreapi';\r\nimport { ACTION } from '../../../../core/model/extendedMaintenanceContractMapping';\r\nimport { ContractWizardModel } from './../contract-wizard-model';\r\nimport { ContractWizardNavigationPaths } from './../contract-wizard-navigation-paths.enum';\r\nimport { ContractWizardService } from './../contract-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-contract-wizard-progress',\r\n templateUrl: './contract-wizard-progress.component.html',\r\n styleUrls: ['./contract-wizard-progress.component.scss']\r\n})\r\nexport class ContractWizardProgressComponent implements OnInit {\r\n PAGE_GENERAL_DATA = ContractWizardNavigationPaths.GENERAL_DATA;\r\n PAGE_ADD_SERVICE_CONTACT = ContractWizardNavigationPaths.ADD_SERVICE_CONTACT;\r\n PAGE_SERVICE_CONTACT = ContractWizardNavigationPaths.SERVICE_CONTACT;\r\n PAGE_INSTALL_EQUIPMENTS = ContractWizardNavigationPaths.INSTALL_EQUIPMENTS;\r\n PAGE_MAINTENANCE_DATA = ContractWizardNavigationPaths.MAINTENANCE_DATA;\r\n\r\n model: ContractWizardModel;\r\n\r\n CancellationPeriod = ObjektBrief.MaintenanceContractCancellationPeriods;\r\n CancellationUnit = ObjektBrief.MaintenanceContractCancellationUnits;\r\n CancellationCalendar = ObjektBrief.MaintenanceContractCancellationCalendars;\r\n\r\n \r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input()\r\n editMode: boolean;\r\n\r\n @Input() currentPage: ContractWizardNavigationPaths;\r\n\r\n constructor(private service: ContractWizardService) {}\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentContract();\r\n }\r\n\r\n navigate(pageChangeEvent: ContractWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n get selectedIECount(): number {\r\n return new Set(this.model.installEquipments.filter(x => x.action === ACTION.NONE || x.action === ACTION.ADD).map(x => x.Equipment.Identity)).size;\r\n }\r\n get selectedIEDataCount(): number {\r\n return this.model.installEquipments.filter(x => x.action === ACTION.NONE || x.action === ACTION.ADD).length;\r\n }\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, Observable, from } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { ContractWizardNavigationPaths } from '../contract-wizard-navigation-paths.enum';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { ContractWizardModel } from './../contract-wizard-model';\r\nimport { ContractWizardService } from './../contract-wizard.service';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-contract-wizard-service-contact',\r\n templateUrl: './contract-wizard-service-contact.component.html',\r\n styleUrls: ['./contract-wizard-service-contact.component.scss']\r\n})\r\nexport class ContractWizardServiceContactComponent implements OnInit, OnDestroy {\r\n\r\n model: ContractWizardModel;\r\n\r\n serviceContacts: PropertyCore.ServiceProvider[];\r\n serviceContactFilter: string;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Output()\r\n saveContractRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: ContractWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentContract();\r\n this.subscriptions.add(\r\n from(this.odataCoreService.ServiceProvider.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Account\", \"Identity\"), Guid.parse(localStorage.getItem('mandator'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res => (this.serviceContacts = res)));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(serviceContact: PropertyCore.ServiceProvider): void {\r\n if (!serviceContact) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.NEXT);\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n selectServiceContact(serviceContact: PropertyCore.ServiceProvider): void {\r\n this.model.contract.ServiceProvider = serviceContact;\r\n }\r\n\r\n saveButtonDisabled(): boolean {\r\n return !(!this.model.installEquipments || !this.model.installEquipments.length || this.model.installEquipments.every(ie => !!ie.Schedule && !!ie.Schedule.Cycle && !!ie.Schedule.CycleUnit && !!ie.Schedule.CycleStart));\r\n }\r\n\r\n save(serviceContact: PropertyCore.ServiceProvider): void {\r\n if (!serviceContact) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.saveContractRequest.emit(this.model);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('ContractWizzard._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ContractWizzard._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ContractWizzard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ContractWizzard._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentContract();\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n serviceContactWizard(): void {\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.ADD_SERVICE_CONTACT);\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap, Router } from \"@angular/router\";\r\nimport { combineLatest, forkJoin, Subscription, from } from \"rxjs\";\r\nimport { filter, switchMap, map } from \"rxjs/operators\";\r\n\r\nimport { PropertyCore, Common } from \"../../../core/odata/odata.coreapi\";\r\nimport { ACTION, ExtendedMaintenanceContractMapping } from \"../../../core/model/extendedMaintenanceContractMapping\";\r\nimport { Utils } from \"../../../core/tools/utils\";\r\nimport { IntegrityBoxComponent } from \"../../../dashboard/dashboard-boxes/integrity-box/integrity-box.component\";\r\nimport { ContractWizardModel } from \"./contract-wizard-model\";\r\nimport { ContractWizardNavigationPaths } from \"./contract-wizard-navigation-paths.enum\";\r\nimport { ContractWizardService } from \"./contract-wizard.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"../../../core/odata/odataclient\";\r\n\r\n@Component({\r\n selector: \"app-contract-wizard\",\r\n templateUrl: \"./contract-wizard.component.html\",\r\n styleUrls: [\"./contract-wizard.component.scss\"],\r\n})\r\nexport class ContractWizardComponent implements OnInit, OnDestroy {\r\n navigateBack: string;\r\n\r\n currentPage: ContractWizardNavigationPaths;\r\n\r\n editMode: boolean = false;\r\n\r\n modelReady: boolean;\r\n\r\n w: number = 0;\r\n v: number = 0;\r\n t: number = 0;\r\n\r\n schedule_cycle: number[] = [];\r\n schedule_cycleunit: Common.IntervalUnits[] = [];\r\n schedule_cyclestart: Date[] = [];\r\n\r\n PAGE_GENERAL_DATA = ContractWizardNavigationPaths.GENERAL_DATA;\r\n PAGE_SERVICE_CONTACT = ContractWizardNavigationPaths.SERVICE_CONTACT;\r\n PAGE_ADD_SERVICE_CONTACT = ContractWizardNavigationPaths.ADD_SERVICE_CONTACT;\r\n PAGE_INSTALL_EQUIPMENTS = ContractWizardNavigationPaths.INSTALL_EQUIPMENTS;\r\n PAGE_MAINTENANCE_DATA = ContractWizardNavigationPaths.MAINTENANCE_DATA;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private service: ContractWizardService,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.modelReady = false;\r\n this.subscriptions.add(\r\n this.route.data.subscribe((data: { navigateBack: string }) => (this.navigateBack = data.navigateBack))\r\n );\r\n this.editMode = this.route.snapshot.data.editMode;\r\n this.currentPage = this.PAGE_GENERAL_DATA;\r\n\r\n // preload all contract data\r\n if (this.editMode) {\r\n const contract$ = this.route.paramMap.pipe(\r\n switchMap((params: ParamMap) => {\r\n return from(\r\n this.odataCoreService.MaintenanceContract.Query()\r\n .Expand((x) => {\r\n x.Expand(\"ServiceProvider\");\r\n })\r\n .Filter((xa) => xa.EqualsField(\"Identity\", Guid.parse(params.get(\"id\"))))\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])));\r\n })\r\n );\r\n\r\n const installedEquipment$ = this.route.paramMap.pipe(\r\n switchMap((params: ParamMap) => {\r\n return from(\r\n this.odataCoreService.MaintenanceJob.Query()\r\n .Filter((x) => x.Equals(ODataPath.For(\"Contract\", \"Identity\"), Guid.parse(params.get(\"id\"))))\r\n .Expand((x) => {\r\n x.Expand(\"Contract\"),\r\n x.Expand(\"Schedule\"),\r\n x.Expand(\"Equipment\", (y) => {\r\n y.Expand(\"EquipmentType\", (z) => {\r\n z.Expand(\"CostGroup\");\r\n });\r\n y.Expand(\"Room\", (z) => {\r\n z.Expand(\"Floor\");\r\n });\r\n y.Expand(\"Building\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new ExtendedMaintenanceContractMapping(), i);\r\n })\r\n )\r\n );\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n combineLatest(contract$, installedEquipment$).subscribe(([c, ie]) => {\r\n this.service.startWizard(c, ie);\r\n this.modelReady = true;\r\n })\r\n );\r\n } else {\r\n if (this.route.snapshot.paramMap.get(\"installEquipmentUT\")) {\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(\r\n filter((params) => params.get(\"installEquipmentUT\") !== null),\r\n switchMap((val) => {\r\n return from(\r\n this.odataCoreService.Equipment.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Building\"), x.Expand(\"EquipmentType\"), x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n })\r\n .Filter((xa) => xa.EqualsField(\"Identity\", Guid.parse(val.get(\"installEquipmentUT\"))))\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])));\r\n })\r\n )\r\n .subscribe((res) => {\r\n this.service.startWizard(null, [ExtendedMaintenanceContractMapping.createFromEquipment(res)]);\r\n this.modelReady = true;\r\n })\r\n );\r\n } else {\r\n this.service.startWizard();\r\n this.modelReady = true;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n async saveOrUpdate(model: ContractWizardModel) {\r\n if (this.editMode) {\r\n // filter out only filled ie when the user clicks save in step 2\r\n model.installEquipments = model.installEquipments.filter((ie) => ie.Schedule != null);\r\n\r\n const removedIEs = model.installEquipments.filter((x) => x.action === ACTION.REMOVE);\r\n const addedIEs = model.installEquipments.filter((x) => x.action === ACTION.ADD);\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.MaintenanceContract.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().MaintenanceContract())\r\n .Key(Guid.parse(model.contract.Identity))\r\n .ValueProperty(\"Title\", model.contract.Title)\r\n .ValueProperty(\"IsGeneralAgreement\", model.contract.IsGeneralAgreement)\r\n .ValueProperty(\"StartDate\", model.contract.StartDate)\r\n .ValueProperty(\"EndDate\", model.contract.EndDate)\r\n .ValueProperty(\"AmountNet\", model.contract.AmountNet || 0)\r\n .ValueProperty(\"CostServiceHourNetAmount\", model.contract.CostServiceHourNetAmount)\r\n .ValueProperty(\"CostApproachNetAmount\", model.contract.CostApproachNetAmount)\r\n .ValueProperty(\"CancellationDigit\", model.contract.CancellationDigit ? model.contract.CancellationDigit : 0)\r\n .ValueProperty(\"CancellationUnit\", model.contract.CancellationUnit)\r\n .ValueProperty(\"CancellationPeriod\", model.contract.CancellationPeriod)\r\n .ValueProperty(\"CancellationCalendar\", model.contract.CancellationCalendar)\r\n .ValuePropertyBinding(\r\n \"ServiceProvider\",\r\n this.odataCoreService.ServiceProvider.Get()\r\n .Key(Guid.parse(model.contract.ServiceProvider.Identity))\r\n .Bind()\r\n )\r\n .Exec()\r\n ).subscribe((res) => {\r\n if (!removedIEs.length && !addedIEs.length) {\r\n this.service.resetCurrentContract();\r\n this.processPageChangeRequest(ContractWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n );\r\n\r\n for (let x = 0; x < removedIEs.length; x++) {\r\n await this.odataCoreService.MaintenanceJob.Delete().Key(Guid.parse(removedIEs[x].Identity)).Exec();\r\n }\r\n\r\n if (addedIEs.length) {\r\n this.subscriptions.add(\r\n forkJoin(\r\n ...addedIEs.map((addeddIE) => {\r\n for (let u = 0; u < addedIEs.length; u++) {\r\n this.schedule_cycle[u] = addedIEs[u].Schedule.Cycle;\r\n this.schedule_cycleunit[u] = addedIEs[u].Schedule.CycleUnit;\r\n this.schedule_cyclestart[u] = addedIEs[u].Schedule.CycleStart;\r\n }\r\n\r\n return from(\r\n this.odataCoreService.MaintenanceJob.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().MaintenanceJob())\r\n .ValueProperty(\"Identity\", Utils.guid())\r\n .ValuePropertyBinding(\r\n \"Equipment\",\r\n this.odataCoreService.Equipment.Get().Key(Guid.parse(addeddIE.Equipment.Identity)).Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Contract\",\r\n this.odataCoreService.MaintenanceContract.Get().Key(Guid.parse(model.contract.Identity)).Bind()\r\n )\r\n .Exec()\r\n .then((x) => {\r\n from(\r\n this.odataCoreService.MaintenanceJob.Query()\r\n .Filter((xb) =>\r\n xb.Equals(ODataPath.For(\"Contract\", \"Identity\"), Guid.parse(model.contract.Identity))\r\n )\r\n .Expand((xb) => {\r\n xb.Expand(\"Schedule\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new ExtendedMaintenanceContractMapping(), i);\r\n })\r\n )\r\n )\r\n .subscribe((i) => {\r\n let i_filtered = i.filter((x) => x.Schedule.CycleStart == null);\r\n let z = 0;\r\n let u = 0;\r\n if (this.v == 0) {\r\n while (z < i_filtered.length) {\r\n from(\r\n this.odataCoreService.Schedule.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Schedule())\r\n .Key(Guid.parse(i_filtered[z].Schedule.Identity))\r\n .ValueProperty(\"Cycle\", this.schedule_cycle[u])\r\n .ValueProperty(\"CycleUnit\", this.schedule_cycleunit[u])\r\n .ValueProperty(\"CycleStart\", this.schedule_cyclestart[u])\r\n .Exec()\r\n );\r\n z++;\r\n u++;\r\n }\r\n this.v++;\r\n }\r\n });\r\n })\r\n );\r\n })\r\n ).subscribe((res) => {\r\n this.service.resetCurrentContract();\r\n this.processPageChangeRequest(ContractWizardNavigationPaths.EXIT);\r\n })\r\n );\r\n } else {\r\n this.service.resetCurrentContract();\r\n this.processPageChangeRequest(ContractWizardNavigationPaths.EXIT);\r\n }\r\n } else {\r\n // create mode\r\n model.contract.Identity = Utils.guid();\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.MaintenanceContract.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().MaintenanceContract())\r\n .ValueProperty(\"Identity\", model.contract.Identity)\r\n .ValueProperty(\"Title\", model.contract.Title)\r\n .ValueProperty(\"IsGeneralAgreement\", model.contract.IsGeneralAgreement)\r\n .ValueProperty(\"StartDate\", model.contract.StartDate)\r\n .ValueProperty(\"EndDate\", model.contract.EndDate)\r\n .ValueProperty(\"AmountNet\", model.contract.AmountNet || 0)\r\n .ValueProperty(\"CostServiceHourNetAmount\", model.contract.CostServiceHourNetAmount)\r\n .ValueProperty(\"CostApproachNetAmount\", model.contract.CostApproachNetAmount)\r\n .ValueProperty(\"CancellationDigit\", model.contract.CancellationDigit ? model.contract.CancellationDigit : 0)\r\n .ValueProperty(\"CancellationUnit\", model.contract.CancellationUnit)\r\n .ValueProperty(\"CancellationPeriod\", model.contract.CancellationPeriod)\r\n .ValueProperty(\"CancellationCalendar\", model.contract.CancellationCalendar)\r\n .ValuePropertyBinding(\r\n \"ServiceProvider\",\r\n this.odataCoreService.ServiceProvider.Get()\r\n .Key(Guid.parse(model.contract.ServiceProvider.Identity))\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Account\",\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(localStorage.getItem(\"mandator\")))\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"User\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(localStorage.getItem(\"infoUserIdentity\")))\r\n .Bind()\r\n )\r\n .Exec()\r\n ).subscribe((res) => {\r\n // filter out only filled ie when the user clicks save in step 2\r\n model.installEquipments = model.installEquipments.filter(\r\n (ie) => ie.Schedule.Cycle && ie.Schedule.CycleUnit && ie.Schedule.CycleStart\r\n );\r\n\r\n const allCount = model.installEquipments ? model.installEquipments.length : 0;\r\n // if any install equipments assigned\r\n if (allCount) {\r\n this.subscriptions.add(\r\n forkJoin(\r\n ...model.installEquipments.map((installEquipment) => {\r\n for (let u = 0; u < model.installEquipments.length; u++) {\r\n this.schedule_cycle[u] = model.installEquipments[u].Schedule.Cycle;\r\n this.schedule_cycleunit[u] = model.installEquipments[u].Schedule.CycleUnit;\r\n this.schedule_cyclestart[u] = model.installEquipments[u].Schedule.CycleStart;\r\n }\r\n\r\n return from(\r\n this.odataCoreService.MaintenanceJob.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().MaintenanceJob())\r\n .ValueProperty(\"Identity\", Utils.guid())\r\n .ValuePropertyBinding(\r\n \"Equipment\",\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(installEquipment.Equipment.Identity))\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Contract\",\r\n this.odataCoreService.MaintenanceContract.Get().Key(Guid.parse(model.contract.Identity)).Bind()\r\n )\r\n .Exec()\r\n .then((x) => {\r\n from(\r\n this.odataCoreService.MaintenanceJob.Query()\r\n .Filter((xb) =>\r\n xb.Equals(ODataPath.For(\"Contract\", \"Identity\"), Guid.parse(model.contract.Identity))\r\n )\r\n .Expand((xb) => {\r\n xb.Expand(\"Schedule\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new ExtendedMaintenanceContractMapping(), i);\r\n })\r\n )\r\n )\r\n .subscribe((i) => {\r\n let z = 0;\r\n if (this.w == 0) {\r\n while (z < i.length) {\r\n from(\r\n this.odataCoreService.Schedule.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Schedule())\r\n .Key(Guid.parse(i[z].Schedule.Identity))\r\n .ValueProperty(\"Cycle\", this.schedule_cycle[z])\r\n .ValueProperty(\"CycleUnit\", this.schedule_cycleunit[z])\r\n .ValueProperty(\"CycleStart\", this.schedule_cyclestart[z])\r\n .Exec()\r\n );\r\n z++;\r\n }\r\n this.w++;\r\n }\r\n });\r\n })\r\n );\r\n })\r\n ).subscribe((res2) => {\r\n this.service.resetCurrentContract();\r\n this.processPageChangeRequest(ContractWizardNavigationPaths.EXIT);\r\n })\r\n );\r\n } else {\r\n this.service.resetCurrentContract();\r\n this.processPageChangeRequest(ContractWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: ContractWizardNavigationPaths): void {\r\n switch (pageChangeEvent) {\r\n case ContractWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_GENERAL_DATA;\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.EXIT: {\r\n if (this.navigateBack && this.navigateBack === \"contract\") {\r\n const contractUT: string = this.route.snapshot.paramMap.get(\"id\");\r\n if (contractUT) {\r\n this.router.navigate([\"/contract\", contractUT, { outlets: { left: [\"list\"], right: [\"contract\"] } }]);\r\n } else {\r\n this.router.navigate([\"/contract\"]);\r\n }\r\n } else if (this.navigateBack && this.navigateBack === \"dashboard-integrity-equipment-no-contract\") {\r\n const installEquipmentUT: string = this.route.snapshot.paramMap.get(\"installEquipmentUT\");\r\n this.router.navigate([\r\n \"/dashboard\",\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NO_CONTRACT],\r\n right: [\"equipment\", installEquipmentUT, \"contract\", \"choose\"],\r\n },\r\n },\r\n ]);\r\n } else {\r\n console.error(\"Could not find a navigation route for contract wizard!\");\r\n }\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_GENERAL_DATA) {\r\n this.currentPage = this.PAGE_SERVICE_CONTACT;\r\n } else if (this.currentPage === this.PAGE_SERVICE_CONTACT) {\r\n this.currentPage = this.PAGE_INSTALL_EQUIPMENTS;\r\n } else if (this.currentPage === this.PAGE_INSTALL_EQUIPMENTS) {\r\n this.currentPage = this.PAGE_MAINTENANCE_DATA;\r\n }\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_SERVICE_CONTACT) {\r\n this.currentPage = this.PAGE_GENERAL_DATA;\r\n } else if (this.currentPage === this.PAGE_INSTALL_EQUIPMENTS) {\r\n this.currentPage = this.PAGE_SERVICE_CONTACT;\r\n } else if (this.currentPage === this.PAGE_MAINTENANCE_DATA) {\r\n this.currentPage = this.PAGE_INSTALL_EQUIPMENTS;\r\n }\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.GENERAL_DATA: {\r\n if (\r\n this.currentPage === this.PAGE_GENERAL_DATA ||\r\n this.currentPage === this.PAGE_SERVICE_CONTACT ||\r\n this.currentPage === this.PAGE_ADD_SERVICE_CONTACT ||\r\n this.currentPage === this.PAGE_INSTALL_EQUIPMENTS ||\r\n this.currentPage === this.PAGE_MAINTENANCE_DATA\r\n ) {\r\n this.currentPage = this.PAGE_GENERAL_DATA;\r\n }\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.SERVICE_CONTACT: {\r\n if (\r\n this.currentPage === this.PAGE_SERVICE_CONTACT ||\r\n this.currentPage === this.PAGE_ADD_SERVICE_CONTACT ||\r\n this.currentPage === this.PAGE_INSTALL_EQUIPMENTS ||\r\n this.currentPage === this.PAGE_MAINTENANCE_DATA\r\n ) {\r\n this.currentPage = this.PAGE_SERVICE_CONTACT;\r\n }\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.ADD_SERVICE_CONTACT: {\r\n if (\r\n this.currentPage === this.PAGE_SERVICE_CONTACT ||\r\n this.currentPage === this.PAGE_ADD_SERVICE_CONTACT ||\r\n this.currentPage === this.PAGE_INSTALL_EQUIPMENTS ||\r\n this.currentPage === this.PAGE_MAINTENANCE_DATA\r\n ) {\r\n this.currentPage = this.PAGE_ADD_SERVICE_CONTACT;\r\n }\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.INSTALL_EQUIPMENTS: {\r\n if (this.currentPage === this.PAGE_INSTALL_EQUIPMENTS || this.currentPage === this.PAGE_MAINTENANCE_DATA) {\r\n this.currentPage = this.PAGE_INSTALL_EQUIPMENTS;\r\n }\r\n break;\r\n }\r\n case ContractWizardNavigationPaths.MAINTENANCE_DATA: {\r\n if (this.currentPage === this.PAGE_MAINTENANCE_DATA) {\r\n this.currentPage = this.PAGE_MAINTENANCE_DATA;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveNewServiceContact(serviceContact: PropertyCore.ServiceProvider) {\r\n this.service.getCurrentContract().contract.ServiceProvider = serviceContact;\r\n this.processPageChangeRequest(ContractWizardNavigationPaths.SERVICE_CONTACT);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {PropertyCore} from '../../../core/odata/odata.coreapi';\r\nimport {ExtendedMaintenanceContractMapping} from '../../../core/model/extendedMaintenanceContractMapping';\r\nimport {ContractWizardModel} from './contract-wizard-model';\r\n\r\n@Injectable()\r\nexport class ContractWizardService {\r\n private model: ContractWizardModel = new ContractWizardModel;\r\n\r\n constructor() {\r\n }\r\n\r\n getCurrentContract(): ContractWizardModel {\r\n return this.model;\r\n }\r\n\r\n startWizard(contract: PropertyCore.MaintenanceContract = null, installEquipments: ExtendedMaintenanceContractMapping[] = null): void {\r\n this.model.reset();\r\n\r\n if (contract) {\r\n this.model.contract = contract;\r\n }\r\n\r\n if (installEquipments) {\r\n this.model.installEquipments = installEquipments;\r\n }\r\n }\r\n\r\n resetCurrentContract(): void {\r\n this.model.reset();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { AppConfig } from './../bootstrap/app.config';\r\nimport { AuthService } from './auth.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild {\r\n\r\n constructor(private authService: AuthService, private conf: AppConfig, private router: Router) {\r\n console.log('C:AuthGuard: AuthService, Router');\r\n }\r\n\r\n canActivate(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.authService.isLoggedIn()\r\n .pipe(tap(isIn => {\r\n if (!isIn) {\r\n const url = this.conf.getLogoutUrl();\r\n if (!url) {\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n } else {\r\n sessionStorage.returnUrl = state.url;\r\n window.location.replace(url);\r\n }\r\n }\r\n }));\r\n }\r\n\r\n canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.canActivate(childRoute, state);\r\n }\r\n}\r\n","import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport * as $ from 'jquery';\r\nimport { Observable, throwError as observableThrowError } from 'rxjs';\r\nimport { catchError, finalize} from 'rxjs/operators';\r\n\r\n\r\n// The InfoInterceptor handles the 2 info items (number errors, number active requests) needed for unittests\r\n// and the loading overlay if a call is in progress\r\n@Injectable()\r\nexport class InfoInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n ) {\r\n console.log('C:InfoInterceptor');\r\n\r\n (window).ajaxInProgessCount = 0;\r\n (window).ajaxErrorCount = 0;\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable {\r\n\r\n (window).ajaxInProgessCount++;\r\n\r\n // if loading overlay is hidden, show after 50 ms (short requests don't show loader)\r\n if ((window).ajaxInProgessCount === 1) {\r\n (window).lastTimeoutId = setTimeout(function () { $('#loadingoverlay').show(); }, 50);\r\n }\r\n\r\n let preHandleAutoRefresh: Observable = next.handle(req);\r\n\r\n return preHandleAutoRefresh\r\n .pipe(catchError(error => {\r\n (window).ajaxErrorCount++;\r\n return observableThrowError(error);\r\n }))\r\n .pipe(finalize(() => {\r\n (window).ajaxInProgessCount--;\r\n\r\n // if last ajax call, hide loading overlay\r\n if (!(window).ajaxInProgessCount) {\r\n // get last timeout id\r\n if ((window).lastTimeoutId) {\r\n clearTimeout((window).lastTimeoutId);\r\n }\r\n // hide overlay\r\n $('#loadingoverlay').hide();\r\n }\r\n }));\r\n }\r\n\r\n}\r\n","import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport * as $ from 'jquery';\r\nimport { from, Observable, of, Subject, throwError as observableThrowError } from 'rxjs';\r\nimport { catchError, flatMap, map } from 'rxjs/operators';\r\n\r\nimport { AppConfig } from './../bootstrap/app.config';\r\nimport { AuthService } from './auth.service';\r\n\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n\r\n ongoingRefreshToken = false;\r\n\r\n tokenRefreshedSource = new Subject();\r\n tokenRefreshed$ = this.tokenRefreshedSource.asObservable();\r\n\r\n constructor(\r\n private authService: AuthService, private router: Router\r\n ) {\r\n console.log('C:AuthInterceptor: AuthService, Router');\r\n }\r\n\r\n refreshToken(req: HttpRequest): Observable {\r\n if (this.ongoingRefreshToken) {\r\n return new Observable(observer => {\r\n this.tokenRefreshed$.subscribe(() => {\r\n observer.next();\r\n return observer.complete();\r\n });\r\n });\r\n } else {\r\n this.ongoingRefreshToken = true;\r\n\r\n return from(this.authService.refreshAccessToken()).pipe(map((obj) => {\r\n this.ongoingRefreshToken = false;\r\n this.tokenRefreshedSource.next(obj);\r\n }));\r\n }\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable {\r\n // If application configuration has not been loaded yet, we just process the request.\r\n // Among other things that actually happens with the request that is - loading the settings.\r\n if (!AppConfig.settings) {\r\n return next.handle(req);\r\n }\r\n\r\n // If the user is not logged in, there is nothing to add. As such, we just do nothing.\r\n // Primitive workaround. We directly access this because authService.isLoggedIn() is an observable.\r\n let loggedin = localStorage.getItem(\"refresh_token\");\r\n if (!loggedin) {\r\n return next.handle(req);\r\n }\r\n\r\n // Ignore .json access files. Only 2 types of them around: Environment and translation files.\r\n if (req.url.endsWith(\".json\")) {\r\n return next.handle(req);\r\n }\r\n\r\n const now = new Date();\r\n const exp = new Date(this.authService.getAccessTokenExpiration());\r\n\r\n req = this.setAuthorizationHeader(req);\r\n\r\n let preHandleAutoRefresh: Observable = next.handle(req);\r\n\r\n // ignore token refresh calls\r\n if (!req.url.endsWith(AppConfig.TOKEN_POSTFIX)) {\r\n\r\n // only if it's a API call with 'expired' date\r\n\r\n // TODO: find a more secure solution to properly address the API base url.\r\n // we can't directly access the AppConfig, as it gets loaded itself by this interceptor...\r\n if (req.url.startsWith('http://') && (exp.getTime() <= now.getTime() + 120000)) {\r\n // For now we do not handle .json files at all. Those never are part of our api.\r\n preHandleAutoRefresh = this.refreshToken(req).pipe(flatMap(() => {\r\n req = this.setAuthorizationHeader(req)\r\n return next.handle(req);\r\n }));\r\n }\r\n }\r\n return preHandleAutoRefresh\r\n .pipe(catchError(error => {\r\n if (error.status === 401) {\r\n console.log('caught httpError : ', error);\r\n return this.refreshToken(req)\r\n .pipe(flatMap(() => {\r\n req = this.setAuthorizationHeader(req);\r\n return next.handle(req);\r\n }))\r\n .pipe(catchError(() => {\r\n console.log('Unexpected error occured at refreshing token');\r\n this.authService.logout();\r\n return of();\r\n }));\r\n }\r\n return observableThrowError(error);\r\n }));\r\n }\r\n\r\n private setAuthorizationHeader(req: HttpRequest): HttpRequest {\r\n if (!req.url.endsWith(AppConfig.TOKEN_POSTFIX)) {\r\n return req.clone({\r\n setHeaders: {\r\n Pragma: 'no-cache',\r\n 'Cache-Control': 'no-cache, no-store, must-revalidate',\r\n Authorization: this.authService.getAuthorizationHeader(),\r\n 'Account': this.authService.getMandator()\r\n // We also handle old style Mandator here.\r\n || '', 'MandatorIdentity': this.authService.getMandator() || ''\r\n }\r\n });\r\n }\r\n return req;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ErrorHandler, NgModule } from '@angular/core';\r\nimport { OAuthModule } from 'angular-oauth2-oidc';\r\n\r\nimport { AuthGuard } from './auth-guard.service';\r\nimport { AuthInterceptor } from './auth.interceptor';\r\nimport { InfoInterceptor } from './auth.infointerceptor';\r\nimport { AuthService } from './auth.service';\r\nimport { GlobalErrorHandler } from './global-error.handler';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OAuthModule.forRoot(\r\n {\r\n resourceServer: {\r\n //allowedUrls: [\r\n // //''\r\n //],\r\n sendAccessToken: false\r\n }\r\n }\r\n ),\r\n ],\r\n declarations: [\r\n ],\r\n exports: [\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: InfoInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n AuthService,\r\n AuthGuard,\r\n {\r\n provide: ErrorHandler,\r\n useClass: GlobalErrorHandler\r\n }\r\n ]\r\n})\r\nexport class AuthModule {}\r\n","import { Injectable, Injector } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { BehaviorSubject, combineLatest, from, Observable, of, Subject } from \"rxjs\";\r\nimport { catchError, tap, map } from \"rxjs/operators\";\r\nimport { Mandator } from \"../model/mandator\";\r\nimport { Utils } from \"../tools/utils\";\r\nimport { ODataCoreService } from \"../odata-services/odata.coreapi.service\";\r\nimport { LoginService } from \"../shared/login.service\";\r\nimport { GlobalService } from \"../shared/global.service\";\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n public static readonly USER_MANDATOR_CONFIG = \"OB3_Mandator\";\r\n\r\n private oAuthService: OAuthService;\r\n private loginService: LoginService;\r\n\r\n private loginState: BehaviorSubject;\r\n public loginStateInfo: Observable;\r\n private mandatorState: BehaviorSubject;\r\n public mandatorStateInfo: Observable;\r\n private mandatorLoadState: Subject;\r\n public mandatorLoadStateInfo: Observable;\r\n private odataCoreService: ODataCoreService;\r\n private globalService: GlobalService;\r\n\r\n OAUTH_TOKEN_PREFIX = \"Bearer \";\r\n\r\n constructor(private injector: Injector, private router: Router) {\r\n console.log(\"C:AuthService\");\r\n this.loginState = new BehaviorSubject(this.hasToken());\r\n this.loginStateInfo = this.loginState.asObservable();\r\n this.mandatorState = new BehaviorSubject(null);\r\n this.mandatorStateInfo = this.mandatorState.asObservable();\r\n this.mandatorLoadState = new Subject();\r\n this.mandatorLoadStateInfo = this.mandatorLoadState.asObservable();\r\n }\r\n\r\n getOAuthService(): OAuthService {\r\n if (!this.oAuthService) {\r\n this.oAuthService = this.injector.get(OAuthService);\r\n }\r\n return this.oAuthService;\r\n }\r\n\r\n getAuthorizationHeader(): string {\r\n return this.OAUTH_TOKEN_PREFIX + this.getOAuthService().getAccessToken();\r\n }\r\n\r\n private hasToken(): boolean {\r\n return !!localStorage.getItem(\"token\");\r\n }\r\n\r\n login(username: string, password: string): Observable {\r\n var oauthService = this.getOAuthService();\r\n oauthService.customQueryParams = {\r\n application: \"OB3\",\r\n };\r\n const oAuthPromise: Promise = oauthService.fetchTokenUsingPasswordFlowAndLoadUserProfile(\r\n username,\r\n password\r\n );\r\n const authResult: Observable = from(oAuthPromise)\r\n .pipe(\r\n tap((resp: any) => {\r\n localStorage.setItem(\"infoUserEmail\", resp.info.info_user_email);\r\n localStorage.setItem(\"infoUserName\", resp.info.info_user_name);\r\n localStorage.setItem(\"infoUserSurname\", resp.info.info_user_surname);\r\n localStorage.setItem(\"infoUserUpn\", resp.info.info_user_upn);\r\n localStorage.setItem(\"infoUserDays\", resp.info.info_user_days);\r\n localStorage.setItem(\"infoUserIdentity\", resp.info.info_user_identity);\r\n localStorage.setItem(\"token\", \"oauth2\");\r\n localStorage.setItem(\"OB3_Info_shown\", \"false\");\r\n localStorage.setItem(\"data_processing_agreement\", \"false\");\r\n\r\n this.loadMandator();\r\n })\r\n )\r\n .pipe(\r\n catchError((err, caught) => {\r\n this.loginState.next(false);\r\n err.error = err.error ? err.error : { error_description: \"Unbekannter Fehler\" };\r\n console.log(\"login err.error.error\", err.error.error);\r\n console.log(\"login err.error.error_description\", err.error.error_description);\r\n this.mandatorLoadState.next(false); // we need the combined observable to be resolved on error too\r\n return of(err.error);\r\n })\r\n );\r\n\r\n return combineLatest(authResult, this.mandatorLoadStateInfo);\r\n }\r\n\r\n isLoggedIn(): Observable {\r\n return this.loginStateInfo;\r\n }\r\n\r\n mandatorChanged(): Observable {\r\n return this.mandatorStateInfo;\r\n }\r\n\r\n getAccessTokenExpiration(): number {\r\n return this.getOAuthService().getAccessTokenExpiration();\r\n }\r\n\r\n logout(): void {\r\n localStorage.removeItem(\"infoUserEmail\");\r\n localStorage.removeItem(\"infoUserName\");\r\n localStorage.removeItem(\"infoUserSurname\");\r\n localStorage.removeItem(\"infoUserUpn\");\r\n localStorage.removeItem(\"infoUserDays\");\r\n localStorage.removeItem(\"infoUserIdentity\");\r\n localStorage.removeItem(\"token\");\r\n // localStorage.removeItem('access_token');\r\n // localStorage.removeItem('access_token_stored_at');\r\n // localStorage.removeItem('expires_at');\r\n // localStorage.removeItem('refresh_token');\r\n localStorage.removeItem(\"OB3_Info_shown\");\r\n localStorage.removeItem(\"data_processing_agreement\");\r\n this.loginState.next(false);\r\n\r\n this.getOAuthService().logOut();\r\n\r\n this.router.navigate([\"logout\"]);\r\n }\r\n\r\n refreshAccessToken(): Promise {\r\n return this.getOAuthService()\r\n .refreshToken()\r\n .catch(() => {\r\n this.logout();\r\n return Promise.reject(\"refresh token catch reject\");\r\n });\r\n }\r\n\r\n getUserEmail(): string {\r\n return localStorage.getItem(\"infoUserEmail\");\r\n }\r\n\r\n getUserIdentity(): string {\r\n return localStorage.getItem(\"infoUserIdentity\");\r\n }\r\n\r\n get advancedMode(): boolean {\r\n return localStorage.getItem(\"infoUserEmail\") === localStorage.getItem(\"advanced_mode\");\r\n }\r\n set advancedMode(value: boolean) {\r\n if (value) {\r\n localStorage.setItem(\"advanced_mode\", localStorage.getItem(\"infoUserEmail\"));\r\n } else {\r\n localStorage.removeItem(\"advanced_mode\");\r\n }\r\n }\r\n\r\n get serviceContactMandator(): boolean {\r\n return localStorage.getItem(\"serviceContactMandator\") === \"true\";\r\n }\r\n set serviceContactMandator(value: boolean) {\r\n localStorage.setItem(\"serviceContactMandator\", String(value));\r\n }\r\n get userReadOnly(): boolean {\r\n return localStorage.getItem(\"subUser\") === \"true\";\r\n }\r\n set userReadOnly(value: boolean) {\r\n localStorage.setItem(\"subUser\", String(value));\r\n }\r\n getMandator(): string {\r\n return localStorage.getItem(\"mandator\");\r\n }\r\n setMandator(mandatorIdentity: string, propagateChange: boolean = false): void {\r\n localStorage.setItem(\"mandator\", mandatorIdentity);\r\n if (propagateChange) {\r\n this.mandatorState.next(mandatorIdentity);\r\n }\r\n }\r\n\r\n private loadMandator() {\r\n if (!this.globalService) {\r\n this.globalService = this.injector.get(GlobalService);\r\n }\r\n\r\n if (!this.odataCoreService) {\r\n this.odataCoreService = this.injector.get(ODataCoreService);\r\n }\r\n\r\n if (!this.loginService) {\r\n this.loginService = this.injector.get(LoginService);\r\n }\r\n\r\n this.odataCoreService.Account.Query()\r\n .OrderBy(\"Name\")\r\n .Exec()\r\n .then((x) => {\r\n let mandators = x.value;\r\n\r\n if (mandators && mandators.length) {\r\n // read mandator from local storage if available\r\n const mandatorId = this.getMandator();\r\n if (mandatorId) {\r\n const findMandator = mandators.filter((m) => m.Identity === mandatorId);\r\n if (findMandator && findMandator.length > 0) {\r\n this.loginState.next(true);\r\n this.mandatorLoadState.next(true);\r\n return;\r\n }\r\n }\r\n\r\n // preselect mandator from user config\r\n this.loginService.readSettings(AuthService.USER_MANDATOR_CONFIG).subscribe((res) => {\r\n if (res) {\r\n const findMandator = mandators.filter((m) => m.Identity === res[\"value\"]);\r\n if (findMandator && findMandator.length > 0) {\r\n this.setMandator(res[\"value\"], true);\r\n this.loginState.next(true);\r\n this.mandatorLoadState.next(true);\r\n return;\r\n }\r\n }\r\n\r\n // preselect first mandator\r\n this.loginService.saveSettings(AuthService.USER_MANDATOR_CONFIG, mandators[0].Identity).subscribe((res) => {\r\n this.setMandator(mandators[0].Identity, true);\r\n this.loginState.next(true);\r\n this.mandatorLoadState.next(true);\r\n return;\r\n });\r\n });\r\n }\r\n this.loginState.next(true);\r\n this.mandatorLoadState.next(false);\r\n });\r\n }\r\n}\r\n","import { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { GlobalService } from '../shared/global.service';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler extends ErrorHandler {\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n handleError(error) {\r\n const toasterService = this.injector.get(ToasterService);\r\n const message = error.error ? (error.error.Message ? error.error.Message : (error.message ? error.message : error.error.toString())) : (error.message ? error.message : error.toString());\r\n\r\n const translateService = this.injector.get(TranslateService);\r\n toasterService.pop('error', 'Fehler', translateService.instant('Common._error_occured') + ': ' + message);\r\n\r\n const globalService = this.injector.get(GlobalService);\r\n globalService.logException(message);\r\n\r\n super.handleError(error);\r\n }\r\n\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { OAuthService } from \"angular-oauth2-oidc\";\r\nimport { IEnvironmentConfig } from \"./app.environmentconfig.ts\";\r\n\r\nimport { tap } from \"rxjs/operators\";\r\n\r\nimport { ODataCoreService } from \"../odata-services/odata.coreapi.service\";\r\n\r\n@Injectable()\r\nexport class AppConfig {\r\n public static readonly TOKEN_POSTFIX: string = \"token\";\r\n\r\n public static readonly USERINFO_POSTFIX: string = \"userinfo\";\r\n\r\n static settings: IEnvironmentConfig = null;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authservice: OAuthService,\r\n private odataCoreApi: ODataCoreService\r\n ) {\r\n console.log(\"C:AppConfig, Injector(HttpClient)\");\r\n }\r\n\r\n public getBaseUrl() {\r\n return AppConfig.settings.apiHost + \"REST-OBB/\";\r\n }\r\n\r\n public getLoginHostURL() {\r\n return AppConfig.settings.loginHost;\r\n }\r\n\r\n public getODataBaseUrl() {\r\n return AppConfig.settings.apiHost + \"odata/\";\r\n }\r\n\r\n public getLogoutUrl() {\r\n return AppConfig.settings.logoutRedirectUrl;\r\n }\r\n\r\n public getappInsightsKey() {\r\n return AppConfig.settings.appInsightsKey;\r\n }\r\n\r\n public getGoogleApiKey() {\r\n return AppConfig.settings.googleApiKey;\r\n }\r\n\r\n public getGaEnvName() {\r\n return AppConfig.settings.gaEnvName;\r\n }\r\n\r\n public getGaId() {\r\n return AppConfig.settings.gaId;\r\n }\r\n\r\n public getGaSection() {\r\n return AppConfig.settings.gaSection;\r\n }\r\n\r\n public load() {\r\n const environemtnFile = \"/environment.json\";\r\n\r\n var promise = this.http\r\n .get(environemtnFile)\r\n .pipe(\r\n tap((response) => {\r\n AppConfig.settings = response;\r\n const settings = AppConfig.settings;\r\n const oauthService = this.authservice;\r\n oauthService.oidc = false;\r\n oauthService.requireHttps = false;\r\n oauthService.tokenEndpoint =\r\n settings.loginHost + AppConfig.TOKEN_POSTFIX;\r\n oauthService.clientId = \"\";\r\n oauthService.scope = \"\";\r\n oauthService.userinfoEndpoint =\r\n settings.loginHost + AppConfig.USERINFO_POSTFIX;\r\n oauthService.setStorage(localStorage);\r\n // We need some reserve for token forwarding in the backend\r\n oauthService.timeoutFactor = 0.5;\r\n const odataCoreApi = this.odataCoreApi;\r\n odataCoreApi.ODataSettings.Url = this.getODataBaseUrl();\r\n odataCoreApi.ODataSettings.http = this.http;\r\n return response;\r\n }),\r\n tap((config) => {\r\n console.log(\"environment.json is loaded\");\r\n })\r\n )\r\n .toPromise();\r\n\r\n return promise;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { Subscription, from } from \"rxjs\";\r\nimport { Common, Library } from \"../../odata/odata.coreapi\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { Utils } from \"../../tools/utils\";\r\nimport { ODataCoreService } from \"../../odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"../../odata/odataclient\";\r\n\r\n@Component({\r\n selector: \"app-address\",\r\n templateUrl: \"./address.component.html\",\r\n styleUrls: [\"./address.component.scss\"],\r\n})\r\nexport class AddressComponent implements OnInit, OnDestroy {\r\n @Input()\r\n model: Common.Address;\r\n @Input()\r\n model2: Common.Location;\r\n @Input()\r\n model3: Common.AddressGeoCoded = {};\r\n\r\n @Input()\r\n required: {\r\n street: boolean;\r\n number: boolean;\r\n zip: boolean;\r\n country: boolean;\r\n city: boolean;\r\n region: boolean;\r\n };\r\n\r\n @Input()\r\n hidden: {\r\n street: boolean;\r\n number: boolean;\r\n zip: boolean;\r\n country: boolean;\r\n city: boolean;\r\n region: boolean;\r\n };\r\n\r\n @Output()\r\n addressChangeRequest = new EventEmitter();\r\n\r\n countries: Library.CountryInfo[];\r\n regions: Library.RegionInfo[];\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(private odataCoreService: ODataCoreService) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Country.Query()\r\n .OrderBy(\"Id\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe((res) => (this.countries = res))\r\n );\r\n if (this.model.CountryInfo) {\r\n this.onCountryChange(\r\n this.model.CountryInfo,\r\n this.model.RegionInfo ? this.model.RegionInfo.Name : null\r\n );\r\n }\r\n }\r\n\r\n onChange(\r\n changedStreet: boolean = false,\r\n changedNumber: boolean = false,\r\n changedZip: boolean = false,\r\n changedCity: boolean = false,\r\n changedRegion: boolean = false\r\n ) {\r\n this.model3.Street = this.model.Street;\r\n this.model3.No = this.model.No;\r\n this.model3.PostCode = this.model.PostCode;\r\n this.model3.City = this.model.City;\r\n const currCountryFullData = this.countries.filter(\r\n (c) => c.Name == this.model.CountryInfo.Name\r\n )[0];\r\n this.model3.Country = currCountryFullData[\"Code\"];\r\n this.model3.Region = this.model.Region;\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService\r\n .Actions()\r\n .GeoCodeInTools()\r\n .Parameters(this.model3)\r\n .Execute()\r\n ).subscribe(\r\n (result) => {\r\n if (result) {\r\n if (!this.model.Street && result[\"street\"]) {\r\n this.model.Street = result[\"street\"];\r\n }\r\n if (!this.model.No && result[\"no\"]) {\r\n this.model.No = result[\"no\"];\r\n }\r\n if ((!this.model.PostCode || changedCity) && result[\"postCode\"]) {\r\n this.model.PostCode = result[\"postCode\"];\r\n }\r\n if ((!this.model.City || changedZip) && result[\"city\"]) {\r\n this.model.City = result[\"city\"];\r\n }\r\n if (\r\n (!this.model.RegionInfo || changedZip || changedCity) &&\r\n result[\"region\"] &&\r\n this.regions\r\n ) {\r\n const regionId = this.regions.find(\r\n (r) => r[\"Code\"] === result[\"region\"]\r\n );\r\n if (regionId) {\r\n this.model.RegionInfo = regionId;\r\n }\r\n }\r\n if (\r\n (!this.model.CountryInfo || !this.model.CountryInfo.Id) &&\r\n result[\"country\"]\r\n ) {\r\n const countryId = this.countries.find(\r\n (c) => c[\"Code\"] === result[\"country\"]\r\n );\r\n if (countryId) {\r\n this.model.CountryInfo = countryId;\r\n this.onCountryChange(countryId, result[\"region\"]);\r\n }\r\n }\r\n if (\r\n this.model2 != undefined &&\r\n result[\"location\"] &&\r\n result[\"location\"][\"latitude\"] &&\r\n result[\"location\"][\"longitude\"]\r\n ) {\r\n this.model2.Latitude = result[\"location\"][\"latitude\"];\r\n this.model2.Longitude = result[\"location\"][\"longitude\"];\r\n }\r\n\r\n this.addressChangeRequest.emit();\r\n }\r\n },\r\n (err) => {\r\n this.addressChangeRequest.emit();\r\n }\r\n )\r\n );\r\n }\r\n onStreetChange() {\r\n this.onChange(true);\r\n }\r\n onNumberChange() {\r\n this.onChange(false, true);\r\n }\r\n onZipChange() {\r\n this.onChange(false, false, true);\r\n }\r\n onCityChange() {\r\n this.onChange(false, false, false, true);\r\n }\r\n onRegionChange() {\r\n this.onChange(false, false, false, false, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onCountryChange(\r\n selectedCountry: Library.CountryInfo,\r\n regionName?: string\r\n ): void {\r\n this.model.CountryInfo = selectedCountry;\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Region.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"Country\", \"Id\"), selectedCountry.Id)\r\n .Or.EqualsField(\"Id\", 0)\r\n )\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe((res) => {\r\n this.regions = res;\r\n\r\n // pre-select region\r\n if (regionName) {\r\n const regionId = this.regions.find((r) => r[\"Code\"] === regionName);\r\n if (regionId) {\r\n this.model.RegionInfo = regionId;\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nimport { DocumentType } from './../../../building/wizard/document/document-wizard-model';\r\nimport { BuildingDocumentHierarchy } from './../../model/document';\r\nimport { PropertyCore } from '../../odata/odata.coreapi';\r\n\r\nexport class BuildingDocumentsInputData {\r\n buildingDocument$: Observable;\r\n searchFilter$: Observable;\r\n showBuildingData: boolean = false;\r\n currentBuildingUT$: Observable;\r\n currentDocumentTypeId$: Observable;\r\n lastIdx: number = -1;\r\n\r\n showsAsCallToAction: boolean = true;\r\n navigateToFirstListItem: boolean = false;\r\n}\r\n\r\nexport class BuildingDocumentWizardRequest {\r\n buildingUT: string;\r\n documentType: number;\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../odata/odata.coreapi';\r\n\r\nexport class BuildingEditUsagesInputData {\r\n\r\n buildingUsageTypes$: Observable;\r\n\r\n building$: Observable;\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../odata/odata.coreapi';\r\n\r\nexport class BuildingListInputData {\r\n\r\n searchFilter: string = '';\r\n onSearchFilterChange(newValue: string) {\r\n this.searchFilter = newValue;\r\n }\r\n\r\n buildings$: Observable;\r\n currentBuildingUT$: Observable;\r\n lastIdx: number = -1;\r\n showMap: boolean = true;\r\n showGroupingWizardRow: boolean = true;\r\n showItemLinkButton: boolean = false;\r\n navigateToFirstListItem: boolean = false;\r\n translatedListTitle: string;\r\n scrollStyle = { 'max-height': 'calc(100vh - 245px)' };\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { Document } from \"./../../../model/document\";\r\nimport { ConfirmationModal } from \"./../../../popup/confirmation.modal\";\r\nimport { PopupService } from \"./../../../popup/popup.service\";\r\nimport {\r\n BuildingDocumentsInputData,\r\n BuildingDocumentWizardRequest,\r\n} from \"./../building-documents-input-data\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ODataCoreService } from \"./../../../odata-services/odata.coreapi.service\";\r\nimport { PropertyCore } from \"../../../odata/odata.coreapi\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\n\r\n@Component({\r\n selector: \"app-core-building-documents-missing-only\",\r\n templateUrl: \"./core-building-documents-missing-only.component.html\",\r\n styleUrls: [\"./core-building-documents-missing-only.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CoreBuildingDocumentsOnlyComponent implements OnInit, OnDestroy {\r\n @Input() inputData: BuildingDocumentsInputData;\r\n\r\n @Output() documentWizardRequest =\r\n new EventEmitter();\r\n @Output() refreshRequest = new EventEmitter();\r\n\r\n buildingDocument: PropertyCore.Building[];\r\n searchFilter: string = \"\";\r\n currentBuildingUT: string;\r\n currentDocumentTypeId: number;\r\n\r\n editDocument: Document;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private popupService: PopupService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n combineLatest(\r\n this.inputData.buildingDocument$,\r\n this.inputData.searchFilter$,\r\n this.inputData.currentBuildingUT$,\r\n this.inputData.currentDocumentTypeId$\r\n ).subscribe(\r\n ([\r\n buildingDocument,\r\n searchFilter,\r\n currentBuildingUT,\r\n currentDocumentTypeId,\r\n ]) => {\r\n this.buildingDocument = buildingDocument;\r\n this.searchFilter = searchFilter;\r\n this.currentBuildingUT = currentBuildingUT;\r\n this.currentDocumentTypeId = currentDocumentTypeId;\r\n\r\n if (this.currentBuildingUT) {\r\n this.inputData.lastIdx = this.buildingDocument.findIndex(\r\n (b) => b.Identity === this.currentBuildingUT\r\n );\r\n }\r\n\r\n if (\r\n this.inputData.navigateToFirstListItem &&\r\n !this.currentBuildingUT &&\r\n !this.currentDocumentTypeId\r\n ) {\r\n const idx =\r\n this.inputData.lastIdx === -1\r\n ? 0\r\n : this.inputData.lastIdx >= this.buildingDocument.length\r\n ? this.buildingDocument.length - 1\r\n : this.inputData.lastIdx;\r\n const buildingDocument = this.buildingDocument[idx];\r\n if (buildingDocument) {\r\n const bDocument = buildingDocument.DocumentTypeMarkers[0];\r\n this.documentWizard(\r\n buildingDocument.Identity,\r\n bDocument.DocumentType.Id\r\n );\r\n }\r\n }\r\n }\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n showDocument(doc: Document) {\r\n if (!doc.IsVirtual) {\r\n if (doc.Name.endsWith(\".pdf\")) {\r\n this.popupService.openPdfModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false),\r\n doc.Name\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".jpg\") ||\r\n doc.Name.endsWith(\".jpeg\") ||\r\n doc.Name.endsWith(\".png\")\r\n ) {\r\n this.popupService.openImagePreviewModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false)\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".doc\") ||\r\n doc.Name.endsWith(\".docx\") ||\r\n doc.Name.endsWith(\".xls\") ||\r\n doc.Name.endsWith(\".xlsx\") ||\r\n doc.Name.endsWith(\".ppt\") ||\r\n doc.Name.endsWith(\".pptx\")\r\n ) {\r\n this.popupService.openOfficePreviewModal(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false),\r\n doc.Name\r\n );\r\n } else {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"DocumentList._preview_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"DocumentList._preview_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"DocumentList._preview_download\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"DocumentList._preview_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n this.globalService\r\n .downloadDocument(\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(doc.Identity))\r\n .Raw()\r\n .ToUrlString(false)\r\n )\r\n .subscribe((data) => {\r\n const blob = new Blob([data], {\r\n type: \"application/octet-stream\",\r\n });\r\n // if (navigator.msSaveBlob) {\r\n // // IE 10+\r\n // navigator.msSaveBlob(blob, doc.Name);\r\n // } else {\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = doc.Name;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //}\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n }\r\n }\r\n\r\n documentWizard(buildingUT: string, documentType: number) {\r\n this.currentBuildingUT = buildingUT;\r\n if (this.currentBuildingUT) {\r\n this.inputData.lastIdx = this.buildingDocument.findIndex(\r\n (b) => b.Identity === this.currentBuildingUT\r\n );\r\n }\r\n this.currentDocumentTypeId = documentType;\r\n this.documentWizardRequest.emit({\r\n buildingUT: buildingUT,\r\n documentType: documentType,\r\n });\r\n }\r\n\r\n edit(event: MouseEvent, document: Document, content: any) {\r\n event.stopPropagation();\r\n this.editDocument = Object.assign({}, document);\r\n this.modalService.open(content);\r\n }\r\n\r\n delete(closeModal: () => void) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"DocumentList._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"DocumentList._modal_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"DocumentList._modal_yes\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"DocumentList._modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Document.Delete()\r\n .Key(Guid.parse(this.editDocument.Identity))\r\n .Exec()\r\n ).subscribe((res) => {\r\n closeModal();\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"DocumentList._deleteDocument_success\"\r\n )\r\n );\r\n this.refreshRequest.emit();\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n save(closeModal: () => void) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Document.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .Key(Guid.parse(this.editDocument.Identity))\r\n .ValueProperty(\"Description\", this.editDocument.Description)\r\n .Exec()\r\n ).subscribe((res) => {\r\n closeModal();\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"DocumentList._saveDocument_success\")\r\n );\r\n this.refreshRequest.emit();\r\n })\r\n );\r\n }\r\n\r\n countExistingDocuments(documents: Document[]) {\r\n return documents.filter((d) => d.Id).length;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\n\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { Document } from \"./../../../model/document\";\r\nimport { ConfirmationModal } from \"./../../../popup/confirmation.modal\";\r\nimport { PopupService } from \"./../../../popup/popup.service\";\r\nimport { BuildingDocumentsInputData, BuildingDocumentWizardRequest } from \"./../building-documents-input-data\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ODataCoreService } from \"./../../../odata-services/odata.coreapi.service\";\r\nimport { PropertyCore } from \"../../../odata/odata.coreapi\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\nimport { FilterByPipe } from \"app/core/pipes/filter.pipe\";\r\n\r\n@Component({\r\n selector: \"app-core-building-documents\",\r\n templateUrl: \"./core-building-documents.component.html\",\r\n styleUrls: [\"./core-building-documents.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CoreBuildingDocumentsComponent implements OnInit, OnDestroy {\r\n @Input() inputData: BuildingDocumentsInputData;\r\n\r\n @Output() documentWizardRequest = new EventEmitter();\r\n @Output() refreshRequest = new EventEmitter();\r\n\r\n buildingDocument: PropertyCore.Building[];\r\n searchFilter: string = \"\";\r\n currentBuildingUT: string;\r\n currentDocumentTypeId: number;\r\n\r\n editDocument: Document;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private popupService: PopupService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService,\r\n private filterByPipe: FilterByPipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n combineLatest([\r\n this.inputData.buildingDocument$,\r\n this.inputData.searchFilter$,\r\n this.inputData.currentBuildingUT$,\r\n this.inputData.currentDocumentTypeId$,\r\n ]).subscribe(([buildingDocument, searchFilter, currentBuildingUT, currentDocumentTypeId]) => {\r\n this.buildingDocument = buildingDocument;\r\n this.searchFilter = searchFilter;\r\n this.currentBuildingUT = currentBuildingUT;\r\n this.currentDocumentTypeId = currentDocumentTypeId;\r\n\r\n if (this.currentBuildingUT) {\r\n this.inputData.lastIdx = this.buildingDocument.findIndex((b) => b.Identity === this.currentBuildingUT);\r\n }\r\n\r\n if (this.inputData.navigateToFirstListItem && !this.currentBuildingUT && !this.currentDocumentTypeId) {\r\n const idx =\r\n this.inputData.lastIdx === -1\r\n ? 0\r\n : this.inputData.lastIdx >= this.buildingDocument.length\r\n ? this.buildingDocument.length - 1\r\n : this.inputData.lastIdx;\r\n const buildingDocument = this.buildingDocument[idx];\r\n if (buildingDocument) {\r\n const bDocument = buildingDocument.DocumentTypeMarkers[0];\r\n this.documentWizard(buildingDocument.Identity, bDocument.DocumentType.Id);\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n showDocument(doc: Document) {\r\n if (!doc.IsVirtual) {\r\n if (doc.Name.endsWith(\".pdf\")) {\r\n this.popupService.openPdfModal(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false),\r\n doc.Name\r\n );\r\n } else if (doc.Name.endsWith(\".jpg\") || doc.Name.endsWith(\".jpeg\") || doc.Name.endsWith(\".png\")) {\r\n this.popupService.openImagePreviewModal(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false)\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".doc\") ||\r\n doc.Name.endsWith(\".docx\") ||\r\n doc.Name.endsWith(\".xls\") ||\r\n doc.Name.endsWith(\".xlsx\") ||\r\n doc.Name.endsWith(\".ppt\") ||\r\n doc.Name.endsWith(\".pptx\")\r\n ) {\r\n this.popupService.openOfficePreviewModal(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false),\r\n doc.Name\r\n );\r\n } else {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"DocumentList._preview_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"DocumentList._preview_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"DocumentList._preview_download\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"DocumentList._preview_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n this.globalService\r\n .downloadDocument(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false)\r\n )\r\n .subscribe((data) => {\r\n const blob = new Blob([data], {\r\n type: \"application/octet-stream\",\r\n });\r\n // if (navigator.msSaveBlob) {\r\n // // IE 10+\r\n // navigator.msSaveBlob(blob, doc.Name);\r\n // } else {\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = doc.Name;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //}\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n }\r\n }\r\n\r\n documentWizard(buildingUT: string, documentType: number) {\r\n this.currentBuildingUT = buildingUT;\r\n if (this.currentBuildingUT) {\r\n this.inputData.lastIdx = this.buildingDocument.findIndex((b) => b.Identity === this.currentBuildingUT);\r\n }\r\n this.currentDocumentTypeId = documentType;\r\n this.documentWizardRequest.emit({\r\n buildingUT: buildingUT,\r\n documentType: documentType,\r\n });\r\n }\r\n\r\n edit(event: MouseEvent, document: Document, content: any) {\r\n event.stopPropagation();\r\n this.editDocument = Object.assign({}, document);\r\n this.modalService.open(content);\r\n }\r\n\r\n delete(closeModal: () => void) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"DocumentList._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"DocumentList._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"DocumentList._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"DocumentList._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Document.Delete().Key(Guid.parse(this.editDocument.Identity)).Exec()).subscribe(\r\n (res) => {\r\n closeModal();\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"DocumentList._deleteDocument_success\")\r\n );\r\n this.refreshRequest.emit();\r\n }\r\n )\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n save(closeModal: () => void) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Document.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .Key(Guid.parse(this.editDocument.Identity))\r\n .ValueProperty(\"Description\", this.editDocument.Description)\r\n .Exec()\r\n ).subscribe((res) => {\r\n closeModal();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"DocumentList._saveDocument_success\"));\r\n this.refreshRequest.emit();\r\n })\r\n );\r\n }\r\n\r\n countExistingDocuments(documents: Document[]) {\r\n return documents.filter((d) => d.Id).length;\r\n }\r\n\r\n isBuildingHidden(building: PropertyCore.Building): boolean {\r\n if (!this.searchFilter) {\r\n return false;\r\n }\r\n const matchDocs = this.filterByPipe.transform(building.Documents, this.searchFilter, [\r\n \"Type\",\r\n \"Description\",\r\n \"Name\",\r\n \"Created\",\r\n \"incidentGuidelines\",\r\n \"incidentDueDate\",\r\n ]).length;\r\n return matchDocs === 0;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, Subscription, from } from 'rxjs';\r\nimport { PropertyCore, Operations } from '../../../odata/odata.coreapi';\r\nimport { AuthService } from './../../../auth/auth.service';\r\nimport { Selectable } from './../../../model/common';\r\nimport { ConfirmationModal } from './../../../popup/confirmation.modal';\r\nimport { GlobalService } from './../../../shared/global.service';\r\nimport { BuildingEditUsagesInputData } from './../building-edit-usages-input-data';\r\nimport { ODataCoreService } from '../../../odata-services/odata.coreapi.service';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../../tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n@Component({\r\n selector: 'app-core-building-edit-usages',\r\n templateUrl: './core-building-edit-usages.component.html',\r\n styleUrls: ['./core-building-edit-usages.component.scss']\r\n})\r\nexport class CoreBuildingEditUsagesComponent implements OnInit, OnDestroy {\r\n\r\n @Input() inputData: BuildingEditUsagesInputData;\r\n @Input() wizard = false;\r\n\r\n @Output() closeRequest: EventEmitter = new EventEmitter();\r\n\r\n @Output() saveRequest: EventEmitter = new EventEmitter();\r\n\r\n buildingUsageTypes: Selectable[];\r\n\r\n building: PropertyCore.Building;\r\n\r\n formSubmitted: boolean;\r\n\r\n @ViewChild('helpPopupContent', { static: true })\r\n helpPopupContent: any;\r\n buildings: Selectable[];\r\n formSubmitted2: boolean;\r\n invalid: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private globalService: GlobalService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n combineLatest(this.inputData.building$, this.inputData.buildingUsageTypes$).subscribe(([b, but]) => {\r\n this.building = b;\r\n this.buildingUsageTypes = but;\r\n this.buildingUsageTypes.forEach(utOfList =>\r\n b.UsageTypes.forEach(utOfBuilding => (utOfList.Id === utOfBuilding.Id ? (utOfList.selected = true) : null))\r\n );\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n this.closeRequest.emit(isDirty);\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n const btIds = this.buildingUsageTypes.filter(bt => bt.selected).map(bt => bt.Id);\r\n this.saveRequest.emit(btIds);\r\n }\r\n\r\n help2() {\r\n if (!this.buildings) {\r\n this.subscriptions.add(from(this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n .subscribe(res => this.buildings = res));\r\n } else {\r\n this.selectAll(false);\r\n }\r\n\r\n this.modalService.open(this.helpPopupContent, { windowClass: 'help-modal' }).result\r\n .then(val => {\r\n const buildingIds = this.buildings.filter(b => b.selected).map(b => b.Identity);\r\n this.odataCoreService.Account.Get().Key(Guid.parse(localStorage.getItem('mandator'))).Actions().SendServiceRequestInOperationsOnAccountInOperations().Parameters(Operations.ServiceRequestTypes.InspectionDutyAnalysis, buildingIds).Execute()\r\n .then(res => {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('RangeOfServices._modal2_title');\r\n modalRef.componentInstance.message = this.translateService.instant('RangeOfServices._modal2_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('RangeOfServices._modal2_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n });\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n selectAll(all: boolean): void {\r\n this.buildings.forEach(b => {\r\n b.selected = all;\r\n });\r\n }\r\n\r\n validate(closeModal: () => void): void {\r\n this.invalid = !this.buildings.filter(b => b.selected).length;\r\n if (this.invalid) {\r\n this.formSubmitted2 = true;\r\n return;\r\n }\r\n closeModal();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\nimport { PropertyCore } from \"../../../odata/odata.coreapi\";\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { FilterByPipe } from \"./../../../pipes/filter.pipe\";\r\nimport { BuildingListInputData } from \"./../building-list-input-data\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { Utils } from \"../../../tools/utils\";\r\nimport { Mandator } from \"../../../model/mandator\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { ODataCoreService } from \"../../../odata-services/odata.coreapi.service\";\r\nimport * as L from \"leaflet\";\r\n\r\n@Component({\r\n selector: \"app-core-building-list\",\r\n templateUrl: \"./core-building-list.component.html\",\r\n styleUrls: [\"./core-building-list.component.scss\"],\r\n})\r\nexport class CoreBuildingListComponent implements OnInit, OnDestroy {\r\n @Input() inputData: BuildingListInputData;\r\n\r\n @Output() detailPageRequest = new EventEmitter();\r\n @Output() buildingWizardRequest = new EventEmitter();\r\n @Output() mapMarkerRequest = new EventEmitter();\r\n @Output() detailPageButtonRequest = new EventEmitter();\r\n @Output() listEmptyRequest = new EventEmitter();\r\n\r\n buildings: PropertyCore.Building[];\r\n filteredBuildings: PropertyCore.Building[];\r\n testItems = [\"aaaaa\", \"bbbbbb\", \"cccccc\", \"dddddd\", \"eeeeee\"];\r\n currentBuildingUT: string;\r\n\r\n lat: number = 48.1357;\r\n lng: number = 11.53002;\r\n initialZoom = 8;\r\n selectedZoom = 12;\r\n\r\n leafletmap: L.Map;\r\n markerGroup: L.FeatureGroup;\r\n selectedMarkerGroup: L.FeatureGroup;\r\n mapSelectedIcon = L.icon({\r\n iconUrl: \"assets/marker_selected.png\",\r\n popupAnchor: [12, 0],\r\n });\r\n\r\n mapIcon = L.icon({\r\n iconUrl: \"assets/marker.png\",\r\n });\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private filterByPipe: FilterByPipe,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n private loadMap(): void {\r\n try {\r\n this.leafletmap = L.map(\"leafletmap\", { attributionControl: false }).setView([this.lat, this.lng], this.initialZoom);\r\n this.markerGroup = L.featureGroup();\r\n this.selectedMarkerGroup = L.featureGroup();\r\n\r\n L.tileLayer(\"https://tile.openstreetmap.org/{z}/{x}/{y}.png\", {\r\n maxZoom: 19,\r\n attribution: \"© OpenStreetMap\",\r\n }).addTo(this.leafletmap);\r\n } catch (e) {\r\n // ignore: leaflet element not visible\r\n }\r\n }\r\n\r\n private addMapMarker(buildings: PropertyCore.Building[]): void {\r\n if (!this.leafletmap || this.leafletmap.hasLayer(this.markerGroup)) {\r\n return;\r\n }\r\n\r\n buildings.forEach((building) => {\r\n const marker = L.marker([building.Location.Latitude, building.Location.Longitude], {\r\n icon: this.mapIcon,\r\n });\r\n\r\n marker.on(\"click\", () => {\r\n this.mapMarkerRequest.emit(building.Identity);\r\n });\r\n\r\n marker.addTo(this.markerGroup);\r\n });\r\n\r\n this.markerGroup.addTo(this.leafletmap);\r\n this.markerGroup.bringToBack();\r\n }\r\n\r\n private addSelectedMapMarker(building: PropertyCore.Building): void {\r\n if (!this.leafletmap) {\r\n return;\r\n }\r\n\r\n if (this.leafletmap.hasLayer(this.selectedMarkerGroup)) {\r\n this.selectedMarkerGroup.clearLayers();\r\n }\r\n\r\n const marker = L.marker([building.Location.Latitude, building.Location.Longitude], {\r\n icon: this.mapSelectedIcon,\r\n });\r\n\r\n marker.addTo(this.selectedMarkerGroup);\r\n\r\n this.leafletmap.flyTo([building.Location.Latitude, building.Location.Longitude], this.selectedZoom);\r\n\r\n this.selectedMarkerGroup.addTo(this.leafletmap);\r\n this.selectedMarkerGroup.bringToFront();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n combineLatest(this.inputData.buildings$, this.inputData.currentBuildingUT$).subscribe(([b, bUT]) => {\r\n this.buildings = b;\r\n this.filteredBuildings = this.buildings;\r\n this.currentBuildingUT = bUT;\r\n\r\n if (!this.leafletmap) {\r\n this.loadMap();\r\n }\r\n\r\n if (!this.buildings || this.buildings.length === 0) {\r\n this.listEmptyRequest.emit();\r\n return;\r\n }\r\n\r\n this.addMapMarker(this.buildings);\r\n\r\n if (this.currentBuildingUT) {\r\n this.inputData.lastIdx = this.filteredBuildings.findIndex((b) => b.Identity === this.currentBuildingUT);\r\n }\r\n\r\n if (this.inputData.navigateToFirstListItem && !this.currentBuildingUT) {\r\n const idx =\r\n this.inputData.lastIdx === -1\r\n ? 0\r\n : this.inputData.lastIdx >= this.filteredBuildings.length\r\n ? this.filteredBuildings.length - 1\r\n : this.inputData.lastIdx;\r\n this.onListItemClick(this.filteredBuildings[idx]);\r\n }\r\n\r\n const building = this.filteredBuildings.find((x) => x.Identity === this.currentBuildingUT);\r\n\r\n // selected building\r\n if (building) {\r\n this.filteredBuildings = this.filterByPipe.transform(this.buildings, this.inputData.searchFilter, [\r\n \"Name\",\r\n \"Address.Street\",\r\n \"Address.PostCode\",\r\n \"Address.City\",\r\n ]);\r\n\r\n if (this.inputData.showMap) {\r\n // center selected building\r\n if (this.leafletmap && building.Location.Latitude && building.Location.Longitude) {\r\n this.addSelectedMapMarker(building);\r\n }\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n // this.leafletmap.remove();\r\n }\r\n\r\n buildingWizard(): void {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Account.Query()\r\n .Expand((x) => {\r\n x.Expand(\"User\"), x.Expand(\"Statistics\"), x.Expand(\"Profile\");\r\n })\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(localStorage.getItem(\"mandator\"))))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Mandator(), res[0]);\r\n })\r\n )\r\n .subscribe((mandator) => {\r\n this.buildingWizardRequest.emit();\r\n })\r\n );\r\n }\r\n\r\n onListItemClick(building: PropertyCore.Building): void {\r\n this.currentBuildingUT = building.Identity;\r\n if (this.currentBuildingUT) {\r\n this.inputData.lastIdx = this.filteredBuildings.findIndex((b) => b.Identity === this.currentBuildingUT);\r\n }\r\n this.detailPageRequest.emit(building);\r\n }\r\n\r\n onListItemButtonClick(building: PropertyCore.Building): void {\r\n this.detailPageButtonRequest.emit(building);\r\n }\r\n\r\n onMarkerClick(building: PropertyCore.Building): void {\r\n this.mapMarkerRequest.emit(building.Identity);\r\n }\r\n\r\n isSelected(UT: string) {\r\n return this.currentBuildingUT === UT;\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../odata/odata.coreapi';\r\n\r\nexport class ContractListInputdata {\r\n\r\n contracts$: Observable;\r\n contractUT$: Observable;\r\n showSearch: boolean = true;\r\n showWizardButton: boolean = true;\r\n scrollStyle: {};\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { combineLatest, Subscription } from \"rxjs\";\r\n\r\nimport { PropertyCore } from \"../../../odata/odata.coreapi\";\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { ContractListInputdata } from \"./../contract-list-input-data\";\r\nimport { MandatorService } from \"app/core/shared/services/mandator.service\";\r\nimport { Mandator } from \"app/core/model/mandator\";\r\n\r\n@Component({\r\n selector: \"app-core-contract-list\",\r\n templateUrl: \"./core-contract-list.component.html\",\r\n styleUrls: [\"./core-contract-list.component.scss\"],\r\n})\r\nexport class CoreContractListComponent implements OnInit, OnDestroy {\r\n @Input() inputData: ContractListInputdata;\r\n\r\n @Output() detailPageRequest = new EventEmitter<\r\n PropertyCore.MaintenanceContract\r\n >();\r\n @Output() wizardRequest = new EventEmitter();\r\n\r\n contracts: PropertyCore.MaintenanceContract[];\r\n currentContractUT: string;\r\n public mandator: Mandator;\r\n\r\n searchFilter: string = \"\";\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private mandatorService: MandatorService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n combineLatest(\r\n this.inputData.contracts$,\r\n this.inputData.contractUT$,\r\n this.mandatorService.getCurrentMandatorWithRights$()\r\n ).subscribe(([c, cut, mandator]) => {\r\n this.contracts = c;\r\n this.currentContractUT = cut;\r\n this.mandator = mandator;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onListItemClick(contract: PropertyCore.MaintenanceContract) {\r\n this.currentContractUT = contract.Identity;\r\n this.detailPageRequest.emit(contract);\r\n }\r\n\r\n contractWizard(): void {\r\n this.wizardRequest.emit();\r\n }\r\n\r\n isSelected(UT: string) {\r\n return this.currentContractUT === UT;\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {Common} from '../../../odata/odata.coreapi';\r\nimport {ExtendedMaintenanceContractMapping} from '../../../model/extendedMaintenanceContractMapping';\r\n\r\n\r\n@Component({\r\n selector: 'app-core-contract-set-maintenance',\r\n templateUrl: './core-contract-set-maintenance.component.html',\r\n styleUrls: ['./core-contract-set-maintenance.component.scss']\r\n})\r\nexport class CoreContractSetMaintenanceComponent implements OnInit {\r\n\r\n cycleUnits: string[] = Object.keys(Common.IntervalUnits);\r\n\r\n formSubmitted: boolean;\r\n\r\n installEquipment: ExtendedMaintenanceContractMapping;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n /*\r\n this.saveContractRequest.emit(this.model);\r\n this.pageChangeRequest.emit(ContractWizardNavigationPaths.EXIT);\r\n */\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\n\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { Document } from \"./../../../model/document\";\r\nimport { ConfirmationModal } from \"./../../../popup/confirmation.modal\";\r\nimport { PopupService } from \"./../../../popup/popup.service\";\r\nimport { EquipmentDocumentsInputData, EquipmentDocumentWizardRequest } from \"./../equipment-documents-input-data\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ODataCoreService } from \"./../../../odata-services/odata.coreapi.service\";\r\nimport { PropertyCore } from \"../../../odata/odata.coreapi\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\nimport { FilterByPipe } from \"app/core/pipes/filter.pipe\";\r\n\r\n@Component({\r\n selector: \"app-core-equipment-documents\",\r\n templateUrl: \"./core-equipment-documents.component.html\",\r\n styleUrls: [\"./core-equipment-documents.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CoreEquipmentDocumentsComponent implements OnInit, OnDestroy {\r\n @Input() inputData: EquipmentDocumentsInputData;\r\n\r\n @Output() documentWizardRequest = new EventEmitter();\r\n @Output() refreshRequest = new EventEmitter();\r\n\r\n buildingEquipmentDocument: PropertyCore.Building[];\r\n searchFilter: string = \"\";\r\n currentEquipmentUT: string;\r\n currentDocumentTypeId: number;\r\n buildingSample: PropertyCore.Building[];\r\n\r\n editDocument: Document;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private popupService: PopupService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService,\r\n private filterByPipe: FilterByPipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n combineLatest([\r\n this.inputData.buildingEquipmentDocument$,\r\n this.inputData.searchFilter$,\r\n this.inputData.currentEquipmentUT$,\r\n this.inputData.currentDocumentTypeId$,\r\n ]).subscribe(([buildingEquipmentDocument, searchFilter, currentEquipmentUT, currentDocumentTypeId]) => {\r\n // Filter equipments with no actual required documents to be attached.\r\n buildingEquipmentDocument.forEach(\r\n (bDH) =>\r\n (bDH.Equipments = bDH.Equipments.filter(\r\n (ieDH) => !!ieDH?.Documents?.length || !!ieDH.DocumentTypeMarkers.length\r\n ))\r\n );\r\n\r\n this.buildingEquipmentDocument = buildingEquipmentDocument.filter((bDH) => bDH.Equipments);\r\n this.searchFilter = searchFilter;\r\n this.currentEquipmentUT = currentEquipmentUT;\r\n this.currentDocumentTypeId = currentDocumentTypeId;\r\n\r\n if (this.currentEquipmentUT) {\r\n this.inputData.lastBuildingIdx = this.buildingEquipmentDocument.findIndex(\r\n (b) => !!b.Equipments.find((ie) => ie.Identity === this.currentEquipmentUT)\r\n );\r\n this.inputData.lastEquipmentIdx = this.buildingEquipmentDocument[\r\n this.inputData.lastBuildingIdx\r\n ].Equipments.findIndex((ie) => ie.Identity === this.currentEquipmentUT);\r\n }\r\n\r\n if (this.inputData.navigateToFirstListItem && !this.currentEquipmentUT && !this.currentDocumentTypeId) {\r\n const buildingIdx =\r\n this.inputData.lastBuildingIdx === -1\r\n ? 0\r\n : this.inputData.lastBuildingIdx >= this.buildingEquipmentDocument.length\r\n ? this.buildingEquipmentDocument.length - 1\r\n : this.inputData.lastBuildingIdx;\r\n const equipmentIdx =\r\n this.inputData.lastEquipmentIdx === -1\r\n ? 0\r\n : this.inputData.lastEquipmentIdx >= this.buildingEquipmentDocument[buildingIdx].Equipments.length\r\n ? this.buildingEquipmentDocument[buildingIdx].Equipments.length - 1\r\n : this.inputData.lastEquipmentIdx;\r\n const buildingEquipmentDocument = this.buildingEquipmentDocument[buildingIdx];\r\n const ieDocumentHierarchy = buildingEquipmentDocument.Equipments[equipmentIdx];\r\n if (ieDocumentHierarchy) {\r\n const ieDocument = ieDocumentHierarchy.DocumentTypeMarkers[0];\r\n this.documentWizard(\r\n buildingEquipmentDocument.Identity,\r\n ieDocumentHierarchy.Identity,\r\n ieDocument.DocumentType.Id\r\n );\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n showDocument(doc: Document) {\r\n if (!doc.IsVirtual) {\r\n if (doc.Name.endsWith(\".pdf\")) {\r\n this.popupService.openPdfModal(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false),\r\n doc.Name\r\n );\r\n } else if (doc.Name.endsWith(\".jpg\") || doc.Name.endsWith(\".jpeg\") || doc.Name.endsWith(\".png\")) {\r\n this.popupService.openImagePreviewModal(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false)\r\n );\r\n } else if (\r\n doc.Name.endsWith(\".doc\") ||\r\n doc.Name.endsWith(\".docx\") ||\r\n doc.Name.endsWith(\".xls\") ||\r\n doc.Name.endsWith(\".xlsx\") ||\r\n doc.Name.endsWith(\".ppt\") ||\r\n doc.Name.endsWith(\".pptx\")\r\n ) {\r\n this.popupService.openOfficePreviewModal(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false),\r\n doc.Name\r\n );\r\n } else {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"DocumentList._preview_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"DocumentList._preview_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"DocumentList._preview_download\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"DocumentList._preview_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n this.globalService\r\n .downloadDocument(\r\n this.odataCoreService.Document.Get().Key(Guid.parse(doc.Identity)).Raw().ToUrlString(false)\r\n )\r\n .subscribe((data) => {\r\n const blob = new Blob([data], {\r\n type: \"application/octet-stream\",\r\n });\r\n // if (navigator.msSaveBlob) {\r\n // // IE 10+\r\n // navigator.msSaveBlob(blob, doc.Name);\r\n // } else {\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = doc.Name;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //}\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n }\r\n }\r\n\r\n documentWizard(buildingUT: string, ieUT: string, documentType: number) {\r\n this.currentEquipmentUT = ieUT;\r\n if (this.currentEquipmentUT) {\r\n this.inputData.lastBuildingIdx = this.buildingEquipmentDocument.findIndex((b) => b.Identity === buildingUT);\r\n this.inputData.lastEquipmentIdx = this.buildingEquipmentDocument[\r\n this.inputData.lastBuildingIdx\r\n ].Equipments.findIndex((ie) => ie.Identity === this.currentEquipmentUT);\r\n }\r\n this.currentDocumentTypeId = documentType;\r\n this.documentWizardRequest.emit({\r\n buildingUT: buildingUT,\r\n ieUT: ieUT,\r\n documentType: documentType,\r\n });\r\n }\r\n\r\n edit(event: any, document: Document, content: any) {\r\n event.stopPropagation();\r\n this.editDocument = Object.assign({}, document);\r\n this.modalService.open(content);\r\n }\r\n\r\n delete(closeModal: () => void) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"DocumentList._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"DocumentList._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"DocumentList._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"DocumentList._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Document.Delete().Key(Guid.parse(this.editDocument.Identity)).Exec()).subscribe(\r\n (res) => {\r\n closeModal();\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"DocumentList._deleteDocument_success\")\r\n );\r\n this.refreshRequest.emit();\r\n }\r\n )\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n save(closeModal: () => void) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Document.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .Key(Guid.parse(this.editDocument.Identity))\r\n .ValueProperty(\"Description\", this.editDocument.Description)\r\n .Exec()\r\n ).subscribe((res) => {\r\n closeModal();\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"DocumentList._saveDocument_success\"));\r\n this.refreshRequest.emit();\r\n })\r\n );\r\n }\r\n\r\n countExistingDocuments(documents: Document[]) {\r\n return documents.filter((d) => d.Id).length;\r\n }\r\n\r\n isEquipmentHidden(equipment: PropertyCore.Equipment): boolean {\r\n if (!this.searchFilter) {\r\n return false;\r\n }\r\n const matchDocs = this.filterByPipe.transform(equipment.Documents, this.searchFilter, [\r\n \"Type\",\r\n \"Description\",\r\n \"Name\",\r\n \"Created\",\r\n \"incidentGuidelines\",\r\n \"incidentDueDate\",\r\n ]).length;\r\n return matchDocs === 0;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { NgbModal, NgbPanelChangeEvent } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\n\r\nimport {\r\n Common,\r\n PropertyCore,\r\n Operations,\r\n ObjektBrief,\r\n} from \"../../../odata/odata.coreapi\";\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { ConfirmationModal } from \"./../../../popup/confirmation.modal\";\r\nimport { EquipmentEditInspectionDutiesInputData } from \"./../equipment-edit-inspection-duties-input-data\";\r\nimport { EquipmentEditInspectionDutiesSaveOutputData } from \"./../equipment-edit-inspection-duties-save-output-data\";\r\nimport { EditInspectionDutyGroup } from \"./editInspectionDutyGroup\";\r\nimport { ODataCoreService } from \"../../../odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { EditOperatorTask } from \"./editOperatorTask\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { Utils } from \"app/core/tools/utils\";\r\n\r\n@Component({\r\n selector: \"app-core-edit-inspection-duties\",\r\n templateUrl: \"./core-edit-inspection-duties.component.html\",\r\n styleUrls: [\"./core-edit-inspection-duties.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CoreEditInspectionDutiesComponent implements OnInit, OnDestroy {\r\n @Input() inputData: EquipmentEditInspectionDutiesInputData;\r\n\r\n @Output() closeRequest = new EventEmitter();\r\n\r\n @Output() saveRequest = new EventEmitter<\r\n EquipmentEditInspectionDutiesSaveOutputData\r\n >();\r\n\r\n equipment: PropertyCore.Equipment;\r\n hasInspectionDutiesActivatedChanged: boolean;\r\n\r\n showClose: boolean;\r\n showHeader: boolean;\r\n\r\n inspectionDutyGroups: EditInspectionDutyGroup[];\r\n equipmentOperatorTaskMarkers: EditOperatorTask[];\r\n\r\n cycleUnits: string[];\r\n CycleUnits = Common.IntervalUnits;\r\n\r\n comment: string;\r\n\r\n attributesCategories?: any[] = [];\r\n attributesCategoryNames?: any[] = [];\r\n categoryArray: any[] = [];\r\n\r\n isAttributePanelOpen: boolean;\r\n\r\n formSubmitted: boolean;\r\n originalIsDisabled: boolean;\r\n isChangedSeriesStart: boolean;\r\n isChangedActive: boolean;\r\n\r\n bulkInspectionDutyChange: PropertyCore.InspectionDutyChanges;\r\n storeInspectionDutyChange: any[] = [];\r\n equipmentPatchFlag = 0;\r\n\r\n attributeType: PropertyCore.AttributeType[];\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.equipmentPatchFlag = 0;\r\n this.cycleUnits = this.inputData.cycleUnits;\r\n\r\n this.subscriptions.add(\r\n combineLatest(\r\n this.inputData.equipmentOperatorTaskMarkers$,\r\n this.inputData.installEquipment$\r\n ).subscribe(([idg, ie]) => {\r\n this.equipmentOperatorTaskMarkers = idg;\r\n this.equipment = ie;\r\n\r\n // reset input data\r\n this.comment = null;\r\n this.formSubmitted = false;\r\n this.categoryArray.length = 0;\r\n this.attributesCategories.length = 0;\r\n this.attributesCategoryNames.length = 0;\r\n this.isAttributePanelOpen = false;\r\n\r\n // load ie attributes\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.equipment.Identity))\r\n .Select(\"Identity\", \"Name\", \"AttributeValues\")\r\n .Expand((x) => x.Expand(\"AttributeValues\"))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res[0]))\r\n .subscribe((res) => {\r\n this.odataCoreService.AttributeType.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Set\");\r\n x.Expand(\"MeasurementUnit\");\r\n })\r\n .OrderBy(\"Order\", \"asc\")\r\n .Exec()\r\n .then((res1) => {\r\n let result1 = res1.value;\r\n let a: number = 0;\r\n\r\n while (result1.length > a) {\r\n let attributeItem = res.AttributeValues.find(\r\n (x) => x.Id == result1[a].Id\r\n );\r\n if (attributeItem) {\r\n attributeItem[\"Description\"] = result1[a].Description;\r\n attributeItem[\"Name\"] = result1[a].Name;\r\n attributeItem[\"MeasurementUnit\"] =\r\n result1[a].MeasurementUnit;\r\n attributeItem[\"IsOptional\"] = result1[a].IsOptional;\r\n attributeItem[\"AttributeCategory\"] = result1[a].Set;\r\n attributeItem[\"ValueType\"] = result1[a].ValueType;\r\n\r\n this.attributesCategories.push(attributeItem);\r\n if (attributeItem.Value != null || \"\") {\r\n this.attributesCategoryNames.push(\r\n attributeItem[\"AttributeCategory\"].Name\r\n );\r\n }\r\n }\r\n a++;\r\n }\r\n\r\n this.categoryArray = this.attributesCategoryNames.filter(\r\n (element, index, input) => {\r\n if (input.indexOf(element) === index) {\r\n return element;\r\n }\r\n }\r\n );\r\n });\r\n })\r\n );\r\n })\r\n );\r\n this.showClose = this.inputData.showClose;\r\n this.showHeader = this.inputData.showHeader;\r\n console.log(this.attributesCategories);\r\n console.log(this.attributesCategoryNames);\r\n console.log(this.categoryArray);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(): void {\r\n this.closeRequest.emit();\r\n }\r\n\r\n changeInspectionDutyActive(\r\n equipmentOperatorTaskMarkers: EditOperatorTask\r\n ): void {\r\n equipmentOperatorTaskMarkers.originalIsDisabled =\r\n equipmentOperatorTaskMarkers.originalIsDisabled === undefined ||\r\n equipmentOperatorTaskMarkers.originalIsDisabled === null\r\n ? equipmentOperatorTaskMarkers.isMissing\r\n : equipmentOperatorTaskMarkers.originalIsDisabled;\r\n\r\n equipmentOperatorTaskMarkers.isMissing = !equipmentOperatorTaskMarkers.isMissing;\r\n\r\n equipmentOperatorTaskMarkers.isChangedActive =\r\n equipmentOperatorTaskMarkers.originalIsDisabled !==\r\n equipmentOperatorTaskMarkers.isMissing;\r\n }\r\n\r\n changeSeriesStart(equipmentOperatorTaskMarkers: EditOperatorTask): void {\r\n equipmentOperatorTaskMarkers.isChangedSeriesStart = true;\r\n }\r\n\r\n save(validForm: boolean): void {\r\n let validInspections = true;\r\n this.equipmentOperatorTaskMarkers.forEach((eot) => {\r\n if (eot.isChangedActive && !eot.isMissing) {\r\n //Changed and currently it is active\r\n\r\n if (eot.originalIsDisabled) {\r\n if (\r\n !eot.cycle ||\r\n !eot.cycleUnit ||\r\n eot.cycleUnit === this.CycleUnits.Undefined\r\n ) {\r\n validInspections = false;\r\n }\r\n } else {\r\n if (\r\n !eot.aCycle ||\r\n !eot.aCycleUnit ||\r\n eot.aCycleUnit === this.CycleUnits.Undefined\r\n ) {\r\n validInspections = false;\r\n }\r\n }\r\n }\r\n });\r\n if (!validForm || !validInspections) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n // check if checkbox is active, show popup\r\n if (this.equipment.HasInspectionDutiesActivated) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_title2\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_message2\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_yes2\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_cancel2\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.saveInstallEquipment();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.saveInstallEquipment();\r\n }\r\n }\r\n\r\n private saveInstallEquipment(): void {\r\n // update hasInspectionDutiesActivated flag\r\n if (this.hasInspectionDutiesActivatedChanged) {\r\n if (this.equipment.Room == null) {\r\n this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.equipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.equipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.equipment.Comment)\r\n .ValueProperty(\r\n \"IsRenterResponsibility\",\r\n this.equipment.IsRenterResponsibility\r\n )\r\n .ValueProperty(\r\n \"IsNoMaintenanceDesired\",\r\n this.equipment.IsNoMaintenanceDesired\r\n )\r\n .ValueProperty(\r\n \"HasInspectionDutiesActivated\",\r\n this.equipment.HasInspectionDutiesActivated\r\n )\r\n .ValueProperty(\"CustomId\", this.equipment.CustomId)\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get()\r\n .Key(this.equipment.EquipmentType.Code)\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.equipment.Building.Identity))\r\n .Bind()\r\n )\r\n .Exec()\r\n .then((res) => {\r\n this.equipmentPatchFlag = 1;\r\n this.saveInspectionDuties();\r\n });\r\n } else {\r\n this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.equipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.equipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.equipment.Comment)\r\n .ValueProperty(\r\n \"IsRenterResponsibility\",\r\n this.equipment.IsRenterResponsibility\r\n )\r\n .ValueProperty(\r\n \"IsNoMaintenanceDesired\",\r\n this.equipment.IsNoMaintenanceDesired\r\n )\r\n .ValueProperty(\r\n \"HasInspectionDutiesActivated\",\r\n this.equipment.HasInspectionDutiesActivated\r\n )\r\n .ValueProperty(\"CustomId\", this.equipment.CustomId)\r\n .ValuePropertyBinding(\r\n \"Room\",\r\n this.odataCoreService.Room.Get()\r\n .Key(Guid.parse(this.equipment.Room.Identity))\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"EquipmentType\",\r\n this.odataCoreService.EquipmentType.Get()\r\n .Key(this.equipment.EquipmentType.Code)\r\n .Bind()\r\n )\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.equipment.Building.Identity))\r\n .Bind()\r\n )\r\n .Exec()\r\n .then((res) => {\r\n this.equipmentPatchFlag = 1;\r\n this.saveInspectionDuties();\r\n });\r\n }\r\n } else {\r\n this.saveInspectionDuties();\r\n }\r\n }\r\n\r\n private saveInspectionDuties(): void {\r\n let inspectionDutyChangeFlag = 0;\r\n this.equipmentOperatorTaskMarkers.forEach((y) => {\r\n if (y.isChangedActive || y.cycleStart) {\r\n inspectionDutyChangeFlag++;\r\n }\r\n });\r\n\r\n this.equipmentOperatorTaskMarkers.forEach(async (x) => {\r\n if (x.isChangedActive || x.cycleStart) {\r\n // Operation: 0 - Undefined, 1 - Create, 2 - Update, 3 - Delete\r\n let operation;\r\n if (x.isChangedActive) {\r\n if (x.isMissing) {\r\n operation = Operations.Operations.Delete;\r\n } else {\r\n operation = Operations.Operations.Create; // activation and possible deadline change only here\r\n }\r\n } else if (x.isChangedSeriesStart) {\r\n operation = Operations.Operations.Update; // only when series start changed\r\n }\r\n\r\n let inspectionDutyChange: any;\r\n const guid = Utils.guid();\r\n switch (operation) {\r\n case Operations.Operations.Create:\r\n inspectionDutyChange = {\r\n Operation: operation,\r\n SeriesStart: x.cycleStart,\r\n Identity: guid,\r\n Interval: {\r\n Step: x.cycle,\r\n Size: this.mapCycleUnitToEnum(x.cycleUnit),\r\n },\r\n EquipmentRef: this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.equipment.Identity))\r\n .Bind()\r\n .toString(),\r\n OperatorTaskRef: this.odataCoreService.OperatorTask.Get()\r\n .Key(Guid.parse(x.operatortaskIdentity))\r\n .Bind()\r\n .toString(),\r\n };\r\n console.log(this.bulkInspectionDutyChange);\r\n break;\r\n\r\n case Operations.Operations.Delete:\r\n inspectionDutyChange = {\r\n Operation: operation,\r\n Identity: x.aInspectionDutyIdentity,\r\n EquipmentRef: this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(this.equipment.Identity))\r\n .Bind()\r\n .toString(),\r\n OperatorTaskRef: this.odataCoreService.OperatorTask.Get()\r\n .Key(Guid.parse(x.operatortaskIdentity))\r\n .Bind()\r\n .toString(),\r\n };\r\n break;\r\n\r\n case Operations.Operations.Update:\r\n inspectionDutyChange = {\r\n Identity: x.aInspectionDutyIdentity,\r\n Operation: operation,\r\n SeriesStart: x.cycleStart,\r\n Interval: {\r\n Step: x.aCycle,\r\n Size: this.mapCycleUnitToEnum(x.aCycleUnit),\r\n },\r\n };\r\n break;\r\n }\r\n\r\n this.storeInspectionDutyChange.push(inspectionDutyChange);\r\n\r\n if (\r\n this.storeInspectionDutyChange.length == inspectionDutyChangeFlag &&\r\n inspectionDutyChangeFlag != 1\r\n ) {\r\n this.bulkInspectionDutyChange = {\r\n Comment: this.comment,\r\n Changes: this.storeInspectionDutyChange,\r\n };\r\n\r\n await this.odataCoreService.InspectionDuty.Actions()\r\n .BulkChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet()\r\n .Parameters(this.bulkInspectionDutyChange)\r\n .Execute()\r\n .then((res) => {\r\n this.storeInspectionDutyChange = [];\r\n if (this.equipmentPatchFlag == 0) {\r\n this.saveRequest.emit();\r\n this.ngOnInit();\r\n }\r\n });\r\n } else if (inspectionDutyChangeFlag == 1) {\r\n await this.odataCoreService.InspectionDuty.Actions()\r\n .SingleChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet()\r\n .Parameters(this.comment, inspectionDutyChange)\r\n .Execute()\r\n .then((res) => {\r\n this.storeInspectionDutyChange = [];\r\n if (this.equipmentPatchFlag == 0) {\r\n this.saveRequest.emit();\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.equipmentPatchFlag == 1) {\r\n this.saveRequest.emit();\r\n }\r\n }\r\n\r\n openInfoDialog() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"EquipmentDetailEditInspection._modal_yes\"\r\n );\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n private mapCycleUnitToEnum(unit: string): Common.IntervalUnits {\r\n let cycleUnitEnum;\r\n switch (unit) {\r\n case Common.IntervalUnits.Undefined:\r\n cycleUnitEnum = Common.IntervalUnits.Undefined;\r\n break;\r\n case Common.IntervalUnits.Year:\r\n cycleUnitEnum = Common.IntervalUnits.Year;\r\n break;\r\n case Common.IntervalUnits.Month:\r\n cycleUnitEnum = Common.IntervalUnits.Month;\r\n break;\r\n case Common.IntervalUnits.Week:\r\n cycleUnitEnum = Common.IntervalUnits.Week;\r\n break;\r\n }\r\n return cycleUnitEnum;\r\n }\r\n\r\n hasInspectionDutiesActivatedChange() {\r\n this.hasInspectionDutiesActivatedChanged = true;\r\n }\r\n\r\n onPanelChange($event: NgbPanelChangeEvent) {\r\n this.isAttributePanelOpen = $event.nextState;\r\n }\r\n}\r\n","import { PropertyCore } from \"../../../odata/odata.coreapi\";\r\n\r\nexport class EditInspectionDutyGroup {\r\n imName: string;\r\n guideline: string;\r\n inspectionDuties: PropertyCore.InspectionDuty[] = [];\r\n}\r\n","import { PropertyCore, Common } from \"../../../odata/odata.coreapi\";\r\n\r\nexport class EditOperatorTask {\r\n identity: string;\r\n id: string;\r\n imName: string;\r\n guideline: string;\r\n deadline: string;\r\n subject: string;\r\n qualification: string;\r\n operatortaskId: number;\r\n operatortaskIdentity: string;\r\n cycle: number;\r\n cycleUnit: string;\r\n cycleStart: Date;\r\n isMissing: boolean;\r\n operatorTaskMarkers: PropertyCore.OperatorTaskMarker[] = [];\r\n\r\n //activated inspection duty\r\n aCycle: number;\r\n aCycleUnit: string;\r\n aCycleStart: Date;\r\n aCycleStartIsNotEmpty: boolean;\r\n aInspectionDutyIdentity: string;\r\n\r\n // additional properties for gui use\r\n originalIsDisabled: boolean;\r\n isChangedSeriesStart: boolean;\r\n isChangedActive: boolean;\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nimport { BuildingDocumentHierarchy } from './../../model/document';\r\nimport { PropertyCore } from '../../odata/odata.coreapi';\r\n\r\nexport class EquipmentDocumentsInputData {\r\n buildingEquipmentDocument$: Observable;\r\n searchFilter$: Observable;\r\n showBuildingData: boolean = false;\r\n showEquipmentData: boolean = false;\r\n currentEquipmentUT$: Observable;\r\n currentDocumentTypeId$: Observable;\r\n lastBuildingIdx: number = -1;\r\n lastEquipmentIdx: number = -1;\r\n\r\n showsAsCallToAction: boolean = true;\r\n navigateToFirstListItem: boolean = false;\r\n}\r\n\r\nexport class EquipmentDocumentWizardRequest {\r\n buildingUT: string;\r\n ieUT: string;\r\n documentType: number;\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Common, PropertyCore } from '../../odata/odata.coreapi';\r\nimport { EditInspectionDutyGroup } from './edit-inspection-duties/editInspectionDutyGroup';\r\nimport { EditOperatorTask } from './edit-inspection-duties/editOperatorTask';\r\n\r\n\r\nexport class EquipmentEditInspectionDutiesInputData {\r\n\r\n installEquipment$: Observable;\r\n equipmentOperatorTaskMarkers$: Observable;\r\n cycleUnits: string[] = Object.keys(Common.IntervalUnits);\r\n inspectionDutyGroups$: Observable;\r\n showClose: boolean = false;\r\n showHeader: boolean = true;\r\n\r\n}\r\n","import { Observable } from \"rxjs\";\r\nimport { PropertyCore } from \"../../odata/odata.coreapi\";\r\n\r\nexport class EquipmentListInputData {\r\n searchFilter: string = \"\";\r\n onSearchFilterChange(newValue: string) {\r\n this.searchFilter = newValue;\r\n }\r\n\r\n installEquipments$: Observable;\r\n equipments$: Observable;\r\n currentInstallEquipmentUT$: Observable;\r\n lastIdx: number = -1;\r\n showGroupingWizardRow: boolean = true;\r\n showBuilding: boolean = false;\r\n showEquipmentTypeData: boolean = false;\r\n scrollStyle = { height: \"calc(100vh - 383px)\" };\r\n presetFilter: number = null;\r\n navigateToFirstListItem: boolean = false;\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { CoreEquipmentListComponent } from '../list/core-equipment-list.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-core-equipment-list-accordion',\r\n templateUrl: './core-equipment-list-accordion.component.html',\r\n styleUrls: ['./core-equipment-list-accordion.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoreEquipmentListAccordionComponent extends CoreEquipmentListComponent {\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { combineLatest, Subscription } from \"rxjs\";\r\nimport { PropertyCore } from \"../../../odata/odata.coreapi\";\r\nimport { InstallEquipmentKpiFilter } from \"./../../../../building/kpiFilter.enum\";\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { EquipmentListInputData } from \"./../equipment-list-input-data\";\r\n\r\n@Component({\r\n selector: \"app-core-equipment-list\",\r\n templateUrl: \"./core-equipment-list.component.html\",\r\n styleUrls: [\"./core-equipment-list.component.scss\"],\r\n})\r\nexport class CoreEquipmentListComponent implements OnInit, OnDestroy {\r\n @Input() inputData: EquipmentListInputData;\r\n\r\n @Output() detailPageRequest = new EventEmitter();\r\n @Output() equipmentWizardRequest = new EventEmitter();\r\n @Output() kpiFilterChange = new EventEmitter();\r\n @Output() listEmptyRequest = new EventEmitter();\r\n\r\n installEquipments: PropertyCore.Equipment[];\r\n existIE: boolean;\r\n buildings: PropertyCore.Building[] = [];\r\n selectedInstallEquipmentUT: string;\r\n activeIds: string[] = [];\r\n equipments: PropertyCore.EquipmentType[];\r\n equipmentFilter: any = \"\";\r\n _kpiFilter: InstallEquipmentKpiFilter = InstallEquipmentKpiFilter.Undefined;\r\n\r\n INSTALL_EQUIPMENT_KPI_FILTER_UNDEFINED = InstallEquipmentKpiFilter.Undefined;\r\n INSTALL_EQUIPMENT_KPI_FILTER_NO_MAINTENANCE_CONTRACT = InstallEquipmentKpiFilter.NoMaintenanceContract;\r\n INSTALL_EQUIPMENT_KPI_FILTER_NO_INSPECTION_DUTY_SELECTED = InstallEquipmentKpiFilter.NoInspectionDutySelected;\r\n INSTALL_EQUIPMENT_KPI_FILTER_HAS_INSPECTION_DUTY_ACTIVE = InstallEquipmentKpiFilter.HasInspectionDutyActive;\r\n INSTALL_EQUIPMENT_KPI_FILTER_NO_INSPECTION_DUTY_TERMINATED = InstallEquipmentKpiFilter.NoInspectionDutyTerminated;\r\n INSTALL_EQUIPMENT_KPI_FILTER_HAS_MAINTENANCE_CONTRACT = InstallEquipmentKpiFilter.HasMaintenanceContract;\r\n INSTALL_EQUIPMENT_KPI_FILTER_NO_MAINTENANCE_DESIRED = InstallEquipmentKpiFilter.NoMaintenanceDesired;\r\n INSTALL_EQUIPMENT_KPI_FILTER_RENTER_RESPONSIBILITY = InstallEquipmentKpiFilter.RenterResponsibility;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(protected authService: AuthService) {}\r\n\r\n ngOnInit() {\r\n this._kpiFilter = this.inputData.presetFilter;\r\n let buildingsDict: { [name: string]: PropertyCore.Building } = {};\r\n\r\n this.subscriptions.add(\r\n combineLatest(\r\n this.inputData.installEquipments$,\r\n this.inputData.equipments$,\r\n this.inputData.currentInstallEquipmentUT$\r\n ).subscribe(([ie, e, sie]) => {\r\n this.installEquipments = ie;\r\n this.installEquipments.forEach((y) => {\r\n if (!buildingsDict[y.Building.Name]) {\r\n buildingsDict[y.Building.Name] = y.Building;\r\n }\r\n });\r\n\r\n this.buildings = Object.values(buildingsDict);\r\n this.activeIds = this.buildings.map((b) => b.Name);\r\n\r\n console.log(this.installEquipments);\r\n // only equipment types from existing install equipments\r\n this.equipments = e.filter((x) => ie.find((y) => y.EquipmentType.Id === x.Id));\r\n this.selectedInstallEquipmentUT = sie;\r\n\r\n this.existIE = !!(this.installEquipments.length || this.inputData.presetFilter);\r\n\r\n if (!this.installEquipments || this.installEquipments.length === 0) {\r\n this.listEmptyRequest.emit();\r\n return;\r\n }\r\n\r\n if (this.selectedInstallEquipmentUT) {\r\n this.inputData.lastIdx = this.installEquipments.findIndex(\r\n (ie) => ie.Identity === this.selectedInstallEquipmentUT\r\n );\r\n }\r\n\r\n if (this.inputData.navigateToFirstListItem && !this.selectedInstallEquipmentUT) {\r\n const idx =\r\n this.inputData.lastIdx === -1\r\n ? 0\r\n : this.inputData.lastIdx >= this.installEquipments.length\r\n ? this.installEquipments.length - 1\r\n : this.inputData.lastIdx;\r\n this.onListItemClick(this.installEquipments[idx]);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n installEquipmentWizard(): void {\r\n this.equipmentWizardRequest.emit();\r\n }\r\n\r\n onListItemClick(installEquipment: PropertyCore.Equipment) {\r\n this.selectedInstallEquipmentUT = installEquipment.Identity;\r\n if (this.selectedInstallEquipmentUT) {\r\n this.inputData.lastIdx = this.installEquipments.findIndex(\r\n (ie) => ie.Identity === this.selectedInstallEquipmentUT\r\n );\r\n }\r\n this.detailPageRequest.emit(installEquipment.Identity);\r\n }\r\n\r\n isSelected(UT: string) {\r\n return this.selectedInstallEquipmentUT === UT;\r\n }\r\n\r\n changeActiveStatus(activeId: string): void {\r\n if (this.activeIds.indexOf(activeId) !== -1) {\r\n this.activeIds = this.activeIds.filter((name) => name !== activeId);\r\n } else {\r\n this.activeIds.push(activeId);\r\n }\r\n }\r\n\r\n set kpiFilter(kpiFilter: InstallEquipmentKpiFilter) {\r\n this._kpiFilter = kpiFilter;\r\n this.kpiFilterChange.emit(kpiFilter);\r\n }\r\n get kpiFilter() {\r\n return this._kpiFilter;\r\n }\r\n}\r\n","export class IncidentCreateOuputData {\r\n buildingUT: string;\r\n incidentId: number;\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-incident-filter',\r\n templateUrl: './incident-filter.component.html',\r\n styleUrls: ['./incident-filter.component.scss'],\r\n providers: [TranslatePipe]\r\n})\r\nexport class IncidentFilterComponent implements OnInit {\r\n @Input('filterModel') filterModel: any = {};\r\n @Input('statuses') statuses: any[];\r\n @Input('types') types: any[];\r\n // Labels / Parents\r\n @Input('EquipmentTypes') EquipmentTypes: any[];\r\n @Input('individualTerms') individualTerms: any[];\r\n @Input('serviceAgents') serviceAgents: any[];\r\n @Input('guideLines') guideLines: any[];\r\n @Input('intervals') intervals: any[];\r\n @Input('cities') cities: any[];\r\n @Input('buildingNames') buildingNames: any[];\r\n @Output('filterKey') filterKey: EventEmitter = new EventEmitter();\r\n\r\n dropdownOptions = {\r\n minWidth: '200px'\r\n };\r\n\r\n searchInputOptions = {\r\n placeholder: this.translate.transform('IncidentListFilter._dropdown.searchPlaceholder')\r\n };\r\n \r\n constructor(private translate: TranslatePipe) { }\r\n\r\n ngOnInit() {\r\n this.EquipmentTypes = this.EquipmentTypes.filter((data) => data !== '');\r\n this.individualTerms = this.individualTerms.filter((data) => data !== '');\r\n /* this.serviceAgents = this.serviceAgents.filter((data) => data !== ''); */\r\n this.guideLines = this.guideLines.filter((data) => data !== '');\r\n this.intervals = this.intervals.filter((data) => data !== '' && data !== ' IncidentListFilter._dropdown.undefined');\r\n this.cities = this.cities.filter((data) => data !== '');\r\n this.buildingNames = this.buildingNames.filter((data) => data !== '');\r\n }\r\n\r\n applyFilter() {\r\n this.filterKey.emit(this.filterModel);\r\n }\r\n\r\n setDateLimit(date: Date) {\r\n return date ? {year: date.getFullYear(), month: date.getMonth()+1, day: date.getDate()} : {};\r\n }\r\n}\r\n","import { IncidentView } from './incident-view';\r\nimport { IncidentType } from './incident-type';\r\n\r\nexport class IncidentDetailLinkOutputData {\r\n id: number;\r\n type: IncidentType;\r\n view: IncidentView;\r\n}\r\n","export enum IncidentDetailNavigationPaths {\r\n\r\n INCIDENT_DETAIL = 'incident-detail',\r\n ADD_SERVICE_CONTACT = 'add-service-contact'\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { combineLatest, Observable, Subscription, timer, from } from \"rxjs\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Common, PropertyCore, Operations } from \"../../../odata/odata.coreapi\";\r\nimport { AuthService } from \"../../../auth/auth.service\";\r\nimport { Incident } from \"../../../model/incident\";\r\nimport { ConfirmationModal } from \"../../../popup/confirmation.modal\";\r\nimport { Utils } from \"../../../tools/utils\";\r\nimport { IncidentCreateOuputData } from \"../incident-create-output-data\";\r\nimport { IncidentDetailNavigationPaths } from \"./incident-detail-navigation-paths.enum\";\r\nimport { LegacyIncident } from \"../../../model/legacyIncident\";\r\nimport { ODataCoreService } from \"../../../odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { ODataPath } from \"../../../odata/odataclient\";\r\n\r\n@Component({\r\n selector: \"app-incident-detail\",\r\n templateUrl: \"./incident-detail.component.html\",\r\n styleUrls: [\"./incident-detail.component.scss\"],\r\n})\r\nexport class IncidentDetailComponent implements OnInit, OnDestroy {\r\n @Input()\r\n incident$: Observable;\r\n\r\n @Input()\r\n defects$: Observable;\r\n\r\n @Input()\r\n isIncidentView: boolean;\r\n\r\n @Input()\r\n showClose: boolean;\r\n\r\n @Output()\r\n closeRequest = new EventEmitter();\r\n\r\n @Output()\r\n createRequest = new EventEmitter();\r\n\r\n @Output()\r\n postSimpleSaveRequest = new EventEmitter();\r\n\r\n @Output()\r\n postSaveRequest = new EventEmitter();\r\n\r\n @Output()\r\n setProcessedRequest = new EventEmitter();\r\n\r\n @Output()\r\n refreshListRequest = new EventEmitter();\r\n\r\n currentPage: IncidentDetailNavigationPaths;\r\n\r\n PAGE_INCIDENT_DETAIL = IncidentDetailNavigationPaths.INCIDENT_DETAIL;\r\n PAGE_ADD_SERVICE_CONTACT = IncidentDetailNavigationPaths.ADD_SERVICE_CONTACT;\r\n\r\n incident: Incident;\r\n defects: LegacyIncident[];\r\n\r\n // not used\r\n now: Date = new Date();\r\n nowNgbDateStruct = Utils.dateToDatepicker(this.now);\r\n\r\n serviceProviders: PropertyCore.ServiceProvider[] = [];\r\n\r\n editMode: boolean;\r\n editIncident: Incident;\r\n editHeaderDataMode: boolean;\r\n formSubmitted: boolean;\r\n\r\n canEdit: boolean;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n protected authService: AuthService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.incident$.subscribe((res) => {\r\n this.incident = res;\r\n this.cancelEdit();\r\n\r\n this.canEdit = false;\r\n\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.incident.Identity))\r\n .Actions()\r\n .CanOperateInOperationsOnEventInPropertyCore()\r\n .Parameters(Operations.Operations.Update)\r\n .Execute()\r\n .then((canEdit) => {\r\n if (canEdit.CanExecute == true) {\r\n this.canEdit = true;\r\n } else {\r\n this.canEdit = false;\r\n }\r\n });\r\n })\r\n );\r\n this.subscriptions.add(this.defects$.subscribe((res) => (this.defects = res)));\r\n\r\n this.currentPage = this.PAGE_INCIDENT_DETAIL;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n private close(): void {\r\n this.closeRequest.emit();\r\n }\r\n\r\n edit(editHeaderData: boolean = false): void {\r\n this.editMode = !editHeaderData;\r\n this.editHeaderDataMode = editHeaderData;\r\n this.editIncident = Object.assign({}, this.incident);\r\n\r\n // create subobjects if they do not exist\r\n if (!this.editIncident.Response) {\r\n this.editIncident.Response = {};\r\n }\r\n\r\n if (!this.serviceProviders.length) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.ServiceProvider.Query()\r\n .Filter((x) => x.Equals(ODataPath.For(\"Account\", \"Identity\"), Guid.parse(localStorage.getItem(\"mandator\"))))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe((res) => {\r\n this.serviceProviders = res;\r\n })\r\n );\r\n }\r\n\r\n if (!editHeaderData) {\r\n // scroll to bottom after 1 ms so that DOM is already in edit mode\r\n const scrollContent = document.getElementsByClassName(\"scroll-content incident-detail\");\r\n timer(1)\r\n .pipe(take(1))\r\n .subscribe(() => (scrollContent[0].scrollTop = scrollContent[0].scrollHeight));\r\n }\r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: IncidentDetailNavigationPaths): void {\r\n switch (pageChangeEvent) {\r\n case IncidentDetailNavigationPaths.INCIDENT_DETAIL: {\r\n if (this.currentPage === this.PAGE_ADD_SERVICE_CONTACT) {\r\n this.currentPage = this.PAGE_INCIDENT_DETAIL;\r\n }\r\n break;\r\n }\r\n case IncidentDetailNavigationPaths.ADD_SERVICE_CONTACT: {\r\n if (this.currentPage === this.PAGE_INCIDENT_DETAIL) {\r\n this.currentPage = this.PAGE_ADD_SERVICE_CONTACT;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveNewServiceContact(serviceContact: PropertyCore.ServiceProvider) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.ServiceProvider.Query()\r\n .Filter((x) => x.Equals(ODataPath.For(\"Account\", \"Identity\"), Guid.parse(localStorage.getItem(\"mandator\"))))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe((res) => {\r\n this.serviceProviders = res;\r\n })\r\n );\r\n this.processPageChangeRequest(IncidentDetailNavigationPaths.INCIDENT_DETAIL);\r\n }\r\n\r\n cancelEdit(): void {\r\n this.editMode = false;\r\n this.editHeaderDataMode = false;\r\n this.formSubmitted = false;\r\n this.editIncident = null;\r\n }\r\n\r\n validRefDate(): boolean {\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n let tomorrowNgbDateStruct = Utils.dateToDatepicker(tomorrow);\r\n\r\n return !!(\r\n this.editIncident.IsSkipped ||\r\n (this.editIncident.RefDate && this.editIncident.RefDate <= Utils.datepickerToDate(tomorrowNgbDateStruct))\r\n );\r\n }\r\n\r\n save(validForm: boolean, navToDocumentWizard: boolean = false): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Patch()\r\n .Key(Guid.parse(this.editIncident.Identity))\r\n .ValueType(this.odataCoreService.ODataTypes().Event())\r\n .ValueProperty(\"DueDate\", this.editIncident.DueDate)\r\n .ValueProperty(\"IsSkipped\", this.editIncident.IsSkipped)\r\n .Exec()\r\n .then((x) => x)\r\n ).subscribe((res1) => {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Select(\"Identity\")\r\n .Filter((x) => {\r\n x.EqualsField(\"Identity\", Guid.parse(this.editIncident.Identity));\r\n })\r\n .Expand((x) => {\r\n x.Expand(\"Response\");\r\n x.Expand(\"ServiceProvider\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res2) => res2[0]))\r\n .subscribe((res2) => {\r\n if (res2.ServiceProvider == null && this.editIncident.ServiceProvider != null) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.editIncident.Identity))\r\n .Value(\r\n \"ServiceProvider\",\r\n this.odataCoreService.ServiceProvider.Get()\r\n .Key(Guid.parse(this.editIncident.ServiceProvider.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n ).subscribe((res3) => {\r\n this.eventResponse(res2.Response, navToDocumentWizard);\r\n })\r\n );\r\n } else if (\r\n res2.ServiceProvider &&\r\n this.editIncident.ServiceProvider &&\r\n this.editIncident.ServiceProvider.Identity &&\r\n res2.ServiceProvider.Identity != this.editIncident.ServiceProvider.Identity\r\n ) {\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.editIncident.Identity))\r\n .Value(\r\n \"ServiceProvider\",\r\n this.odataCoreService.ServiceProvider.Get().Key(Guid.parse(res2.ServiceProvider.Identity)).Bind()\r\n )\r\n .Delete();\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.editIncident.Identity))\r\n .Value(\r\n \"ServiceProvider\",\r\n this.odataCoreService.ServiceProvider.Get()\r\n .Key(Guid.parse(this.editIncident.ServiceProvider.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n ).subscribe((res3) => {\r\n this.eventResponse(res2.Response, navToDocumentWizard);\r\n })\r\n );\r\n } else if (\r\n res2.ServiceProvider &&\r\n (!this.editIncident.ServiceProvider || !this.editIncident.ServiceProvider.Identity)\r\n ) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.editIncident.Identity))\r\n .Value(\r\n \"ServiceProvider\",\r\n this.odataCoreService.ServiceProvider.Get()\r\n .Key(Guid.parse(res2.ServiceProvider.Identity))\r\n .Bind()\r\n )\r\n .Delete()\r\n ).subscribe((res3) => {\r\n this.eventResponse(res2.Response, navToDocumentWizard);\r\n })\r\n );\r\n } else {\r\n this.eventResponse(res2.Response, navToDocumentWizard);\r\n }\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n eventResponse(eventResponse: any, navToDocumentWizard: boolean = false): void {\r\n //if (eventResponse != null && this.editIncident.RefDate != null) {\r\n if (eventResponse != null) {\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.editIncident.Identity))\r\n .NavigateToArray(\"Response\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().EventResponse())\r\n .ValueProperty(\"Comment\", this.editIncident.Response.Comment ? this.editIncident.Response.Comment : \"\")\r\n .ValueProperty(\r\n \"DefectRating\",\r\n this.editIncident.IsSkipped\r\n ? PropertyCore.DefectRatings.Undefined\r\n : this.editIncident.IsDefectHandler\r\n ? PropertyCore.DefectRatings.Unrated\r\n : PropertyCore.DefectRatings.Undefined\r\n ) // skipped incident does not have defect))\r\n .ValuePropertyNullable(\"ReferenceDate\", this.editIncident.IsSkipped ? null : this.editIncident.RefDate) // skipped incident does not have refdate\r\n .Exec()\r\n .then((res) => {\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"IncidentDetail.save_success\"));\r\n if (navToDocumentWizard) {\r\n this.postSaveRequest.emit(this.editIncident.Building.Identity);\r\n } else {\r\n this.postSimpleSaveRequest.emit(this.editIncident.Building.Identity);\r\n this.cancelEdit();\r\n // reload current incident data\r\n this.subscriptions.add(this.reloadData());\r\n }\r\n });\r\n //} else if (eventResponse == null && this.editIncident.RefDate != null) {\r\n } else if (eventResponse == null) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.editIncident.Identity))\r\n .NavigateToArray(\"Response\")\r\n .Post()\r\n .ValueType(this.odataCoreService.ODataTypes().EventResponse())\r\n .ValueProperty(\"Comment\", this.editIncident.Response.Comment ? this.editIncident.Response.Comment : \"\")\r\n .ValueProperty(\r\n \"DefectRating\",\r\n this.editIncident.IsSkipped\r\n ? PropertyCore.DefectRatings.Undefined\r\n : this.editIncident.IsDefectHandler\r\n ? PropertyCore.DefectRatings.Unrated\r\n : PropertyCore.DefectRatings.Undefined\r\n ) // skipped incident does not have defect))\r\n .ValuePropertyNullable(\"ReferenceDate\", this.editIncident.IsSkipped ? null : this.editIncident.RefDate) // skipped incident does not have refdate\r\n .Exec()\r\n .then((x) => x.value)\r\n ).subscribe((res) => {\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"IncidentDetail.save_success\"));\r\n if (navToDocumentWizard) {\r\n this.postSaveRequest.emit(this.editIncident.Building.Identity);\r\n } else {\r\n this.postSimpleSaveRequest.emit(this.editIncident.Building.Identity);\r\n this.cancelEdit();\r\n // reload current incident data\r\n this.subscriptions.add(this.reloadData());\r\n }\r\n })\r\n );\r\n } else {\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"IncidentDetail.save_success\"));\r\n if (navToDocumentWizard) {\r\n this.postSaveRequest.emit(this.editIncident.Building.Identity);\r\n } else {\r\n this.postSimpleSaveRequest.emit(this.editIncident.Building.Identity);\r\n this.cancelEdit();\r\n // reload current incident data\r\n this.subscriptions.add(this.reloadData());\r\n }\r\n }\r\n }\r\n create(): void {\r\n const data: IncidentCreateOuputData = new IncidentCreateOuputData();\r\n data.buildingUT = this.incident.Building.Identity;\r\n data.incidentId = this.incident.Id;\r\n this.createRequest.emit(data);\r\n }\r\n\r\n setProcessed(): void {\r\n this.setProcessedRequest.emit();\r\n\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.incident.Identity))\r\n .NavigateToArray(\"Response\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().EventResponse())\r\n .ValueProperty(\"IsDefectProcessed\", true)\r\n .Exec()\r\n .then((res) => {\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"IncidentDetail.setProcessed_success\"));\r\n\r\n // reload current incident data\r\n this.subscriptions.add(this.reloadData());\r\n });\r\n }\r\n\r\n private reloadData(): Subscription {\r\n this.refreshListRequest.emit();\r\n return combineLatest(this.incident$, this.defects$).subscribe(([i, d]) => {\r\n this.incident = i;\r\n this.defects = d;\r\n });\r\n }\r\n\r\n canDelete(): void {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Get()\r\n .Key(Guid.parse(this.incident.Identity))\r\n .Actions()\r\n .CanOperateInOperationsOnEventInPropertyCore()\r\n .Parameters(Operations.Operations.Delete)\r\n .Execute()\r\n ).subscribe((res) => {\r\n if (res.CanExecute == true) {\r\n let deleteAll: boolean = false;\r\n // Wartung or Individual repeating (not one time) without maintenance contract mapping\r\n if (\r\n (this.incident.getTypeShort === \"P\" ||\r\n this.incident.getTypeShort === \"W\" ||\r\n this.incident.getTypeShort === \"S\" ||\r\n this.incident.getTypeShort === \"I\") &&\r\n (!this.incident.Schedule || this.incident.Schedule.CycleUnit !== Common.IntervalUnits.Undefined) &&\r\n (!this.incident.Schedule || !this.incident.Schedule.MaintenanceContract)\r\n ) {\r\n deleteAll = true;\r\n }\r\n\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"IncidentDetail._modal_title\");\r\n modalRef.componentInstance.message = deleteAll\r\n ? this.translateService.instant(\"IncidentDetail._modal_message\")\r\n : this.translateService.instant(\"IncidentDetail._modal_message_all\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"IncidentDetail._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"IncidentDetail._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.delete();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else if (res.CanExecute == false) {\r\n let deleteAll: boolean = false;\r\n if (res.Blocker.length == 1 && res.Blocker[0].Property == \"Schedule\") {\r\n if (this.incident.Schedule.CycleUnit == Common.IntervalUnits.Undefined && this.incident.Response == null) {\r\n deleteAll = true;\r\n } else if (this.incident.Response != null) {\r\n deleteAll = null;\r\n } else {\r\n deleteAll = false;\r\n }\r\n\r\n if (deleteAll != null) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"IncidentDetail._modal_title\");\r\n modalRef.componentInstance.message = deleteAll\r\n ? this.translateService.instant(\"IncidentDetail._modal_message\")\r\n : this.translateService.instant(\"IncidentDetail._modal_message_all\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"IncidentDetail._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"IncidentDetail._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Schedule.Delete().Key(Guid.parse(this.incident.Schedule.Identity)).Exec()\r\n ).subscribe(\r\n (res) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"IncidentDetail.delete_success\")\r\n );\r\n this.cancelEdit();\r\n this.router.navigate([\r\n \"/building\",\r\n this.incident.Building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"incident\"] } }],\r\n },\r\n },\r\n ]);\r\n },\r\n (err) => {\r\n this.toasterService.pop(\"error\", \"Fehler\", err);\r\n }\r\n )\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"IncidentDetail._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"IncidentDetail._modal_message_event_response\"\r\n );\r\n modalRef.componentInstance.hideYesButton = true;\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"IncidentDetail._modal_cancel\");\r\n\r\n modalRef.result.catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n } else {\r\n let deleteMessage: boolean = false;\r\n\r\n if (this.incident.getTypeShort === \"W\") {\r\n deleteMessage = true;\r\n }\r\n\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"IncidentDetail._modal_title\");\r\n modalRef.componentInstance.message = deleteMessage\r\n ? this.translateService.instant(\"IncidentDetail._modal_message_wartungsvertrag\")\r\n : this.translateService.instant(\"IncidentDetail._modal_message_prüfung\");\r\n modalRef.componentInstance.hideYesButton = true;\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"IncidentDetail._modal_cancel\");\r\n\r\n modalRef.result.catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n private delete(): void {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Event.Delete().Key(Guid.parse(this.incident.Identity)).Exec()).subscribe(\r\n (res) => {\r\n this.toasterService.pop(\"info\", \"\", this.translateService.instant(\"IncidentDetail.delete_success\"));\r\n this.cancelEdit();\r\n this.router.navigate([\r\n \"/building\",\r\n this.incident.Building.Identity,\r\n {\r\n outlets: {\r\n left: [\"list\"],\r\n right: [\"building\", \"view\", { outlets: { tab: [\"incident\"] } }],\r\n },\r\n },\r\n ]);\r\n },\r\n (err) => {\r\n this.toasterService.pop(\"error\", \"Fehler\", err);\r\n }\r\n )\r\n );\r\n }\r\n\r\n goToDefects() {\r\n // right side is same, so we need hard reload\r\n const url = this.router\r\n .createUrlTree([\r\n \"/building\",\r\n this.incident.Building.Identity,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"defect\"] } }],\r\n right: [\"incident\", this.incident.Id, {}],\r\n },\r\n },\r\n ])\r\n .toString();\r\n this.router.navigateByUrl(\"/skipThisPage\", { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n }\r\n\r\n sendMail() {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.incident.Building.Identity))\r\n .Expand((x) => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe((building) => {\r\n location.href =\r\n \"mailto:netinform.re@tuvsud.com?Subject=\" +\r\n encodeURIComponent(\"Anfrage für Prüfung\") +\r\n \"&Body=\" +\r\n encodeURIComponent(\r\n \"Sehr geehrter Herr Maier,\\n\\n\" +\r\n \"bitte senden Sie uns ein Angebot für die Prüfung folgender Anlage:\\n\" +\r\n this.incident.Guidelines +\r\n \", \" +\r\n Utils.performPipeOperation(\"dateFormat\", this.incident.DueDate) +\r\n \"\\n\" +\r\n this.incident.Building.Name +\r\n \", \" +\r\n building.Address.Street +\r\n \" \" +\r\n building.Address.No +\r\n \", \" +\r\n building.Address.PostCode +\r\n \", \" +\r\n building.Address.City +\r\n \"\\n\" +\r\n (this.incident.Equipment.CustomId\r\n ? this.incident.Equipment.Name + \", \" + this.incident.Equipment.CustomId\r\n : this.incident.Equipment.Name) +\r\n \", \" +\r\n this.incident.Equipment.Room.Floor.Name +\r\n \", \" +\r\n this.incident.Equipment.Room.Name +\r\n \"\\n\" +\r\n document.location.origin +\r\n \"/building/\" +\r\n this.incident.Building.Identity +\r\n \"/(left:building/view/(tab:incident/(incidentstyle:list;tab=all))//right:incident/\" +\r\n this.incident.Id +\r\n \")\" +\r\n \"\\n\\n\" +\r\n \"Mit freundlichen Grüßen\\n\" +\r\n \"\" +\r\n localStorage.getItem(\"infoUserName\") +\r\n \" \" +\r\n localStorage.getItem(\"infoUserSurname\") +\r\n \", \" +\r\n localStorage.getItem(\"infoUserEmail\") +\r\n \"\\n\"\r\n );\r\n })\r\n );\r\n }\r\n\r\n navigateToIncidents(incident: Incident): void {\r\n const url = this.router\r\n .createUrlTree([\r\n \"/building\",\r\n incident.Building.Identity,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"incident\"] } }],\r\n right: [\"incident\", incident.Id, {}],\r\n },\r\n },\r\n ])\r\n .toString();\r\n this.router.navigateByUrl(\"/skipThisPage\", { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n }\r\n\r\n onIsSkippedChange(): void {\r\n this.editIncident.RefDate = null;\r\n if (!this.editIncident.Response) {\r\n this.editIncident.Response = {};\r\n }\r\n this.editIncident.IsDefectHandler = false;\r\n }\r\n\r\n compareProviders(p1: PropertyCore.ServiceProvider, p2: PropertyCore.ServiceProvider) {\r\n return p1 && p2 && p1.Identity == p2.Identity;\r\n }\r\n}\r\n","import {Observable} from 'rxjs';\r\n\r\nimport {Incident} from '../../model/incident';\r\nimport {IncidentType} from './incident-type';\r\nimport {IncidentView} from './incident-view';\r\nimport { PropertyCore } from '../../odata/odata.coreapi';\r\n\r\nexport class IncidentListInputData {\r\n incidents$: Observable;\r\n allIncidents$: Observable;\r\n currentView$: Observable;\r\n currentType$: Observable;\r\n allowedViews: IncidentView[];\r\n currentIncidentId$: Observable;\r\n\r\n // little bit of a work around to set the correct scroll height for the list. currently 431 for buildilng and 277 for dashboard list usage\r\n variableScrollHeight: string = '277';\r\n\r\n // TODO extract to wrapper component (dashboard also displays building name)\r\n showBuildingData: boolean;\r\n showEquipmentData: boolean = true;\r\n\r\n navigateToFirstListItem: boolean = false;\r\n}\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { combineLatest, Subscription } from \"rxjs\";\r\nimport { AuthService } from \"./../../../auth/auth.service\";\r\nimport { FilterByPipe } from \"./../../../pipes/filter.pipe\";\r\nimport { IncidentDetailLinkOutputData } from \"./../incident-detail-link-output-data\";\r\nimport { IncidentListInputData } from \"./../incident-list-input-data\";\r\nimport { IncidentType } from \"./../incident-type\";\r\nimport { IncidentView } from \"./../incident-view\";\r\nimport { IncidentTabComponent } from \"./incident-tab/incident-tab.component\";\r\nimport { PropertyCore } from \"app/core/odata/odata.coreapi\";\r\nimport { Incident } from \"app/core/model/incident\";\r\nimport { NgbNavChangeEvent } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\n@Component({\r\n selector: \"app-incident-list-view\",\r\n templateUrl: \"./incident-list-view.component.html\",\r\n styleUrls: [\"./incident-list-view.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class IncidentListViewComponent implements OnInit, OnDestroy {\r\n @ViewChild(\"tabTodo\") tabTodo: IncidentTabComponent;\r\n @ViewChild(\"tabTodoFuture\") tabTodoFuture: IncidentTabComponent;\r\n @ViewChild(\"tabOverdue\") tabOverdue: IncidentTabComponent;\r\n @ViewChild(\"tabDone\") tabDone: IncidentTabComponent;\r\n @ViewChild(\"tabDefect\") tabDefect: IncidentTabComponent;\r\n @ViewChild(\"tabMissingDocument\") tabMissingDocument: IncidentTabComponent;\r\n\r\n @Input() inputData: IncidentListInputData;\r\n\r\n @Output() viewTabChangeRequest = new EventEmitter();\r\n @Output() typeTabChangeRequest = new EventEmitter();\r\n @Output() detailPageRequest = new EventEmitter();\r\n\r\n searchFilter: string;\r\n serviceProviderSearchFilter: string = \"\";\r\n\r\n // prefilter incidents\r\n todoIncidents: PropertyCore.Event[] = [];\r\n todoFutureIncidents: PropertyCore.Event[] = [];\r\n overdueIncidents: PropertyCore.Event[] = [];\r\n doneIncidents: PropertyCore.Event[] = [];\r\n defectIncidents: PropertyCore.Event[] = [];\r\n missingDocumentIncidents: PropertyCore.Event[] = [];\r\n\r\n incidents: Incident[];\r\n currentViewTab: IncidentView;\r\n currentTypeTab: IncidentType;\r\n currentIncidentId: number = 0;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(public authService: AuthService, private filterByPipe: FilterByPipe) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n combineLatest(\r\n this.inputData.allIncidents$,\r\n this.inputData.currentView$,\r\n this.inputData.currentIncidentId$,\r\n this.inputData.currentType$\r\n ).subscribe(([incidents, currentViewTab, currentIncidentId, currentTypeTab]) => {\r\n this.incidents = incidents;\r\n this.filterIncidents(this.incidents);\r\n this.currentViewTab = currentViewTab;\r\n this.currentIncidentId = currentIncidentId;\r\n this.currentTypeTab = currentTypeTab;\r\n\r\n if (this.inputData.navigateToFirstListItem) {\r\n let currentViewTabIncidents = this.incidents;\r\n if (this.currentViewTab && this.currentTypeTab) {\r\n this.inputData.navigateToFirstListItem = false;\r\n currentViewTabIncidents = this[this.currentViewTab + \"Incidents\"];\r\n // we have incidents in same tab\r\n if (currentViewTabIncidents && currentViewTabIncidents.length) {\r\n switch (this.currentTypeTab) {\r\n case \"inspection\":\r\n currentViewTabIncidents = currentViewTabIncidents.filter(\r\n (i) =>\r\n i.Type === PropertyCore.EventTypes.Inspection ||\r\n i.Type === PropertyCore.EventTypes.FollowUpInspection\r\n );\r\n break;\r\n case \"maintenance\":\r\n currentViewTabIncidents = currentViewTabIncidents.filter(\r\n (i) => i.Type === PropertyCore.EventTypes.Maintenance\r\n );\r\n break;\r\n case \"repair\":\r\n currentViewTabIncidents = currentViewTabIncidents.filter(\r\n (i) => i.Type === PropertyCore.EventTypes.Repair\r\n );\r\n break;\r\n case \"individual\":\r\n currentViewTabIncidents = currentViewTabIncidents.filter(\r\n (i) => i.Type === PropertyCore.EventTypes.Custom\r\n );\r\n break;\r\n }\r\n // we have incidents in same accordion\r\n }\r\n }\r\n if (currentViewTabIncidents && currentViewTabIncidents.length) {\r\n this.currentIncidentId = currentViewTabIncidents[0].Id;\r\n this.linkToIncidentDetail(this.currentIncidentId, IncidentType.getIncidentType(this.currentTypeTab));\r\n }\r\n }\r\n\r\n // scroll to current incident\r\n if (this.currentIncidentId) {\r\n const incident = this.incidents.find((x) => x.Id === this.currentIncidentId);\r\n if (incident) {\r\n switch (this.currentViewTab) {\r\n case IncidentView.ALL:\r\n // Do nothing - filter is in html with directive\r\n // this.virtualScrollAll.items = this.filterByPipe.transform(this.incidents, this.searchFilter, ['TypeShort', 'CycleShort', 'GuidelinesShort', 'DueDate', 'Building.Name', 'Equipment.Name', 'Equipment.CustomId']);\r\n // this.virtualScrollAll.scrollInto(incident);\r\n break;\r\n case IncidentView.TODO:\r\n //this.tabTodo.scrollTo(this.currentIncidentId);\r\n break;\r\n case IncidentView.TODOFUTURE:\r\n //this.tabTodoFuture.scrollTo(this.currentIncidentId);\r\n break;\r\n case IncidentView.OVERDUE:\r\n //this.tabOverdue.scrollTo(this.currentIncidentId);\r\n break;\r\n case IncidentView.DONE:\r\n //this.tabDone.scrollTo(this.currentIncidentId);\r\n break;\r\n case IncidentView.DEFECT:\r\n //this.tabDefect.scrollTo(this.currentIncidentId);\r\n break;\r\n case IncidentView.MISSINGDOCUMENT:\r\n //this.tabMissingDocument.scrollTo(this.currentIncidentId);\r\n break;\r\n }\r\n }\r\n }\r\n })\r\n );\r\n\r\n if (!this.currentViewTab) {\r\n this.currentViewTab = IncidentView.TODOFUTURE;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onNavChange(changeEvent: NgbNavChangeEvent) {\r\n this.viewTabChangeRequest.emit(IncidentView.getIncidentView(changeEvent.nextId));\r\n }\r\n\r\n filterIncidents(incidents: PropertyCore.Event[]) {\r\n const future = new Date();\r\n future.setMonth(future.getMonth() + 3);\r\n future.setDate(future.getDate() + 1);\r\n future.setHours(0, 0, 0, 0);\r\n\r\n this.todoIncidents = this.incidents\r\n .filter((x) => x.KpiMarker.IsPlanned && x.DueDate < future && x.Type != PropertyCore.EventTypes.Undefined)\r\n .sort(function (a, b) {\r\n return (a.DueDate ? a.DueDate.getTime() : 0) - (b.DueDate ? b.DueDate.getTime() : 0);\r\n });\r\n\r\n this.todoFutureIncidents = incidents\r\n .filter(\r\n (x) =>\r\n x.KpiMarker.IsPlanned &&\r\n x.KpiMarker.IsActive &&\r\n x.KpiMarker.IsInFocus &&\r\n x.DueDate < future &&\r\n x.Type != PropertyCore.EventTypes.Undefined\r\n )\r\n .sort(function (a, b) {\r\n return (a.DueDate ? a.DueDate.getTime() : 0) - (b.DueDate ? b.DueDate.getTime() : 0);\r\n });\r\n\r\n this.overdueIncidents = this.incidents\r\n .filter(\r\n (x) =>\r\n x.KpiMarker.IsOverdue &&\r\n x.KpiMarker.IsActive &&\r\n x.KpiMarker.IsInFocus &&\r\n x.Type != PropertyCore.EventTypes.Undefined\r\n )\r\n .sort(function (a, b) {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n\r\n this.doneIncidents = incidents\r\n .filter((x) => (x.KpiMarker.IsDone || !x.KpiMarker.IsActive) && x.Type != PropertyCore.EventTypes.Undefined)\r\n .sort(function (a, b) {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n\r\n this.missingDocumentIncidents = this.incidents\r\n .filter(\r\n (x) =>\r\n x.KpiMarker.IsMissingDocuments &&\r\n x.KpiMarker.IsActive &&\r\n x.KpiMarker.IsInFocus &&\r\n x.Type != PropertyCore.EventTypes.Undefined\r\n )\r\n .sort(function (a, b) {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n\r\n this.defectIncidents = this.incidents\r\n .filter(\r\n (x) =>\r\n x.KpiMarker.IsDefective &&\r\n x.KpiMarker.IsActive &&\r\n x.KpiMarker.IsInFocus &&\r\n x.Type != PropertyCore.EventTypes.Undefined\r\n )\r\n .sort(function (a, b) {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n }\r\n\r\n serviceProviderNames(incidents: Incident[]): string[] {\r\n if (!incidents) {\r\n return [];\r\n }\r\n return [...new Set(incidents.filter((value) => value.ServiceProvider).map((value) => value.ServiceProvider.Name))];\r\n }\r\n\r\n handleDetailPageRequest($event: IncidentDetailLinkOutputData) {\r\n this.detailPageRequest.emit($event);\r\n }\r\n\r\n handleTypeTabChangeRequest($event: IncidentType) {\r\n this.typeTabChangeRequest.emit($event);\r\n }\r\n\r\n isShown(tabId: string): boolean {\r\n return this.inputData.allowedViews.indexOf(IncidentView.getIncidentView(tabId)) !== -1;\r\n }\r\n\r\n linkToIncidentDetail(id: number, type: IncidentType = IncidentType.NONE): void {\r\n const requestData = new IncidentDetailLinkOutputData();\r\n requestData.id = id;\r\n requestData.type = type;\r\n this.handleDetailPageRequest(requestData);\r\n }\r\n\r\n isSelected(id: number) {\r\n return this.currentIncidentId === id;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { Incident } from './../../../../model/incident';\r\n\r\n@Component({\r\n selector: 'app-incident-row',\r\n templateUrl: './incident-row.component.html',\r\n styleUrls: ['./incident-row.component.scss']\r\n})\r\nexport class IncidentRowComponent {\r\n\r\n @Input()\r\n incident: Incident;\r\n\r\n @Input()\r\n showBuildingData: boolean;\r\n\r\n @Input()\r\n showEquipmentData: boolean;\r\n\r\n constructor() {}\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { NgbAccordion, NgbPanelChangeEvent } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { Subscription, combineLatest } from \"rxjs\";\r\nimport { PropertyCore } from \"../../../../model/odata\";\r\nimport { Incident } from \"./../../../../model/incident\";\r\nimport { FilterByPipe } from \"./../../../../pipes/filter.pipe\";\r\nimport { IncidentDetailLinkOutputData } from \"./../../incident-detail-link-output-data\";\r\nimport { IncidentType } from \"./../../incident-type\";\r\n\r\n@Component({\r\n selector: \"app-incident-tab\",\r\n templateUrl: \"./incident-tab.component.html\",\r\n styleUrls: [\"./incident-tab.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class IncidentTabComponent implements OnInit, OnDestroy, OnChanges {\r\n @ViewChild(NgbAccordion)\r\n acc: NgbAccordion;\r\n\r\n @Input()\r\n incidents: Incident[];\r\n\r\n @Input()\r\n selectedId: number;\r\n\r\n @Input()\r\n currentTab: IncidentType;\r\n\r\n @Input()\r\n showBuildingData: boolean;\r\n\r\n @Input()\r\n showEquipmentData: boolean;\r\n\r\n @Input()\r\n variableScrollHeight: string;\r\n\r\n @Output()\r\n detailPageRequest = new EventEmitter();\r\n\r\n @Output()\r\n typeTabChangeRequest = new EventEmitter();\r\n\r\n searchFilter: string;\r\n\r\n serviceProviderSearchFilter: string = \"\";\r\n\r\n EventTypes = PropertyCore.EventTypes;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(private filterByPipe: FilterByPipe) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes[\"currentTab\"] &&\r\n changes[\"currentTab\"].currentValue != undefined &&\r\n changes[\"currentTab\"].currentValue != \"\"\r\n ) {\r\n this.acc?.expand(changes[\"currentTab\"].currentValue);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.currentTab) {\r\n this.currentTab = IncidentType.NONE;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n serviceProviderNames(incidents: Incident[]): string[] {\r\n if (!incidents) {\r\n return [];\r\n }\r\n return [...new Set(incidents.filter((value) => value.ServiceProvider).map((value) => value.ServiceProvider.Name))];\r\n }\r\n\r\n linkToIncidentDetail(id: number): void {\r\n const requestData = new IncidentDetailLinkOutputData();\r\n this.selectedId = id;\r\n requestData.id = id;\r\n requestData.type = this.currentTab;\r\n this.detailPageRequest.emit(requestData);\r\n }\r\n\r\n onPanelChange($event: NgbPanelChangeEvent) {\r\n this.currentTab = IncidentType.getIncidentType($event.panelId);\r\n this.typeTabChangeRequest.emit(this.currentTab);\r\n }\r\n\r\n isSelected(id: number) {\r\n return this.selectedId === id;\r\n }\r\n}\r\n","export enum IncidentType {\r\n INSPECTION = 'inspection',\r\n MAINTENANCE = 'maintenance',\r\n REPAIR = 'repair',\r\n INDIVIDUAL = 'individual',\r\n NONE = ''\r\n}\r\nexport namespace IncidentType {\r\n export function getIncidentType(value: string) {\r\n switch (value) {\r\n case IncidentType.INSPECTION: return IncidentType.INSPECTION;\r\n case IncidentType.MAINTENANCE: return IncidentType.MAINTENANCE;\r\n case IncidentType.REPAIR: return IncidentType.REPAIR;\r\n case IncidentType.INDIVIDUAL: return IncidentType.INDIVIDUAL;\r\n case IncidentType.NONE: return IncidentType.NONE;\r\n default: return IncidentType.NONE;\r\n }\r\n }\r\n}\r\n","export enum IncidentView {\r\n ALL = 'all',\r\n TODO = 'todo',\r\n TODOFUTURE = 'todoFuture',\r\n TODOFUTUREAUTOLOAD = 'todoFutureAutoLoad',\r\n OVERDUE = 'overdue',\r\n DONE = 'done',\r\n DEFECT = 'defect',\r\n MISSINGDOCUMENT = 'missingDocument'\r\n}\r\nexport namespace IncidentView {\r\n export function getIncidentView(value: string) {\r\n switch (value) {\r\n case IncidentView.ALL: return IncidentView.ALL;\r\n case IncidentView.TODO: return IncidentView.TODO;\r\n case IncidentView.TODOFUTURE: return IncidentView.TODOFUTURE;\r\n case IncidentView.TODOFUTUREAUTOLOAD: return IncidentView.TODOFUTUREAUTOLOAD;\r\n case IncidentView.OVERDUE: return IncidentView.OVERDUE;\r\n case IncidentView.DONE: return IncidentView.DONE;\r\n case IncidentView.DEFECT: return IncidentView.DEFECT;\r\n case IncidentView.MISSINGDOCUMENT: return IncidentView.MISSINGDOCUMENT;\r\n default: return null;\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-infographic',\r\n templateUrl: './infographic.component.html',\r\n styleUrls: ['./infographic.component.scss']\r\n})\r\nexport class InfographicComponent {\r\n\r\n constructor() {}\r\n\r\n}\r\n","import {\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Selectable } from \"app/core/model/common\";\r\nimport { FilterByPipe } from \"app/core/pipes/filter.pipe\";\r\n\r\n@Component({\r\n selector: \"app-selectable-items\",\r\n templateUrl: \"./selectable-items.component.html\",\r\n styleUrls: [\"./selectable-items.component.scss\"],\r\n})\r\nexport class SelectableItemsComponent implements OnInit {\r\n @Output() itemsSelected: EventEmitter = new EventEmitter();\r\n public _items: Selectable[] = [];\r\n @Input() set items(value: Selectable[]) {\r\n this._items = value;\r\n this.filteredItems = value;\r\n }\r\n get items(): Selectable[] {\r\n return this._items;\r\n }\r\n @Input() filterableProperties: string[] = [];\r\n @Input() labelItems: string = \"\";\r\n @Input() itemTemplateRef: TemplateRef;\r\n @Input() placeholderSearch: string;\r\n public filteredItems: Selectable[];\r\n public searchFilter: string = \"\";\r\n public allSelected: boolean = false;\r\n\r\n get selectedCount(): number {\r\n return this.filteredItems\r\n ? this.filteredItems.filter((x) => x.selected).length\r\n : 0;\r\n }\r\n\r\n constructor(private filterByPipe: FilterByPipe) { }\r\n\r\n ngOnInit() { }\r\n\r\n public select(item: Selectable, checked: boolean): void {\r\n item.selected = checked;\r\n let selectedItems = this.filteredItems.filter((b) => b.selected);\r\n this.allSelected = selectedItems.length === this.filteredItems.length;\r\n this.itemsSelected.emit(selectedItems);\r\n }\r\n\r\n public onSearchFilterChange(newValue: string): void {\r\n this.searchFilter = newValue;\r\n this.filteredItems = this.filterByPipe.transform(\r\n this.items,\r\n this.searchFilter,\r\n this.filterableProperties\r\n );\r\n }\r\n\r\n selectAll(selectAll: boolean): void {\r\n this.filteredItems.forEach((item) => (item.selected = selectAll));\r\n\r\n let selectedBuildings = this.filteredItems.filter((i) => i.selected);\r\n this.itemsSelected.emit(selectedBuildings);\r\n }\r\n}\r\n","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { Common, PropertyCore } from '../../../odata/odata.coreapi';\r\nimport { ConfirmationModal } from '../../../popup/confirmation.modal';\r\nimport { ILogger } from '../../../shared/logger.service';\r\nimport { ODataCoreService } from '../../../odata-services/odata.coreapi.service'\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-service-contact',\r\n templateUrl: './add-service-contact.component.html',\r\n styleUrls: ['./add-service-contact.component.scss']\r\n})\r\nexport class AddServiceContactComponent implements OnInit, OnDestroy {\r\n\r\n model: PropertyCore.ServiceProvider;\r\n\r\n logger: ILogger;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n cancelRequest = new EventEmitter();\r\n\r\n @Output()\r\n saveRequest = new EventEmitter();\r\n\r\n constructor(\r\n private toasterService: ToasterService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = {};\r\n this.model.Address = {};\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.message = this.translateService.instant('ServiceContactWizzard._modal_message2');\r\n modalRef.componentInstance.title = this.translateService.instant('ServiceContactWizzard._modal_title');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ServiceContactWizzard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ServiceContactWizzard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.cancelRequest.emit();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n this.cancelRequest.emit();\r\n }\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n this.subscriptions.add(\r\n from(this.odataCoreService.ServiceProvider.Query()\r\n .Filter(xa =>\r\n xa.EqualsField(\"Name\", this.model.Name))\r\n .Count().then(x => x > 0))\r\n .subscribe(async res => {\r\n\r\n if (res) {\r\n this.toasterService.pop('warning', '', this.translateService.instant('ServiceContactWizzard._longName_exists_error'));\r\n } else {\r\n if (this.model.Account != null && this.model.User == null) {\r\n\r\n await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .ValuePropertyBinding(\"Account\", this.odataCoreService.Account.Get().Key(Guid.parse(this.model.Account.Identity)).Bind())\r\n .Exec()\r\n .then(res2 => {\r\n this.model = res2;\r\n this.saveRequest.emit(this.model);\r\n });\r\n\r\n\r\n } else if (this.model.User != null && this.model.Account == null) {\r\n\r\n\r\n await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider()) \r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .ValuePropertyBinding(\"User\", this.odataCoreService.User.Get().Key(Guid.parse(this.model.User.Identity)).Bind())\r\n .Exec()\r\n .then(res2 => {\r\n this.model = res2;\r\n this.saveRequest.emit(this.model);\r\n });\r\n\r\n } else if (this.model.User == null && this.model.Account == null) {\r\n await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .Exec()\r\n .then(res2 => {\r\n this.model = res2;\r\n this.saveRequest.emit(this.model);\r\n });\r\n } else {\r\n\r\n await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .ValuePropertyBinding(\"Account\", this.odataCoreService.Account.Get().Key(Guid.parse(this.model.Account.Identity)).Bind())\r\n .ValuePropertyBinding(\"User\", this.odataCoreService.User.Get().Key(Guid.parse(this.model.User.Identity)).Bind())\r\n .Exec()\r\n .then(res2 => {\r\n this.model = res2;\r\n this.saveRequest.emit(this.model);\r\n });\r\n }\r\n \r\n }\r\n }));\r\n }\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (address.RegionInfo != null && address.RegionInfo.hasOwnProperty('Code')){\r\n entity.Region = address.RegionInfo['Code'];\r\n } \r\n if (address.CountryInfo != null && address.CountryInfo.hasOwnProperty('Code')) {\r\n entity.Country = address.CountryInfo['Code'];\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { FileItem, FileUploader } from \"ng2-file-upload\";\r\n\r\nimport { AuthService } from \"./../../auth/auth.service\";\r\nimport { AppConfig } from \"./../../bootstrap/app.config\";\r\n\r\n@Component({\r\n selector: \"app-document-upload\",\r\n templateUrl: \"./document-upload.component.html\",\r\n styleUrls: [\"./document-upload.component.scss\"],\r\n})\r\nexport class DocumentUploadComponent {\r\n @Output()\r\n addFile: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n removeFile: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild(\"fileInput\", { static: true })\r\n fileInput: any;\r\n\r\n uploader: FileUploader;\r\n\r\n hasDropZoneOver = false;\r\n\r\n constructor(\r\n private config: AppConfig,\r\n private authService: AuthService,\r\n private toasterService: ToasterService\r\n ) {\r\n this.uploader = new FileUploader({\r\n isHTML5: true,\r\n // manually check for mime type or extensions as it depends if the user has a program installed\r\n allowedMimeType: [\r\n \"application/pdf\",\r\n \"image/png\",\r\n \"image/jpg\",\r\n \"image/jpeg\",\r\n \"image/tif\",\r\n \"image/tiff\",\r\n // .doc, .docx\r\n \"application/msword\",\r\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n // .xls, .xlsx\r\n \"application/vnd.ms-excel\",\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n // .ppt, .pptx\r\n \"application/vnd.ms-powerpoint\",\r\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n // .dwg\r\n \"application/acad\",\r\n \"\", // application/acad, application/x-acad, application/autocad_dwg, image/x-dwg, application/dwg, application/x-dwg, application/x-autocad, image/vnd.dwg, drawing/dwg\r\n ],\r\n maxFileSize: 150 * 1024 * 1024, // 150 MB\r\n queueLimit: 1,\r\n method: \"POST\",\r\n headers: [{ name: \"Accept\", value: \"text/json\" }],\r\n removeAfterUpload: true,\r\n authToken: authService.getAuthorizationHeader(),\r\n });\r\n\r\n this.uploader.onBuildItemForm = (item, form) => {\r\n // console.log('onBuildItemForm', item, form);\r\n };\r\n this.uploader.onAfterAddingAll = (fileItems) => {\r\n // console.log('onAfterAddingAll', fileItems);\r\n };\r\n this.uploader.onAfterAddingFile = (fileItem) => {\r\n // console.log('onAfterAddingFile', fileItem);\r\n this.addFile.emit(fileItem);\r\n };\r\n this.uploader.onWhenAddingFileFailed = (item, filter, options) => {\r\n // console.log('onWhenAddingFileFailed', item, filter, options);\r\n switch (filter.name) {\r\n // case 'mimeType':\r\n // this.toasterService.pop('warning', '', 'Datei \\'' + item.name + '\\' konnte nicht hinzugefügt werden (.pdf, .jpg, .tiff, .xls, .doc, .dwg)');\r\n // break;\r\n case \"fileSize\":\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n \"Datei '\" +\r\n item.name +\r\n \"' konnte nicht hinzugefügt werden (Größe über 150MB)\"\r\n );\r\n break;\r\n case \"queueLimit\":\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n \"Datei '\" +\r\n item.name +\r\n \"' konnte nicht hinzugefügt werden (nur 1 Dokument möglich)\"\r\n );\r\n break;\r\n default:\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n \"Datei '\" + item.name + \"' konnte nicht hinzugefügt werden\"\r\n );\r\n break;\r\n }\r\n };\r\n this.uploader.onBeforeUploadItem = (fileItem) => {\r\n // console.log('onBeforeUploadItem', fileItem);\r\n };\r\n this.uploader.onProgressItem = (fileItem, progress) => {\r\n // console.log('onProgressItem', fileItem, progress);\r\n };\r\n this.uploader.onProgressAll = (progress) => {\r\n // console.log('onProgressAll', progress);\r\n };\r\n this.uploader.onSuccessItem = (item, response, status, headers) => {\r\n // console.log('onSuccessItem', item, response, status, headers);\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n \"Datei '\" + item._file.name + \"' wurde erfolgreich hochgeladen\"\r\n );\r\n };\r\n this.uploader.onErrorItem = (item, response, status, headers) => {\r\n // console.log('onErrorItem', item, response, status, headers);\r\n this.toasterService.pop(\r\n \"error\",\r\n \"\",\r\n \"Fehler beim Hochladen der Datei '\" + item._file.name + \"'\"\r\n );\r\n };\r\n this.uploader.onCancelItem = (item, response, status, headers) => {\r\n // console.log('onCancelItem', item, response, status, headers);\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n \"Datei '\" + item._file.name + \"' wurde abgebrochen\"\r\n );\r\n };\r\n this.uploader.onCompleteItem = (item, response, status, headers) => {\r\n // console.log('onCompleteItem', item, response, status, headers);\r\n };\r\n this.uploader.onCompleteAll = () => {\r\n // console.log('onCompleteAll');\r\n };\r\n }\r\n\r\n public fileOver(e: any): void {\r\n this.hasDropZoneOver = e;\r\n }\r\n\r\n public onFileRemove() {\r\n this.uploader.clearQueue();\r\n this.fileInput.nativeElement.value = \"\";\r\n this.removeFile.emit();\r\n }\r\n\r\n @Input()\r\n set file(file: FileItem) {\r\n if (file) {\r\n // manually check for mime type and extension\r\n let ok = false;\r\n switch (file.file.type) {\r\n // .pdf\r\n case \"application/pdf\":\r\n // .png\r\n case \"image/png\":\r\n // .jpg, .jpeg\r\n case \"image/jpg\":\r\n case \"image/jpeg\":\r\n // .tif, .tiff\r\n case \"image/tif\":\r\n case \"image/tiff\":\r\n // .doc\r\n case \"application/msword\":\r\n // .docx\r\n case \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":\r\n // .xls\r\n case \"application/vnd.ms-excel\":\r\n // .xlsx\r\n case \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\r\n // .ppt\r\n case \"application/vnd.ms-powerpoint\":\r\n // .pptx\r\n case \"application/vnd.openxmlformats-officedocument.presentationml.presentation\":\r\n // .dwg\r\n case \"application/acad\":\r\n case \"application/x-acad\":\r\n case \"application/autocad_dwg\":\r\n case \"image/x-dwg\":\r\n case \"application/dwg\":\r\n case \"application/x-dwg\":\r\n case \"application/x-autocad\":\r\n case \"image/vnd.dwg\":\r\n case \"drawing/dwg\":\r\n ok = true;\r\n break;\r\n case \"\":\r\n if (\r\n file.file.name.endsWith(\".pdf\") ||\r\n file.file.name.endsWith(\".png\") ||\r\n file.file.name.endsWith(\".jpg\") ||\r\n file.file.name.endsWith(\".jpeg\") ||\r\n file.file.name.endsWith(\".tif\") ||\r\n file.file.name.endsWith(\".tiff\") ||\r\n file.file.name.endsWith(\".doc\") ||\r\n file.file.name.endsWith(\".docx\") ||\r\n file.file.name.endsWith(\".xls\") ||\r\n file.file.name.endsWith(\".xlsx\") ||\r\n file.file.name.endsWith(\".ppt\") ||\r\n file.file.name.endsWith(\".pptx\") ||\r\n file.file.name.endsWith(\".dwg\")\r\n ) {\r\n ok = true;\r\n }\r\n break;\r\n }\r\n\r\n if (ok) {\r\n // do nothing\r\n } else {\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n \"Datei '\" +\r\n file.file.name +\r\n \"' konnte nicht hinzugefügt werden (erlaubt: .pdf, .jpg, .tiff, .xls, .doc, .ppt, .dwg)\"\r\n );\r\n }\r\n } else {\r\n this.uploader.clearQueue();\r\n this.fileInput.nativeElement.value = \"\";\r\n }\r\n }\r\n}\r\n","import { FileItem } from 'ng2-file-upload';\r\n\r\nexport class ImageUploadModel {\r\n file: FileItem[] = [];\r\n entityType: string;\r\n\r\n reset(): void {\r\n this.file = [];\r\n this.entityType = null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ImageUploadModel } from './image-upload-model';\r\n\r\n@Injectable()\r\nexport class ImageUploadService {\r\n\r\n imageUploadModel: ImageUploadModel = new ImageUploadModel;\r\n\r\n constructor() { }\r\n\r\n getCurrentImageUploadModel(): ImageUploadModel {\r\n return this.imageUploadModel;\r\n }\r\n\r\n resetCurrentImageUploadModel(): void {\r\n this.imageUploadModel.reset();\r\n }\r\n}\r\n\r\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { FileUploader, FileItem } from \"ng2-file-upload\";\r\n\r\nimport { AuthService } from \"./../../auth/auth.service\";\r\nimport { AppConfig } from \"./../../bootstrap/app.config\";\r\nimport { ODataCoreService } from \"../../odata-services/odata.coreapi.service\";\r\nimport { Subscription, from, Observable, lastValueFrom } from \"rxjs\";\r\n\r\nimport { Guid } from \"guid-typescript\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ImageUploadService } from \"./image-upload-service\";\r\nimport { ImageUploadModel } from \"./image-upload-model\";\r\n\r\n@Component({\r\n selector: \"app-image-upload\",\r\n templateUrl: \"./image-upload.component.html\",\r\n styleUrls: [\"./image-upload.component.scss\"],\r\n})\r\nexport class ImageUploadComponent {\r\n @Output()\r\n addFile: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n Identity: string;\r\n\r\n @Input()\r\n EntityType: string;\r\n\r\n @Output()\r\n complete: EventEmitter = new EventEmitter();\r\n\r\n uploader: FileUploader;\r\n\r\n hasDropZoneOver = false;\r\n\r\n imageUploadModel: ImageUploadModel;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private config: AppConfig,\r\n private authService: AuthService,\r\n private toasterService: ToasterService,\r\n private imageUploadService: ImageUploadService,\r\n private odataCoreService: ODataCoreService,\r\n private httpClient: HttpClient\r\n ) {\r\n this.uploader = new FileUploader({\r\n isHTML5: true,\r\n allowedMimeType: [\"image/png\", \"image/jpg\", \"image/jpeg\"],\r\n maxFileSize: 10 * 1024 * 1024, // 10 MB\r\n method: \"POST\",\r\n headers: [{ name: \"Accept\", value: \"text/json\" }],\r\n removeAfterUpload: true,\r\n authToken: authService.getAuthorizationHeader(),\r\n });\r\n\r\n this.uploader.onBuildItemForm = (item, form) => {\r\n // console.log('onBuildItemForm', item, form);\r\n };\r\n this.uploader.onAfterAddingAll = (fileItems) => {\r\n // console.log('onAfterAddingAll', fileItems);\r\n };\r\n this.uploader.onAfterAddingFile = (fileItem) => {\r\n // console.log('onAfterAddingFile', fileItem);\r\n this.addFile.emit(fileItem);\r\n };\r\n this.uploader.onWhenAddingFileFailed = (item, filter, options) => {\r\n // console.log('onWhenAddingFileFailed', item, filter, options);\r\n switch (filter.name) {\r\n case \"mimeType\":\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n \"Datei '\" + item.name + \"' konnte nicht hinzugefügt werden (kein Bild)\"\r\n );\r\n break;\r\n case \"fileSize\":\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n \"Datei '\" + item.name + \"' konnte nicht hinzugefügt werden (Größe über 10MB)\"\r\n );\r\n break;\r\n default:\r\n this.toasterService.pop(\"warning\", \"\", \"Datei '\" + item.name + \"' konnte nicht hinzugefügt werden\");\r\n break;\r\n }\r\n };\r\n this.uploader.onBeforeUploadItem = (fileItem) => {\r\n // console.log('onBeforeUploadItem', fileItem);\r\n };\r\n this.uploader.onProgressItem = (fileItem, progress) => {\r\n // console.log('onProgressItem', fileItem, progress);\r\n };\r\n this.uploader.onProgressAll = (progress) => {\r\n // console.log('onProgressAll', progress);\r\n };\r\n this.uploader.onSuccessItem = (item, response, status, headers) => {\r\n // console.log('onSuccessItem', item, response, status, headers);\r\n this.toasterService.pop(\"info\", \"\", \"Datei '\" + item._file.name + \"' wurde erfolgreich hochgeladen\");\r\n };\r\n this.uploader.onErrorItem = (item, response, status, headers) => {\r\n // console.log('onErrorItem', item, response, status, headers);\r\n this.toasterService.pop(\"error\", \"\", \"Fehler beim Hochladen der Datei '\" + item._file.name + \"'\");\r\n };\r\n this.uploader.onCancelItem = (item, response, status, headers) => {\r\n // console.log('onCancelItem', item, response, status, headers);\r\n this.toasterService.pop(\"warning\", \"\", \"Datei '\" + item._file.name + \"' wurde abgebrochen\");\r\n };\r\n this.uploader.onCompleteItem = (item, response, status, headers) => {\r\n // console.log('onCompleteItem', item, response, status, headers);\r\n };\r\n this.uploader.onCompleteAll = () => {\r\n // console.log('onCompleteAll');\r\n };\r\n }\r\n\r\n public fileOver(e: any): void {\r\n this.hasDropZoneOver = e;\r\n }\r\n\r\n public async uploadAll() {\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n let x = 0;\r\n switch (this.EntityType) {\r\n case \"Building\":\r\n for await (const imageUpload of this.imageUploadModel.file) {\r\n const imageResult = await this.odataCoreService.Image.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Image())\r\n .ValueProperty(\"FileName\", imageUpload.file.name)\r\n .ValuePropertyBinding(\r\n \"Building\",\r\n this.odataCoreService.Building.Get().Key(Guid.parse(this.Identity)).Bind()\r\n )\r\n .Exec();\r\n\r\n this.uploadImage(imageResult.Identity, imageUpload).subscribe(() => {\r\n this.toasterService.pop(\"info\", \"\", \"Datei '\" + imageUpload.file.name + \"' wurde erfolgreich hochgeladen\");\r\n if (this.imageUploadModel.file.length == x + 1) {\r\n this.complete.emit(null);\r\n }\r\n x++;\r\n });\r\n }\r\n break;\r\n\r\n case \"Equipment\":\r\n for await (const imageUpload of this.imageUploadModel.file) {\r\n const imageResult = await this.odataCoreService.Image.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Image())\r\n .ValueProperty(\"FileName\", imageUpload.file.name)\r\n .ValuePropertyBinding(\r\n \"Equipment\",\r\n this.odataCoreService.Equipment.Get().Key(Guid.parse(this.Identity)).Bind()\r\n )\r\n .Exec();\r\n\r\n this.uploadImage(imageResult.Identity, imageUpload).subscribe(() => {\r\n this.toasterService.pop(\"info\", \"\", \"Datei '\" + imageUpload.file.name + \"' wurde erfolgreich hochgeladen\");\r\n if (this.imageUploadModel.file.length == x + 1) {\r\n this.complete.emit(null);\r\n }\r\n x++;\r\n });\r\n }\r\n break;\r\n\r\n case \"Module\":\r\n for await (const imageUpload of this.imageUploadModel.file) {\r\n const imageResult = await this.odataCoreService.Image.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Image())\r\n .ValueProperty(\"FileName\", imageUpload.file.name)\r\n .ValuePropertyBinding(\"Module\", this.odataCoreService.Module.Get().Key(Guid.parse(this.Identity)).Bind())\r\n .Exec();\r\n\r\n this.uploadImage(imageResult.Identity, imageUpload).subscribe(() => {\r\n this.toasterService.pop(\"info\", \"\", \"Datei '\" + imageUpload.file.name + \"' wurde erfolgreich hochgeladen\");\r\n if (this.imageUploadModel.file.length == x + 1) {\r\n this.complete.emit(null);\r\n }\r\n x++;\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private uploadImage(identity: string, imageUpload: FileItem): Observable {\r\n var odataImageUrl = this.odataCoreService.Image.Get().Raw().Key(Guid.parse(identity)).ToUrlString(false);\r\n\r\n return this.httpClient.put(odataImageUrl, imageUpload.file.rawFile);\r\n }\r\n\r\n private resetImageModel(): void {\r\n this.imageUploadService.resetCurrentImageUploadModel();\r\n this.imageUploadModel = this.imageUploadService.getCurrentImageUploadModel();\r\n this.imageUploadModel.entityType = this.EntityType;\r\n }\r\n\r\n private removeImageFromModel(imageIndex: number): void {\r\n this.imageUploadService.imageUploadModel.file.splice(imageIndex, 1);\r\n }\r\n}\r\n\r\nfunction delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, delay, map, Observable, of } from 'rxjs';\r\n\r\nimport { AppConfig } from './../bootstrap/app.config';\r\n\r\n@Injectable()\r\nexport class GoogleMapsConfig {\r\n apiLoaded: Observable;\r\n _apiKey: string;\r\n\r\n constructor(private config: AppConfig, private httpClient: HttpClient) {\r\n }\r\n\r\n load(): Observable {\r\n if (!this.apiLoaded) {\r\n this.apiLoaded = this.httpClient.jsonp(`https://maps.googleapis.com/maps/api/js?key=${this.apiKey}`, 'callback')\r\n .pipe(\r\n map(() => {\r\n return true;\r\n }),\r\n catchError(() => of(false)),\r\n );\r\n }\r\n\r\n return this.apiLoaded;\r\n }\r\n\r\n get apiKey(): string {\r\n if (!this._apiKey) {\r\n this._apiKey = this.config.getGoogleApiKey();\r\n }\r\n return this._apiKey;\r\n }\r\n set apiKey(apiKey: string) {\r\n this._apiKey = apiKey;\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport {\r\n NgModule,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n NO_ERRORS_SCHEMA,\r\n} from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport {\r\n NgbDateParserFormatter,\r\n NgbDatepickerI18n,\r\n NgbModule,\r\n NgbDateAdapter,\r\n NgbDateNativeAdapter\r\n} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { CalendarModule, DateAdapter } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\r\nimport { FileUploadModule } from \"ng2-file-upload\";\r\nimport { PdfViewerModule } from \"ng2-pdf-viewer\";\r\nimport { UiSwitchModule } from \"ngx-ui-switch\";\r\n\r\nimport { AddressComponent } from \"./components/address/address.component\";\r\nimport { CoreBuildingDocumentsComponent } from \"./components/building/documents/core-building-documents.component\";\r\nimport { CoreBuildingDocumentsOnlyComponent } from \"./components/building/documents-missing-only/core-building-documents-missing-only.component\";\r\nimport { CoreBuildingEditUsagesComponent } from \"./components/building/edit-usages/core-building-edit-usages.component\";\r\nimport { CoreBuildingListComponent } from \"./components/building/list/core-building-list.component\";\r\nimport { CoreContractListComponent } from \"./components/contract/list/core-contract-list.component\";\r\nimport { CoreContractSetMaintenanceComponent } from \"./components/contract/set-maintenance/core-contract-set-maintenance.component\";\r\nimport { CoreEquipmentDocumentsComponent } from \"./components/equipment/documents/core-equipment-documents.component\";\r\nimport { CoreEditInspectionDutiesComponent } from \"./components/equipment/edit-inspection-duties/core-edit-inspection-duties.component\";\r\nimport { CoreEquipmentListComponent } from \"./components/equipment/list/core-equipment-list.component\";\r\nimport { CoreEquipmentListAccordionComponent } from \"./components/equipment/list-accordion/core-equipment-list-accordion.component\";\r\nimport { IncidentDetailComponent } from \"./components/incident/incident-detail/incident-detail.component\";\r\nimport { IncidentListViewComponent } from \"./components/incident/incident-list-view/incident-list-view.component\";\r\nimport { IncidentRowComponent } from \"./components/incident/incident-list-view/incident-row/incident-row.component\";\r\nimport { IncidentTabComponent } from \"./components/incident/incident-list-view/incident-tab/incident-tab.component\";\r\nimport { IncidentFilterComponent } from \"./components/incident/incident-data-grid/incident-filter/incident-filter.component\";\r\nimport { InfographicComponent } from \"./components/infographic/infographic.component\";\r\nimport { AddServiceContactComponent } from \"./components/service-contact/add-service-contact/add-service-contact.component\";\r\nimport { DocumentUploadComponent } from \"./components/upload/document-upload.component\";\r\nimport { ImageUploadComponent } from \"./components/upload/image-upload.component\";\r\nimport { ClickOutsideDirective } from \"./datepicker/clickOutside.directive\";\r\nimport { CustomDateParserFormatter } from \"./datepicker/customDateParserFormatter\";\r\nimport { CustomDatepickerI18n } from \"./datepicker/datepicker-i18n\";\r\nimport { DatepickerPipe } from \"./datepicker/datepicker.pipe\";\r\nimport { ProvideParentFormDirective } from \"./form/provide-parent-form\";\r\nimport { ProvideParentFormGroupDirective } from \"./form/provide-parent-form-group\";\r\nimport { ScrollToListItemDirective } from \"./gui/scrollToListItem.directive\";\r\nimport { TextTruncateTitleDirective } from \"./gui/text-truncate-title.directive\";\r\nimport { DateComparePipe } from \"./pipes/dateCompare.pipe\";\r\nimport { DateFormatPipe } from \"./pipes/dateFormat.pipe\";\r\nimport { DateTimeFormatPipe } from \"./pipes/dateTimeFormat.pipe\";\r\nimport { FileSizePipe } from \"./pipes/fileSize.pipe\";\r\nimport { FilterByPipe } from \"./pipes/filter.pipe\";\r\nimport { OrderPipe } from \"./pipes/order.pipe\";\r\nimport { SecureDownloadTokenPipe } from \"./pipes/secureDownloadToken.pipe\";\r\nimport { FilterIncidentsByPipe } from \"./pipes/filter2.pipe\";\r\nimport { ConfirmationModal } from \"./popup/confirmation.modal\";\r\nimport { ImagePreviewModal } from \"./popup/image-preview.modal\";\r\nimport { OfficePreviewModal } from \"./popup/office-preview.modal\";\r\nimport { PdfModal } from \"./popup/pdf.modal\";\r\nimport { PopupService } from \"./popup/popup.service\";\r\nimport { LoggerService } from \"./shared/logger.service\";\r\nimport { NavigatorService } from \"./shared/navigator.service\";\r\nimport { CountryValidator } from \"./validators/country.validator\";\r\nimport { OptionalEmailValidator } from \"./validators/optionalEmail.validator\";\r\nimport { RegionValidator } from \"./validators/region.validator\";\r\nimport {\r\n DevExtremeModule,\r\n DxDataGridModule,\r\n DxDropDownBoxModule,\r\n} from \"devextreme-angular\";\r\nimport { LoginService } from \"./shared/login.service\";\r\nimport { GlobalService } from \"./shared/global.service\";\r\nimport { MandatorService } from \"./shared/services/mandator.service\";\r\nimport { BuildingService } from \"./shared/services/building.service\";\r\nimport { SelectableItemsComponent } from \"./components/selectable-items/selectable-items.component\";\r\nimport { ExcelService } from \"./shared/services/shared/excel.service\";\r\nimport { AttributeValuesService } from \"./shared/services/attribute-values.service\";\r\nimport { GoogleMapsModule } from \"@angular/google-maps\";\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\n@NgModule({\r\n imports: [\r\n GoogleMapsModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n CommonModule,\r\n CalendarModule.forRoot({ provide: DateAdapter, useFactory: adapterFactory }),\r\n UiSwitchModule,\r\n NgbModule,\r\n FileUploadModule,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n PdfViewerModule,\r\n DevExtremeModule,\r\n DxDataGridModule,\r\n DxDropDownBoxModule\r\n ],\r\n exports: [\r\n CommonModule,\r\n GoogleMapsModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n // AgmCoreModule,\r\n FilterByPipe,\r\n OrderPipe,\r\n FilterIncidentsByPipe,\r\n DatepickerPipe,\r\n DateFormatPipe,\r\n DateTimeFormatPipe,\r\n DateComparePipe,\r\n FileSizePipe,\r\n SecureDownloadTokenPipe,\r\n ProvideParentFormDirective,\r\n ProvideParentFormGroupDirective,\r\n CalendarModule,\r\n UiSwitchModule,\r\n NgbModule,\r\n ClickOutsideDirective,\r\n FileUploadModule,\r\n ImageUploadComponent,\r\n DocumentUploadComponent,\r\n InfographicComponent,\r\n TranslateModule,\r\n AddressComponent,\r\n IncidentListViewComponent,\r\n IncidentTabComponent,\r\n IncidentRowComponent,\r\n IncidentDetailComponent,\r\n PdfViewerModule,\r\n OptionalEmailValidator,\r\n CoreBuildingListComponent,\r\n CoreEquipmentListComponent,\r\n CoreEquipmentListAccordionComponent,\r\n CoreBuildingEditUsagesComponent,\r\n CoreEditInspectionDutiesComponent,\r\n CoreContractListComponent,\r\n CoreBuildingDocumentsComponent,\r\n CoreBuildingDocumentsOnlyComponent,\r\n CoreEquipmentDocumentsComponent,\r\n ScrollToListItemDirective,\r\n TextTruncateTitleDirective,\r\n AddServiceContactComponent,\r\n SelectableItemsComponent,\r\n ],\r\n declarations: [\r\n ConfirmationModal,\r\n PdfModal,\r\n ImagePreviewModal,\r\n OfficePreviewModal,\r\n FilterByPipe,\r\n OrderPipe,\r\n FilterIncidentsByPipe,\r\n DatepickerPipe,\r\n DateFormatPipe,\r\n DateTimeFormatPipe,\r\n DateComparePipe,\r\n FileSizePipe,\r\n SecureDownloadTokenPipe,\r\n ProvideParentFormGroupDirective,\r\n ProvideParentFormDirective,\r\n ClickOutsideDirective,\r\n ImageUploadComponent,\r\n DocumentUploadComponent,\r\n InfographicComponent,\r\n AddressComponent,\r\n IncidentListViewComponent,\r\n IncidentTabComponent,\r\n IncidentRowComponent,\r\n IncidentFilterComponent,\r\n IncidentDetailComponent,\r\n CountryValidator,\r\n RegionValidator,\r\n OptionalEmailValidator,\r\n CoreBuildingListComponent,\r\n CoreEquipmentListComponent,\r\n CoreEquipmentListAccordionComponent,\r\n CoreBuildingEditUsagesComponent,\r\n CoreEditInspectionDutiesComponent,\r\n CoreContractListComponent,\r\n CoreContractSetMaintenanceComponent,\r\n CoreBuildingDocumentsComponent,\r\n CoreBuildingDocumentsOnlyComponent,\r\n CoreEquipmentDocumentsComponent,\r\n ScrollToListItemDirective,\r\n TextTruncateTitleDirective,\r\n AddServiceContactComponent,\r\n SelectableItemsComponent,\r\n ],\r\n providers: [\r\n GlobalService,\r\n LoginService,\r\n LoggerService,\r\n PopupService,\r\n NavigatorService,\r\n FilterByPipe,\r\n OrderPipe,\r\n FilterIncidentsByPipe,\r\n DatepickerPipe,\r\n DateFormatPipe,\r\n DateTimeFormatPipe,\r\n DateComparePipe,\r\n FileSizePipe,\r\n SecureDownloadTokenPipe,\r\n {\r\n provide: NgbDateParserFormatter,\r\n useClass: CustomDateParserFormatter,\r\n },\r\n {\r\n provide: NgbDateAdapter,\r\n useClass: NgbDateNativeAdapter,\r\n },\r\n {\r\n provide: NgbDatepickerI18n,\r\n useClass: CustomDatepickerI18n,\r\n },\r\n MandatorService,\r\n BuildingService,\r\n ExcelService,\r\n AttributeValuesService,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\r\n})\r\nexport class CoreModule { }\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]'\r\n})\r\nexport class ClickOutsideDirective {\r\n\r\n @Output()\r\n clickOutside = new EventEmitter();\r\n\r\n constructor(private _elementRef: ElementRef) {}\r\n\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n @HostListener('document:touchstart', ['$event', '$event.target'])\r\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n\r\n if (!this._elementRef.nativeElement.contains(targetElement)) {\r\n this.clickOutside.emit(event);\r\n }\r\n }\r\n\r\n // @HostListener('document:click', ['$event.path'])\r\n // @HostListener('document:touchstart', ['$event.path'])\r\n // public onGlobalClick(targetElementPath: Array) {\r\n // const elementRefInPath = targetElementPath.find(e => e === this._elementRef.nativeElement);\r\n // if (!elementRefInPath) {\r\n // this.clickOutside.emit(null);\r\n // }\r\n // }\r\n}\r\n","import { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\nfunction toInteger(value: any): number {\r\n return parseInt(`${value}`, 10);\r\n}\r\n\r\nfunction isNumber(value: any): value is number {\r\n return !isNaN(toInteger(value));\r\n}\r\n\r\nfunction padNumber(value: number) {\r\n if (isNumber(value)) {\r\n return `0${value}`.slice(-2);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n parse(value: string): NgbDateStruct {\r\n if (value) {\r\n const dateParts = value.trim().split('.');\r\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n return {year: toInteger(dateParts[0]), month: null, day: null};\r\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\r\n return {year: toInteger(dateParts[1]), month: toInteger(dateParts[0]), day: null};\r\n } else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts) && isNumber(dateParts[2])) {\r\n return {year: toInteger(dateParts[2]), month: toInteger(dateParts[1]), day: toInteger(dateParts[0])};\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct): string {\r\n return date ?\r\n `${isNumber(date.day) ? padNumber(date.day) : ''}.${isNumber(date.month) ? padNumber(date.month) : ''}.${date.year}` :\r\n '';\r\n }\r\n}\r\n","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { Utils } from './../tools/utils';\r\n\r\n@Injectable()\r\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\r\n\r\n constructor(private translateService: TranslateService) {\r\n super();\r\n }\r\n\r\n getWeekdayLabel(weekday: number, width?: TranslationWidth): string {\r\n return this.getWeekdayShortName(weekday);\r\n }\r\n getWeekdayShortName(weekday: number): string {\r\n return this.translateService.instant('WEEKDAYS_SHORT')[weekday - 1];\r\n }\r\n getMonthShortName(month: number): string {\r\n return this.translateService.instant('MONTHS_SHORT')[month - 1];\r\n }\r\n getMonthFullName(month: number): string {\r\n return this.translateService.instant('MONTHS_FULL')[month - 1];\r\n }\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return Utils.performPipeOperation('dateFormat', Utils.datepickerToDate(date));\r\n }\r\n}\r\n","import { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'datepicker'\r\n})\r\n\r\nexport class DatepickerPipe implements PipeTransform {\r\n\r\n transform(value: NgbDateStruct): Date {\r\n return value && new Date(value.year, value.month - 1, value.day);\r\n }\r\n}\r\n","import { Directive, forwardRef, } from '@angular/core';\r\nimport { ControlContainer, NgModelGroup } from '@angular/forms';\r\n\r\nexport const modelGroupProvider: any = {\r\n provide: ControlContainer,\r\n useExisting: forwardRef(() => NgModelGroup)\r\n};\r\n\r\n/**\r\n * see https://github.com/angular/angular/issues/9600\r\n */\r\n@Directive({\r\n selector: '[provide-parent-form-group]',\r\n providers: [\r\n modelGroupProvider\r\n ]\r\n})\r\nexport class ProvideParentFormGroupDirective{ }\r\n","import { Directive } from '@angular/core';\r\nimport { NgForm, ControlContainer } from '@angular/forms';\r\n\r\nexport function formFactory(form: NgForm) {\r\n return form;\r\n}\r\n\r\n/**\r\n * see https://github.com/angular/angular/issues/9600\r\n */\r\n@Directive({\r\n selector: '[provide-parent-form]',\r\n providers: [\r\n {\r\n provide: ControlContainer,\r\n useFactory: formFactory,\r\n deps: [NgForm]\r\n }\r\n ]\r\n})\r\nexport class ProvideParentFormDirective { }\r\n","import { AfterViewChecked, Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[scrollToListItem]'\r\n})\r\nexport class ScrollToListItemDirective implements AfterViewChecked {\r\n\r\n private done = false;\r\n\r\n constructor(private _elementRef: ElementRef) {}\r\n\r\n ngAfterViewChecked() {\r\n if (!this.done) {\r\n const activeListItems = this._elementRef.nativeElement.getElementsByClassName('active');\r\n if (activeListItems.length && activeListItems.item(0).tagName === 'LI' && activeListItems.item(0).clientHeight) {\r\n const activeListItem = activeListItems.item(0);\r\n this.done = true;\r\n activeListItem.scrollIntoView();\r\n // we are not at the end of the list, so center vertically\r\n if (this._elementRef.nativeElement.scrollTop > (activeListItem.offsetTop - this._elementRef.nativeElement.clientHeight)) {\r\n this._elementRef.nativeElement.scrollTop = this._elementRef.nativeElement.scrollTop - (this._elementRef.nativeElement.clientHeight / 2) + (activeListItem.clientHeight / 2);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewChecked, Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '.text-truncate'\r\n})\r\nexport class TextTruncateTitleDirective implements AfterViewChecked {\r\n\r\n private done = false;\r\n\r\n constructor(private _elementRef: ElementRef) {}\r\n\r\n ngAfterViewChecked() {\r\n if (!this._elementRef.nativeElement.title) {\r\n this._elementRef.nativeElement.title = this._elementRef.nativeElement.innerHTML\r\n // remove binding\r\n .replace(//g, '')\r\n // remove outer span\r\n .replace(/]*>/g, '')\r\n .replace(/<\\/span>/g, '')\r\n // remove outer div\r\n .replace(/]*>/g, '')\r\n .replace(/<\\/div>/g, '\\u000d')\r\n // remove nbsp and br\r\n .replace(' ', ' ').replace('
', '\\u000d').replace('
', '\\u000d');\r\n }\r\n }\r\n}\r\n","export class AttributeDTO {\r\n Id: number;\r\n Value: string;\r\n TypToken: string;\r\n}\r\n","import {PropertyCore, Common, Operations} from '../odata/odata.coreapi';\r\n\r\nexport class Building implements PropertyCore.Building {\r\n\r\n // from interface\r\n Identity: string; \r\n Id: number;\r\n Name: string;\r\n Address: Common.Address;\r\n Location: Common.Location;\r\n Size: number;\r\n YearOfConstruction: number;\r\n Created: Date;\r\n DataTimestamp: Date;\r\n DocumentTypeMarkers?: PropertyCore.DocumentTypeMarker[];\r\n Roles?: Operations.BuildingRole[];\r\n Account?: Operations.Account;\r\n User?: Operations.User;\r\n Equipments?: PropertyCore.Equipment[];\r\n Images?: PropertyCore.Image[];\r\n Events?: PropertyCore.Event[];\r\n Rooms?: PropertyCore.Room[];\r\n UsageTypes?: PropertyCore.UsageType[];\r\n Floors?: PropertyCore.Floor[];\r\n Statistics?: PropertyCore.BuildingStatistics;\r\n Users?: Operations.User[];\r\n Documents?: PropertyCore.Document[];\r\n KpiMarker?: PropertyCore.BuildingKpiMarker;\r\n AttributeTypeSets?: PropertyCore.AttributeTypeSet[];\r\n\r\n\r\n Status(x: number, y?: number, equipment: boolean = false) {\r\n if(equipment == false){\r\n if (this.Events[x]?.IsSkipped) {\r\n return IncidentStatus.IsSkipped;\r\n }\r\n else if (this.Events[x]?.KpiMarker != null && this.Events[x].KpiMarker.IsDone) {\r\n return IncidentStatus.Executed;\r\n }\r\n else if (this.Events[x]?.KpiMarker != null && this.Events[x].KpiMarker.IsOverdue) {\r\n return IncidentStatus.Due;\r\n }\r\n else if (this.Events[x]?.RefDate) {\r\n return IncidentStatus.Closed;\r\n }\r\n return IncidentStatus.Open;\r\n } else if(equipment == true){\r\n if (this.Equipments[x]?.Events[y]?.IsSkipped) {\r\n return IncidentStatus.IsSkipped;\r\n }\r\n else if (this.Equipments[x]?.Events[y]?.KpiMarker != null && this.Equipments[x]?.Events[y]?.KpiMarker.IsDone) {\r\n return IncidentStatus.Executed;\r\n }\r\n else if (this.Equipments[x]?.Events[y]?.KpiMarker != null && this.Equipments[x]?.Events[y]?.KpiMarker.IsOverdue) {\r\n return IncidentStatus.Due;\r\n }\r\n else if (this.Equipments[x]?.Events[y]?.RefDate) {\r\n return IncidentStatus.Closed;\r\n }\r\n return IncidentStatus.Open;\r\n }\r\n } \r\n\r\n get documentCommissionStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Commission);\r\n }\r\n \r\n get documentInvoiceStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Invoice);\r\n }\r\n \r\n get documentOfferStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Offer);\r\n }\r\n \r\n get documentProtocolStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Protocol);\r\n }\r\n \r\n get documentReportStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Report);\r\n }\r\n \r\n getDocumentStatus(invoiceDocumentTypeName: InvoiceDocumentTypeName) {\r\n const doc = this.Documents.find(d => d.DocumentType.Name === invoiceDocumentTypeName);\r\n \r\n if (doc) {\r\n return DocumentStatus.Exists;\r\n }\r\n switch (invoiceDocumentTypeName) {\r\n case InvoiceDocumentTypeName.Offer:\r\n // not required by any event type\r\n break;\r\n case InvoiceDocumentTypeName.Commission:\r\n // not required by any event type\r\n break;\r\n case InvoiceDocumentTypeName.Protocol:\r\n switch (this.Events[0].Type) {\r\n case PropertyCore.EventTypes.Inspection:\r\n case PropertyCore.EventTypes.FollowUpInspection:\r\n case PropertyCore.EventTypes.Maintenance:\r\n return DocumentStatus.MissingRequired;\r\n }\r\n case InvoiceDocumentTypeName.Report:\r\n switch (this.Events[0].Type) {\r\n case PropertyCore.EventTypes.Repair:\r\n return DocumentStatus.MissingRequired;\r\n }\r\n case InvoiceDocumentTypeName.Invoice:\r\n // not required by any event type\r\n break;\r\n }\r\n return DocumentStatus.Missing;\r\n }\r\n}\r\nexport enum IncidentStatus {\r\n IsSkipped = 'IsSkipped',\r\n Closed = 'Closed',\r\n Executed = 'Executed',\r\n Due = 'Due',\r\n Open = 'Open'\r\n }\r\n \r\n export enum InvoiceDocumentTypeName {\r\n Offer = 'Angebot',\r\n Commission = 'Beauftragung',\r\n Protocol = 'Protokoll',\r\n Report = 'Regiebericht',\r\n Invoice = 'Rechnung'\r\n }\r\n\r\nexport enum DocumentStatus {\r\n Missing = 1,\r\n Exists = 2,\r\n MissingRequired = 3\r\n }","import {PropertyCore} from '../odata/odata.coreapi';\r\n\r\n\r\nexport enum ACTION {\r\n NONE = 'none',\r\n ADD = 'add',\r\n REMOVE = 'remove'\r\n}\r\n\r\nexport class ExtendedMaintenanceContractMapping implements PropertyCore.MaintenanceJob {\r\n\r\n // from interface\r\n Identity: string;\r\n Id: number;\r\n IsDisabled: boolean;\r\n Created: Date;\r\n Equipment?: PropertyCore.Equipment;\r\n Schedule?: PropertyCore.Schedule;\r\n MaintenanceContract?: PropertyCore.MaintenanceContract;\r\n\r\n // own data\r\n action: ACTION = ACTION.NONE;\r\n selected: boolean;\r\n\r\n static createFromEquipment(ie: PropertyCore.Equipment): ExtendedMaintenanceContractMapping {\r\n const entity = new ExtendedMaintenanceContractMapping;\r\n entity.Equipment = ie;\r\n entity.Schedule = {};\r\n return entity;\r\n }\r\n}\r\n","export class GaebExport {\r\n fileKey: string;\r\n\r\n negativeReportIEs: NegativeReport[];\r\n validIECount: number;\r\n negativeReportAllIECount: number;\r\n\r\n negativeReportIMs: NegativeReport[];\r\n validIMCount: number;\r\n negativeReportAllIMCount: number;\r\n}\r\n\r\nexport class NegativeReport {\r\n id: number;\r\n UT: string;\r\n buildingName: string;\r\n shortName: string;\r\n longName: string;\r\n customId: string;\r\n roomName: string;\r\n}\r\n\r\nexport class GaebExportLog {\r\n id: number;\r\n UT: string;\r\n createDate: Date;\r\n lastDownload: Date;\r\n is0PositionExport: boolean;\r\n sizeInKB: number;\r\n}\r\n","import { PropertyCore, Common } from '../odata/odata.coreapi';\r\n\r\nexport class Incident implements PropertyCore.Event {\r\n\r\n // from interface\r\n Identity: string;\r\n Id: number;\r\n Type: PropertyCore.EventTypes;\r\n Guidelines: string;\r\n Qualification: string;\r\n Name: string;\r\n DueDate: Date;\r\n RefDate: Date;\r\n ClosedDate: Date;\r\n IsSkipped: boolean;\r\n Created: Date;\r\n Response?: PropertyCore.EventResponse;\r\n Parent?: PropertyCore.Event;\r\n Schedule?: PropertyCore.Schedule;\r\n ServiceProvider?: PropertyCore.ServiceProvider;\r\n Building?: PropertyCore.Building;\r\n Documents?: PropertyCore.Document[];\r\n Equipment?: PropertyCore.Equipment;\r\n Module?: PropertyCore.Module;\r\n IsDefectHandler: boolean;\r\n KpiMarker?: PropertyCore.EventKpiMarker;\r\n DefectChecker: boolean;\r\n TypeShort: string;\r\n CycleShort: string;\r\n GuidelinesShort: string;\r\n\r\n // own data\r\n selected?: boolean;\r\n\r\n get getTypeShort(): string {\r\n switch (this.Type) {\r\n case PropertyCore.EventTypes.Inspection:\r\n case PropertyCore.EventTypes.FollowUpInspection:\r\n return this.TypeShort = 'P';\r\n break;\r\n case PropertyCore.EventTypes.Maintenance:\r\n return this.TypeShort = 'W';\r\n break;\r\n case PropertyCore.EventTypes.Repair:\r\n return this.TypeShort = 'I';\r\n break;\r\n case PropertyCore.EventTypes.Custom:\r\n return this.TypeShort = 'S';\r\n break;\r\n default:\r\n return this.TypeShort = '';\r\n break;\r\n }\r\n\r\n }\r\n\r\n get getCycleUnitShort(): string {\r\n switch (this.Schedule?.CycleUnit) {\r\n case Common.IntervalUnits.Undefined:\r\n return this.CycleShort = this.Schedule.Cycle + 'X';\r\n break;\r\n case Common.IntervalUnits.Week:\r\n return this.CycleShort = this.Schedule.Cycle + 'W';\r\n break;\r\n case Common.IntervalUnits.Month:\r\n return this.CycleShort = this.Schedule.Cycle + 'M';\r\n break;\r\n case Common.IntervalUnits.Year:\r\n return this.CycleShort = this.Schedule.Cycle + 'J';\r\n break;\r\n default:\r\n return this.CycleShort = 1 + 'X';\r\n break;\r\n }\r\n }\r\n\r\n get getGuidelinesShort(): string {\r\n if (this.Type == PropertyCore.EventTypes.Maintenance && this.ServiceProvider != null && this.Guidelines == '' && this.Schedule?.MaintenanceContract?.StartDate != null) {\r\n let StartDate = this.Schedule.MaintenanceContract.StartDate;\r\n let GetMonth = ('0' + (this.Schedule.MaintenanceContract.StartDate.getMonth() + 1)).slice(-2);\r\n return this.GuidelinesShort = 'Wartungsvertrag Fa. ' + this.ServiceProvider.Name + ' vom ' + StartDate.getDate() + '.' + GetMonth + '.' + StartDate.getFullYear()\r\n }\r\n if (this.Type == PropertyCore.EventTypes.Maintenance && this.ServiceProvider == null && this.Guidelines == '' && this.Schedule?.MaintenanceContract?.StartDate != null && this.Schedule?.MaintenanceContract?.ServiceProvider != null) {\r\n let StartDate = this.Schedule.MaintenanceContract.StartDate;\r\n let GetMonth = ('0' + (this.Schedule.MaintenanceContract.StartDate.getMonth() + 1)).slice(-2);\r\n return this.GuidelinesShort = 'Wartungsvertrag Fa. ' + this.Schedule.MaintenanceContract.ServiceProvider.Name + ' vom ' + StartDate.getDate() + '.' + GetMonth + '.' + StartDate.getFullYear()\r\n }\r\n if (this.Guidelines != '' || this.Guidelines == '' && this.Schedule == null || this.Guidelines == '' && this.Schedule.InspectionDuty == null) {\r\n return this.GuidelinesShort = this.Guidelines\r\n }\r\n if (this.Schedule != null && this.Schedule.InspectionDuty != null) {\r\n return this.GuidelinesShort = this.Schedule.InspectionDuty.OperatorTask.Guidelines\r\n }\r\n return ''\r\n }\r\n\r\n get Status() {\r\n if (this.IsSkipped) {\r\n return IncidentStatus.IsSkipped;\r\n }\r\n else if (this.KpiMarker != null && this.KpiMarker.IsDone) {\r\n return IncidentStatus.Executed;\r\n }\r\n else if (this.KpiMarker != null && this.KpiMarker.IsOverdue) {\r\n return IncidentStatus.Due;\r\n }\r\n else if (this.RefDate) {\r\n return IncidentStatus.Closed;\r\n }\r\n return IncidentStatus.Open;\r\n }\r\n\r\n get documentCommissionStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Commission);\r\n }\r\n\r\n get documentInvoiceStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Invoice);\r\n }\r\n\r\n get documentOfferStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Offer);\r\n }\r\n\r\n get documentProtocolStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Protocol);\r\n }\r\n\r\n get documentReportStatus(): DocumentStatus {\r\n return this.getDocumentStatus(InvoiceDocumentTypeName.Report);\r\n }\r\n\r\n getDocumentStatus(invoiceDocumentTypeName: InvoiceDocumentTypeName) {\r\n const doc = this.Documents.find(d => d.DocumentType.Name === invoiceDocumentTypeName);\r\n\r\n if (doc) {\r\n return DocumentStatus.Exists;\r\n }\r\n switch (invoiceDocumentTypeName) {\r\n case InvoiceDocumentTypeName.Offer:\r\n // not required by any event type\r\n break;\r\n case InvoiceDocumentTypeName.Commission:\r\n // not required by any event type\r\n break;\r\n case InvoiceDocumentTypeName.Protocol:\r\n switch (this.Type) {\r\n case PropertyCore.EventTypes.Inspection:\r\n case PropertyCore.EventTypes.FollowUpInspection:\r\n case PropertyCore.EventTypes.Maintenance:\r\n return DocumentStatus.MissingRequired;\r\n }\r\n case InvoiceDocumentTypeName.Report:\r\n switch (this.Type) {\r\n case PropertyCore.EventTypes.Repair:\r\n return DocumentStatus.MissingRequired;\r\n }\r\n case InvoiceDocumentTypeName.Invoice:\r\n // not required by any event type\r\n break;\r\n }\r\n return DocumentStatus.Missing;\r\n }\r\n}\r\n\r\nexport enum IncidentStatus {\r\n IsSkipped = 'IsSkipped',\r\n Closed = 'Closed',\r\n Executed = 'Executed',\r\n Due = 'Due',\r\n Open = 'Open'\r\n}\r\n\r\nexport enum InvoiceDocumentTypeName {\r\n Offer = 'Angebot',\r\n Commission = 'Beauftragung',\r\n Protocol = 'Protokoll',\r\n Report = 'Regiebericht',\r\n Invoice = 'Rechnung'\r\n}\r\n\r\nexport enum DocumentStatus {\r\n Missing = 1,\r\n Exists = 2,\r\n MissingRequired = 3\r\n}\r\n","import { PropertyCore } from '../odata/odata.coreapi';\r\n\r\nexport class InspectionDuty implements PropertyCore.InspectionDuty {\r\n\r\n // from interface\r\n Identity: string;\r\n Id: number;\r\n IsDisabled: boolean;\r\n Module?: PropertyCore.Module;\r\n OperatorTask?: PropertyCore.OperatorTask;\r\n Equipment?: PropertyCore.Equipment;\r\n Schedule?: PropertyCore.Schedule;\r\n\r\n // additional properties for gui use\r\n originalIsDisabled: boolean;\r\n isChangedSeriesStart: boolean;\r\n isChangedActive: boolean;\r\n}\r\n","export class InstallEquipmentDeleteInfo {\r\n\r\n isDeletable: boolean;\r\n attributeValueCount: number;\r\n childCount: number;\r\n imCount: number;\r\n imageCount: number;\r\n incidentsCount: number;\r\n inspectionDutiesCount: number;\r\n maintenanceContractMappingsCount: number;\r\n qrCodeCount: number;\r\n\r\n}\r\n\r\n","import { ObjektBrief, Operations, PropertyCore } from '../odata/odata.coreapi';\r\n\r\n\r\nexport class Mandator implements Operations.Account {\r\n\r\n // from interface\r\n Identity: string;\r\n Id: number;\r\n Name: string;\r\n MaxBuildingCount: number;\r\n IsSubscriptionProcessed: boolean;\r\n SapNo: string;\r\n StartDate: Date;\r\n EndDate: Date;\r\n AccountType: Operations.AccountTypes;\r\n Created: Date;\r\n Profile?: ObjektBrief.AccountProfile;\r\n User?: Operations.User;\r\n Statistics?: ObjektBrief.AccountStatistics;\r\n AccountDataProcessingAgreement?: Operations.AccountDataProcessingAgreement;\r\n ActionLogs?: PropertyCore.ActionLog[];\r\n Buildings?: PropertyCore.Building[];\r\n MaintenanceContracts?: PropertyCore.MaintenanceContract[];\r\n ServiceProviders?: PropertyCore.ServiceProvider[];\r\n Roles?: Operations.AccountRole[];\r\n Rights?: Operations.AccountRights[];\r\n\r\n // our data\r\n // this is our own data which we populate later depending on current user\r\n isOwnerOwner: boolean;\r\n isOwner: boolean;\r\n doesExists: boolean;\r\n}\r\n\r\nexport interface UserRoleBuildings {\r\n User?: Operations.User;\r\n RoleBuildings?: RoleBuilding[];\r\n}\r\n\r\nexport interface RoleBuilding {\r\n Role?: Operations.BuildingRole;\r\n Building?: PropertyCore.Building;\r\n}\r\n","/**************************************************************************\r\n Created by odatatools: https://marketplace.visualstudio.com/items?itemName=apazureck.odatatools\r\n Use Command 'odata: xyUpdate to refresh data while this file is active in the editor.\r\n Creation Time: Wed Oct 24 2018 09:54:30 GMT+0200 (Central Europe Daylight Time)\r\n DO NOT DELETE THIS IN ORDER TO UPDATE YOUR SERVICE\r\n #ODATATOOLSOPTIONS\r\n {\r\n\t\"modularity\": \"Ambient\",\r\n\t\"requestOptions\": {},\r\n\t\"source\": \"http://api.obb.tuev-daily.de/OData/$metadata\",\r\n\t\"useTemplate\": \"proxy.ot\"\r\n}\r\n #ODATATOOLSOPTIONSEND\r\n **************************************************************************/\r\n\r\n// Base classes ##########################################################\r\n// Leave this in order to use the base classes\r\nnamespace odatatools {\r\n enum Method {\r\n GET,\r\n POST,\r\n PUT,\r\n PATCH,\r\n DELETE\r\n }\r\n\r\n export class ProxyBase {\r\n constructor(\r\n public readonly Address: string,\r\n public readonly Name?: string,\r\n additonalHeaders?: odatajs.Header\r\n ) {\r\n this.Name = this.Name || \"ProxyService\";\r\n\r\n this.Headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\"\r\n };\r\n\r\n for (var attrname in additonalHeaders) {\r\n this.Headers[attrname] = additonalHeaders[attrname];\r\n }\r\n }\r\n\r\n /**\r\n * All headers appended to each request.\r\n *\r\n * @type {odatajs.Header}\r\n * @memberOf EntitySet\r\n */\r\n readonly Headers: odatajs.Header;\r\n }\r\n\r\n export abstract class ODataQueryOptionBase {\r\n private query: string[] = [];\r\n\r\n protected resolveODataOptions(): string {\r\n if (this.query.length > 0) return \"?\" + this.query.join(\"&\");\r\n else return \"\";\r\n }\r\n\r\n protected addToQuery(element: string) {\r\n this.query.push(element);\r\n }\r\n\r\n protected emptyQuery(): void {\r\n this.query = [];\r\n }\r\n }\r\n\r\n export abstract class ODataQueryOptionsGetSingle extends ODataQueryOptionBase {\r\n }\r\n\r\n export abstract class ODataQueryFilterOptions extends ODataQueryOptionsGetSingle {\r\n abstract Get(): Promise;\r\n abstract Get(id: string): Promise;\r\n\r\n abstract Count(): Promise;\r\n\r\n /**\r\n * Selects properties on the elements. Works on Get() and Get(id).\r\n *\r\n * @param {keyof T | (keyof T)[]} properties Use comma separated names without spaces\r\n * @returns {ODataQueryOptions}\r\n *\r\n * @memberof ODataQueryOptions\r\n */\r\n Select(properties: keyof T | (keyof T)[]): ODataQueryFilterOptions {\r\n if (typeof properties === \"string\")\r\n this.addToQuery(\"$select=\" + properties);\r\n else this.addToQuery(\"$select=\" + (<(keyof T)[]>properties).join(\",\"));\r\n return this;\r\n }\r\n\r\n /**\r\n * Orders elements by the given property. Works only on Get()\r\n *\r\n * @param {string} property Property on dataset to order by\r\n * @param {Order} [order=asc] Order \"asc\" for ascending and \"desc\" for descending.\r\n * @returns {ODataQueryFilterOptions}\r\n *\r\n * @memberof ODataQueryFilterOptions\r\n */\r\n OrderBy(property: keyof T, order?: Order): ODataQueryFilterOptions {\r\n this.addToQuery(\"$orderby=\" + property + order ? \" \" + order : \"\");\r\n return this;\r\n }\r\n\r\n /**\r\n * Top selects the given number of element. Works only on Get()\r\n *\r\n * @param {number} select number of elements to select\r\n * @returns {ODataQueryFilterOptions}\r\n *\r\n * @memberof ODataQueryFilterOptions\r\n */\r\n Top(select: number): ODataQueryFilterOptions {\r\n this.addToQuery(\"$top=\" + select);\r\n return this;\r\n }\r\n\r\n /**\r\n * Skips the given number of elements and starts with element n + 1\r\n *\r\n * @param {number} select Number of elements to skip\r\n * @returns {ODataQueryFilterOptions}\r\n *\r\n * @memberof ODataQueryFilterOptions\r\n */\r\n Skip(select: number): ODataQueryFilterOptions {\r\n this.addToQuery(\"$skip=\" + select);\r\n return this;\r\n }\r\n\r\n /**\r\n * Filters by given criteria. See odata $filter convention for information on syntax.\r\n *\r\n * @param {string} filter Filter syntax specified by odata V4 standard.\r\n * @returns {ODataQueryFilterOptions}\r\n *\r\n * @memberof ODataQueryFilterOptions\r\n */\r\n Filter(filter: string): ODataQueryFilterOptions {\r\n this.addToQuery(\"$filter=\" + filter);\r\n return this;\r\n }\r\n\r\n /**\r\n * Expands given property or array of properties.\r\n *\r\n * @param {(keyof T | (keyof T)[])} properties Properties to expand on.\r\n * @returns {ODataQueryFilterOptions}\r\n *\r\n * @memberof ODataQueryFilterOptions\r\n */\r\n Expand(properties: keyof T | (keyof T)[]): ODataQueryFilterOptions {\r\n if (typeof properties === \"string\")\r\n this.addToQuery(\"$expand=\" + properties);\r\n else this.addToQuery(\"$expand=\" + (<(keyof T)[]>properties).join(\",\"));\r\n return this;\r\n }\r\n\r\n /**\r\n * Searches for a value in the entity set as specified in OData protocol\r\n *\r\n * @param {string} searchExpression Search specified in OData protocol\r\n * @returns {ODataQueryFilterOptions}\r\n *\r\n * @memberof ODataQueryFilterOptions\r\n */\r\n Search(searchExpression: string): ODataQueryFilterOptions {\r\n this.addToQuery(\"$search=\" + searchExpression);\r\n return this;\r\n }\r\n\r\n Custom(customData: string): ODataQueryFilterOptions {\r\n this.addToQuery(customData);\r\n return this;\r\n }\r\n }\r\n\r\n export type Order = \"asc\" | \"desc\";\r\n\r\n export type Partial = { [P in keyof T]?: T[P] };\r\n\r\n /**\r\n *\r\n * A generic entity set which represents the content of the entity container.\r\n *\r\n * @export\r\n * @class EntitySet\r\n * @template T\r\n */\r\n export class EntitySet extends ODataQueryFilterOptions {\r\n /**\r\n * Creates an instance of EntitySet.\r\n *\r\n * @param {string} name of the EntitySet (Will determine the address of the entityset, too -> address + \"/\" + name)\r\n * @param {string} address of the service\r\n * @param {string} key of the EntitySet\r\n * @param {odatajs.Header} [headers] additional headers: Per default there are \"Content-Type\" and \"Accept\".\r\n *\r\n * @memberOf EntitySet\r\n */\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super();\r\n this.Name = name;\r\n this.Address = address.replace(/\\/$/, \"\") + \"/\" + name;\r\n this.Key = key;\r\n this.Headers = {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\"\r\n };\r\n\r\n for (var attrname in additionalHeaders) {\r\n this.Headers[attrname] = additionalHeaders[attrname];\r\n }\r\n }\r\n\r\n /**\r\n * Name of the Entity Set (which is appended to the URI)\r\n * @memberOf EntitySet\r\n */\r\n readonly Name: string;\r\n /**\r\n * Address of the OData Service\r\n * @memberOf EntitySet\r\n */\r\n readonly Address: string;\r\n\r\n /**\r\n * All headers appended to each request.\r\n *\r\n * @type {odatajs.Header}\r\n * @memberOf EntitySet\r\n */\r\n readonly Headers: odatajs.Header;\r\n\r\n /**\r\n * Key of the entity\r\n * @memberOf EntitySet\r\n */\r\n readonly Key: string;\r\n\r\n /**\r\n * Gets all entries of an entity set. Use method chaining (call.Skip(10).Top(10).Get() before you call this method to create a query.\r\n *\r\n * @returns {Promise}\r\n *\r\n * @memberof EntitySet\r\n */\r\n Get(): Promise;\r\n /**\r\n * Gets one entry of the entity set by id.\r\n *\r\n * @param {string} id\r\n * @returns {Promise}\r\n *\r\n * @memberof EntitySet\r\n */\r\n Get(id: string): Promise;\r\n Get(id?: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n let requri: string;\r\n if (id) {\r\n requri = this.Address + \"(\" + id + \")\";\r\n } else {\r\n requri = this.Address;\r\n }\r\n requri += this.resolveODataOptions();\r\n this.emptyQuery();\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: Method[Method.GET],\r\n requestUri: requri\r\n };\r\n\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n if (id) {\r\n resolve(data);\r\n } else {\r\n resolve(data.value);\r\n }\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\\n\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Replaces an existing value in the entity collection.\r\n *\r\n * @param {T} value to replace\r\n * @returns {Promise} for async Operation. Use `await` keyword to get value or `.then` callback.\r\n *\r\n * @memberOf EntitySet\r\n */\r\n Put(value: T): Promise {\r\n return new Promise((resolve, reject) => {\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: Method[Method.PUT],\r\n requestUri: this.Address + \"(\" + value[this.Key] + \")\",\r\n data: value\r\n };\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n resolve();\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\\n\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Adds a new entry to an EntitySet\r\n *\r\n * @param {T} value to ad to the EntitySet\r\n * @returns {Promise} for async Operation. Use `await` keyword to get value or `.then` callback.\r\n *\r\n * @memberOf EntitySet\r\n */\r\n Post(value: T): Promise {\r\n return new Promise((resolve, reject) => {\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: Method[Method.POST],\r\n requestUri: this.Address,\r\n data: value\r\n };\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n resolve(data as T);\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\\n\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n\r\n Patch(delta: Partial | T): Promise;\r\n Patch(oldvalue: T, newValue: T): Promise;\r\n Patch(oldvalordelta: T | Partial, newval?: T): Promise {\r\n if (newval) oldvalordelta = this.getDelta(oldvalordelta as T, newval);\r\n\r\n return new Promise((resolve, reject) => {\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: Method[Method.PATCH],\r\n requestUri: this.Address,\r\n data: oldvalordelta\r\n };\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n resolve();\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\\n\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n\r\n private getDelta(oldval: T, newVal: T): Partial {\r\n let ret: any = {};\r\n for (let prop in newVal)\r\n if (oldval[prop] != newVal[prop]) ret[prop] = newVal[prop];\r\n return ret;\r\n }\r\n\r\n /**\r\n * Deletes a value from the entity set.\r\n *\r\n * @param {T} value to delete\r\n * @returns {Promise} for async Operation. Use `await` keyword to get value or `.then` callback.\r\n *\r\n * @memberOf EntitySet\r\n */\r\n Delete(value: T): Promise {\r\n return new Promise((resolve, reject) => {\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: Method[Method.DELETE],\r\n requestUri: this.Address + \"(\" + value[this.Key] + \")\"\r\n };\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n resolve();\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\\n\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n\r\n Count(): Promise {\r\n return new Promise((resolve, reject) => {\r\n const requri = this.Address + \"/$count/\" + this.resolveODataOptions();\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: Method[Method.GET],\r\n requestUri: requri\r\n };\r\n\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n resolve(data);\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\\n\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n }\r\n\r\n class EntityContainer {\r\n constructor(name: string, uri: string) {\r\n this.Name = name;\r\n this.Uri = uri;\r\n }\r\n\r\n readonly Name: string;\r\n readonly Uri: string;\r\n }\r\n}\r\n\r\ndeclare namespace odatajs {\r\n class oData {\r\n static request(\r\n request: Request,\r\n success?: (data: any, response: any) => void,\r\n error?: (error: any) => void,\r\n handler?,\r\n httpClient?,\r\n metadata?\r\n );\r\n }\r\n\r\n interface Request {\r\n requestUri: string;\r\n method: string;\r\n headers: Header | Header[];\r\n data?: any;\r\n }\r\n\r\n interface Header {\r\n [name: string]: string;\r\n }\r\n}\r\n\r\ntype JSDate = Date;\r\n\r\ndeclare namespace Edm {\r\n export type Duration = string;\r\n export type Binary = string;\r\n export type Boolean = boolean;\r\n export type Byte = number;\r\n export type Date = JSDate;\r\n export type DateTimeOffset = JSDate;\r\n export type Decimal = number;\r\n export type Double = number;\r\n export type Guid = string;\r\n export type Int16 = number;\r\n export type Int32 = number;\r\n export type Int64 = number;\r\n export type SByte = number;\r\n export type Single = number;\r\n export type String = string;\r\n export type TimeOfDay = string;\r\n export type Stream = string;\r\n export type GeographyPoint = any;\r\n}\r\n\r\nconsole.log(\"Loaded odataproxybase\");\r\n\r\n// ###################################### Implementation ################\r\n\r\nexport namespace Common {\r\n // Entity types\r\n\r\n // Complex types\r\n export interface Address {\r\n Street: Edm.String;\r\n No: Edm.String;\r\n City: Edm.String;\r\n PostCode: Edm.String;\r\n Country: Edm.String;\r\n CountryInfo: Library.CountryInfo;\r\n Region: Edm.String;\r\n RegionInfo: Library.RegionInfo;\r\n }\r\n\r\n export interface AddressGeoCoded extends Common.Address {\r\n Location: Common.Location;\r\n }\r\n\r\n export interface InvoiceAddress extends Common.Address {\r\n }\r\n\r\n export interface Location {\r\n Longitude: Edm.Double;\r\n Latitude: Edm.Double;\r\n }\r\n\r\n // Enum Types\r\n\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace Library {\r\n // Entity types\r\n export interface Country {\r\n Code: Edm.String;\r\n Id: Edm.Int32;\r\n IsoNo: Edm.Int16;\r\n Name: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n Buildings?: PropertyCore.Building[];\r\n Regions?: Library.Region[];\r\n AccountDataProcessingAgreements?: Operations.AccountDataProcessingAgreement[];\r\n }\r\n\r\n export interface Region {\r\n Code: Edm.String;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n Country?: Library.Country;\r\n Buildings?: PropertyCore.Building[];\r\n }\r\n\r\n // Complex types\r\n export interface CountryInfo {\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n }\r\n\r\n export interface RegionInfo {\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n }\r\n\r\n // Enum Types\r\n\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace Operations {\r\n // Entity types\r\n export interface Account {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n MaxBuildingCount: Edm.Int32;\r\n IsSubscriptionProcessed: Edm.Boolean;\r\n SapNo: Edm.String;\r\n StartDate: Edm.DateTimeOffset;\r\n EndDate: Edm.DateTimeOffset;\r\n AccountType: Operations.AccountTypes;\r\n Created: Edm.DateTimeOffset;\r\n AccountProfile?: Operations.AccountProfile;\r\n User?: Operations.User;\r\n Statistics?: Api.Odata.AccountStatistics;\r\n AccountDataProcessingAgreements?: Operations.AccountDataProcessingAgreement[];\r\n ActionLogs?: PropertyCore.ActionLog[];\r\n Buildings?: PropertyCore.Building[];\r\n MaintenanceContracts?: PropertyCore.MaintenanceContract[];\r\n ServiceProviders?: PropertyCore.ServiceProvider[];\r\n SubscriptionPlan?: PropertyCore.SubscriptionPlan;\r\n Roles?: Operations.AccountRole[];\r\n Rights?: Operations.AccountRights[];\r\n }\r\n\r\n export interface User {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Title: Edm.String;\r\n Position: Edm.String;\r\n FirstName: Edm.String;\r\n LastName: Edm.String;\r\n PhoneBusiness: Edm.String;\r\n PhoneMobile: Edm.String;\r\n Email: Edm.String;\r\n LoginSource: Edm.Int32;\r\n IsTuevEmployee: Edm.Boolean;\r\n IsMale: Edm.Boolean;\r\n IsReportSubscribed: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n Accounts?: Operations.Account[];\r\n ServiceProviders?: PropertyCore.ServiceProvider[];\r\n Documents?: PropertyCore.Document[];\r\n Images?: PropertyCore.Image[];\r\n OperatorTasks?: PropertyCore.OperatorTask[];\r\n QRCodes?: PropertyCore.QRCode[];\r\n QRCodeAssigns?: PropertyCore.QRCodeAssign[];\r\n Rooms?: PropertyCore.Room[];\r\n MaintenanceContracts?: PropertyCore.MaintenanceContract[];\r\n Buildings?: PropertyCore.Building[];\r\n Responses?: PropertyCore.EventResponse[];\r\n }\r\n\r\n export interface AccountRole {\r\n Id: Edm.Int32;\r\n Role: Api.Odata.AccountRoles;\r\n User?: Operations.User;\r\n }\r\n\r\n export interface AccountProfile {\r\n Identity: Edm.Guid;\r\n Contact: Edm.String;\r\n ContactPhone: Edm.String;\r\n ContactMail: Edm.String;\r\n Name: Edm.String;\r\n PartnerNo: Edm.String;\r\n VatCode: Edm.String;\r\n AddressAddition: Edm.String;\r\n Address: Common.Address;\r\n InvoiceName: Edm.String;\r\n InvoicePartnerNo: Edm.String;\r\n InvoiceCode: Edm.String;\r\n InvoiceAddressAddition: Edm.String;\r\n InvoiceAddress: Common.InvoiceAddress;\r\n }\r\n\r\n export interface AccountDataProcessingAgreement {\r\n Identity: Edm.Guid;\r\n TimeStamp: Edm.DateTimeOffset;\r\n LoginName: Edm.String;\r\n Name: Edm.String;\r\n Street: Edm.String;\r\n HouseNo: Edm.String;\r\n AddressAddition: Edm.String;\r\n ZipCode: Edm.String;\r\n City: Edm.String;\r\n Country?: Library.Country;\r\n }\r\n\r\n export interface AccountRights {\r\n Identity: Edm.Guid;\r\n CanRead: Edm.Boolean;\r\n CanEdit: Edm.Boolean;\r\n CanDelete: Edm.Boolean;\r\n }\r\n\r\n export interface AccountSubscriptionHistory {\r\n Id: Edm.Int32;\r\n RefDate: Edm.DateTimeOffset;\r\n }\r\n\r\n export interface BuildingRole {\r\n Id: Edm.Int32;\r\n Role: Api.Odata.BuildingRoles;\r\n User?: Operations.User;\r\n }\r\n\r\n export interface Invitation {\r\n Identity: Edm.Guid;\r\n Email: Edm.String;\r\n AccessCode: Edm.Guid;\r\n ServiceProvider?: PropertyCore.ServiceProvider;\r\n }\r\n\r\n // Complex types\r\n\r\n // Enum Types\r\n // Enum Values: Unknown = 0, FacilityManagement = 1, ServiceProvider = 2\r\n export enum AccountTypes {\r\n Unknown = \"Unknown\",\r\n FacilityManagement = \"FacilityManagement\",\r\n ServiceProvider = \"ServiceProvider\"\r\n }\r\n\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace PropertyCore {\r\n // Entity types\r\n export interface Building {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Address: Common.Address;\r\n Location: Common.Location;\r\n Size: Edm.Int32;\r\n YearOfConstruction: Edm.Int32;\r\n Created: Edm.DateTimeOffset;\r\n Account?: Operations.Account;\r\n User?: Operations.User;\r\n Equipments?: PropertyCore.Equipment[];\r\n Images?: PropertyCore.Image[];\r\n Events?: PropertyCore.Event[];\r\n Rooms?: PropertyCore.Room[];\r\n UsageTypes?: PropertyCore.UsageType[];\r\n Floors?: PropertyCore.Floor[];\r\n Statistics?: PropertyCore.BuildingStatistics;\r\n Roles?: Operations.BuildingRole[];\r\n Documents?: PropertyCore.Document[];\r\n }\r\n\r\n export interface BuildingStatistics {\r\n Id: Edm.Int32;\r\n EquipmentCount: Edm.Int32;\r\n ModuleCount: Edm.Int32;\r\n UsageTypeCount: Edm.Int32;\r\n MissingDocumentsCount: Edm.Int32;\r\n RoomCount: Edm.Int32;\r\n FloorCount: Edm.Int32;\r\n }\r\n\r\n export interface Equipment {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Comment: Edm.String;\r\n InstallNo: Edm.Int32;\r\n CustomId: Edm.String;\r\n TuevNo: Edm.String;\r\n IsRenterResponsibility: Edm.Boolean;\r\n IsNoMaintenanceDesired: Edm.Boolean;\r\n HasInspectionDutiesActivated: Edm.Boolean;\r\n EquipmentType?: PropertyCore.EquipmentType;\r\n Building?: PropertyCore.Building;\r\n Section?: PropertyCore.Section;\r\n Room?: PropertyCore.Room;\r\n Events?: PropertyCore.Event[];\r\n Modules?: PropertyCore.Module[];\r\n Images?: PropertyCore.Image[];\r\n InspectionDuties?: PropertyCore.InspectionDuty[];\r\n QRCodeAssigns?: PropertyCore.QRCodeAssign[];\r\n Statistics?: Api.Odata.EquipmentStatistics;\r\n Documents?: PropertyCore.Document[];\r\n }\r\n\r\n export interface EquipmentType {\r\n Code: Edm.String;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n SubNo: Edm.Int32;\r\n Created: Edm.DateTimeOffset;\r\n CostGroup?: PropertyCore.CostGroup;\r\n Equipments?: PropertyCore.Equipment[];\r\n ModuleTypes?: PropertyCore.ModuleType[];\r\n }\r\n\r\n export interface Module {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Quantity: Edm.Int32;\r\n CustomId: Edm.String;\r\n Name: Edm.String;\r\n Comment: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n Equipment?: PropertyCore.Equipment;\r\n InstallNo?: Edm.Int32;\r\n ModuleType?: PropertyCore.ModuleType;\r\n Room?: PropertyCore.Room;\r\n MaintenanceContract?: PropertyCore.MaintenanceContract;\r\n Section?: PropertyCore.Section;\r\n Images?: PropertyCore.Image[];\r\n InspectionDuties?: PropertyCore.InspectionDuty[];\r\n Statistics?: Api.Odata.ModuleStatistics;\r\n }\r\n\r\n export interface ModuleType {\r\n Code: Edm.String;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n EquipmentType?: PropertyCore.EquipmentType;\r\n Modules?: PropertyCore.Module[];\r\n }\r\n\r\n export interface Schedule {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Cycle: Edm.Int32;\r\n CycleUnit: Api.Odata.CycleUnits;\r\n CycleStart: Edm.DateTimeOffset;\r\n CycleNext: Edm.DateTimeOffset;\r\n CycleStop: Edm.DateTimeOffset;\r\n InspectionDuty?: PropertyCore.InspectionDuty;\r\n MaintenanceContract?: PropertyCore.MaintenanceContract;\r\n Events?: PropertyCore.Event[];\r\n }\r\n\r\n export interface Event {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Type: PropertyCore.EventTypes;\r\n Guidelines: Edm.String;\r\n Qualification: Edm.String;\r\n Name: Edm.String;\r\n DueDate: Edm.DateTimeOffset;\r\n RefDate: Edm.DateTimeOffset;\r\n ClosedDate: Edm.DateTimeOffset;\r\n IsSkipped: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n IsDefectHandler: Edm.Boolean;\r\n Response?: PropertyCore.EventResponse;\r\n Parent?: PropertyCore.Event;\r\n Schedule?: PropertyCore.Schedule;\r\n ServiceProvider?: PropertyCore.ServiceProvider;\r\n Building?: PropertyCore.Building;\r\n Documents?: PropertyCore.Document[];\r\n Equipment?: PropertyCore.Equipment;\r\n Module?: PropertyCore.Module;\r\n KpiMarker?: PropertyCore.EventKpiMarker;\r\n }\r\n\r\n export interface EventKpiMarker {\r\n IsActive: Edm.Boolean;\r\n IsInFocus: Edm.Boolean;\r\n IsPlanned: Edm.Boolean;\r\n IsDone: Edm.Boolean;\r\n IsOverdue: Edm.Boolean;\r\n IsDefective: Edm.Boolean;\r\n IsMissingDocuments: Edm.Boolean;\r\n }\r\n\r\n export interface MaintenanceContract {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Title: Edm.String;\r\n No: Edm.String;\r\n CostServiceHourNetAmount: Edm.Int32;\r\n CostApproachNetAmount: Edm.Int32;\r\n AmountNet: Edm.Decimal;\r\n ApproachFeeType: Api.Odata.MaintenanceContractApproachFeeTypes;\r\n CancellationDigit: Edm.Int32;\r\n CancellationPeriod: Api.Odata.MaintenanceContractCancellationPeriods;\r\n CancellationUnit: Api.Odata.MaintenanceContractCancellationUnits;\r\n CancellationCalendar: Api.Odata.MaintenanceContractCancellationCalendars;\r\n StartDate: Edm.DateTimeOffset;\r\n EndDate: Edm.DateTimeOffset;\r\n IsGeneralAgreement: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n User?: Operations.User;\r\n Account?: Operations.Account;\r\n ServiceProvider?: PropertyCore.ServiceProvider;\r\n Modules?: PropertyCore.Module[];\r\n MaintenanceContractMappings?: PropertyCore.MaintenanceContractMapping[];\r\n }\r\n\r\n export interface MaintenanceContractMapping {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n IsDisabled: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n Equipment?: PropertyCore.Equipment;\r\n Schedule?: PropertyCore.Schedule;\r\n MaintenanceContract?: PropertyCore.MaintenanceContract;\r\n }\r\n\r\n export interface Room {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n FloorRef: System.Uri;\r\n BuildingRef: System.Uri;\r\n Created: Edm.DateTimeOffset;\r\n Statistics?: Api.Odata.RoomStatistics;\r\n User?: Operations.User;\r\n Floor?: PropertyCore.Floor;\r\n Building?: PropertyCore.Building;\r\n Equipments?: PropertyCore.Equipment[];\r\n Modules?: PropertyCore.Module[];\r\n }\r\n\r\n export interface Floor {\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Order: Edm.Int32;\r\n Created: Edm.DateTimeOffset;\r\n Rooms?: PropertyCore.Room[];\r\n Buildings?: PropertyCore.Building[];\r\n }\r\n\r\n export interface Section {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n Equipments?: PropertyCore.Equipment[];\r\n Modules?: PropertyCore.Module[];\r\n }\r\n\r\n export interface UsageType {\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n Regions?: Library.Region[];\r\n }\r\n\r\n export interface CostGroup {\r\n Id: Edm.Int32;\r\n Code: Edm.String;\r\n Name: Edm.String;\r\n No: Edm.Int32;\r\n IsDisabled: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n Branch?: PropertyCore.Branch;\r\n EquipmentTypes?: PropertyCore.EquipmentType[];\r\n }\r\n\r\n export interface ActionLog {\r\n Id: Edm.Int32;\r\n IsAnynomous: Edm.Boolean;\r\n Operation: PropertyCore.ActionLogOperations;\r\n Element: PropertyCore.ActionLogElements;\r\n Created: Edm.DateTimeOffset;\r\n Account?: Operations.Account;\r\n User?: Operations.User;\r\n Building?: PropertyCore.Building;\r\n Equipment?: PropertyCore.Equipment;\r\n Module?: PropertyCore.Module;\r\n Document?: PropertyCore.Document;\r\n MaintenanceContract?: PropertyCore.MaintenanceContract;\r\n ServiceProvider?: PropertyCore.ServiceProvider;\r\n Event?: PropertyCore.Event;\r\n }\r\n\r\n export interface ServiceProvider {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Code: Edm.String;\r\n Name: Edm.String;\r\n ContactPerson: Edm.String;\r\n Department: Edm.String;\r\n ContactPhone1: Edm.String;\r\n ContactPhone2: Edm.String;\r\n ContactEmailAdd: Edm.String;\r\n ContractContactPerson: Edm.String;\r\n ContractContactEmailAdd: Edm.String;\r\n ContractContactPhone: Edm.String;\r\n IsInspection: Edm.Boolean;\r\n IsMaintenance: Edm.Boolean;\r\n Type: Edm.Int32;\r\n Address: Common.Address;\r\n Created: Edm.DateTimeOffset;\r\n User?: Operations.User;\r\n Account?: Operations.Account;\r\n Invitation?: Operations.Invitation;\r\n Statistics?: Api.Odata.ServiceProviderStatistics;\r\n Events?: PropertyCore.Event[];\r\n MaintenanceContracts?: PropertyCore.MaintenanceContract[];\r\n ServiceAccount?: Operations.Account;\r\n }\r\n\r\n export interface Document {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Description: Edm.String;\r\n Name: Edm.String;\r\n Size: Edm.Int32;\r\n FileType: Edm.String;\r\n IsDuplicated: Edm.Boolean;\r\n IsDeleted: Edm.Boolean;\r\n IsVirtual: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n User?: Operations.User;\r\n DocumentType?: PropertyCore.DocumentType;\r\n Buildings?: PropertyCore.Building[];\r\n Equipments?: PropertyCore.Equipment[];\r\n Events?: PropertyCore.Event[];\r\n }\r\n\r\n export interface DocumentType {\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Html: Edm.String;\r\n Mark: Edm.String;\r\n IsRequired: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n Documents?: PropertyCore.Document[];\r\n OperatorTasks?: PropertyCore.OperatorTask[];\r\n }\r\n\r\n export interface DocumentTypeGroup {\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n DocumentTypes?: PropertyCore.DocumentType[];\r\n }\r\n\r\n export interface Image {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Comment: Edm.String;\r\n FileName: Edm.String;\r\n FileSize: Edm.Int32;\r\n FileType: Edm.String;\r\n DownloadToken: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n User?: Operations.User;\r\n Module?: PropertyCore.Module;\r\n Equipment?: PropertyCore.Equipment;\r\n Building?: PropertyCore.Building;\r\n }\r\n\r\n export interface SubscriptionPlan {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n AccountType: Operations.AccountTypes;\r\n Code: Edm.String;\r\n IsActive: Edm.Boolean;\r\n LimitBuildings: Edm.Int32;\r\n PricePerYear: Edm.Decimal;\r\n }\r\n\r\n export interface LegalArea {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n Description: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n OperatorTasks?: PropertyCore.OperatorTask[];\r\n }\r\n\r\n export interface OperatorTask {\r\n Identity: Edm.String;\r\n Id: Edm.Int32;\r\n Guidelines: Edm.String;\r\n Subject: Edm.String;\r\n Deadline: Edm.String;\r\n Qualification: Edm.String;\r\n Type: Edm.String;\r\n BuildingType: Edm.String;\r\n Rating: Edm.Int32;\r\n IsRelevant: Edm.Boolean;\r\n TextPassage: Edm.String;\r\n Cycle: Edm.Int32;\r\n CycleUnit: Api.Odata.CycleUnits;\r\n RequiredDocument: Edm.Int32;\r\n Created: Edm.DateTimeOffset;\r\n User?: Operations.User;\r\n DocumentType?: PropertyCore.DocumentType;\r\n LegalArea?: PropertyCore.LegalArea;\r\n InspectionDuties?: PropertyCore.InspectionDuty[];\r\n }\r\n\r\n export interface InspectionDuty {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n IsDisabled: Edm.Boolean;\r\n Module?: PropertyCore.Module;\r\n OperatorTask?: PropertyCore.OperatorTask;\r\n Equipment?: PropertyCore.Equipment;\r\n Schedule?: PropertyCore.Schedule;\r\n }\r\n\r\n export interface QRCode {\r\n Identity: Edm.String;\r\n Id: Edm.Int32;\r\n Created: Edm.DateTimeOffset;\r\n QRCodeAssigns?: PropertyCore.QRCodeAssign[];\r\n User?: Operations.User;\r\n }\r\n\r\n export interface QRCodeAssign {\r\n Id: Edm.Int32;\r\n IsApp: Edm.Boolean;\r\n Created: Edm.DateTimeOffset;\r\n User?: Operations.User;\r\n QRCode?: PropertyCore.QRCode;\r\n Equipment?: PropertyCore.Equipment;\r\n }\r\n\r\n export interface Branch {\r\n Id: Edm.Int32;\r\n Code: Edm.String;\r\n Name: Edm.String;\r\n Created: Edm.DateTimeOffset;\r\n CostGroups?: PropertyCore.CostGroup[];\r\n }\r\n\r\n export interface EventResponse {\r\n Id: Edm.Int32;\r\n Comment: Edm.String;\r\n DefectRating: PropertyCore.DefectRatings;\r\n HasDefect: Edm.Boolean;\r\n IsServiceComplete: Edm.Boolean;\r\n IsDefectProcessed: Edm.Boolean;\r\n ResponseDate: Edm.DateTimeOffset;\r\n UpdateDate: Edm.DateTimeOffset;\r\n Created: Edm.DateTimeOffset;\r\n User?: Operations.User;\r\n }\r\n\r\n // Complex types\r\n\r\n // Enum Types\r\n // Enum Values: Undefined = 0, Create = 1, Update = 2, Delete = 3, Feedback = 4, Qualified = 5, Download = 6\r\n export enum ActionLogOperations {\r\n Undefined = \"Undefined\",\r\n Create = \"Create\",\r\n Update = \"Update\",\r\n Delete = \"Delete\",\r\n Feedback = \"Feedback\",\r\n Qualified = \"Qualified\",\r\n Download = \"Download\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, Document = 1, Image = 2, Attribute = 3, Link = 4, Event = 5, Application = 6, InspectionDuty = 7, AndroidApp = 8\r\n export enum ActionLogElements {\r\n Undefined = \"Undefined\",\r\n Document = \"Document\",\r\n Image = \"Image\",\r\n Attribute = \"Attribute\",\r\n Link = \"Link\",\r\n Event = \"Event\",\r\n Application = \"Application\",\r\n InspectionDuty = \"InspectionDuty\",\r\n AndroidApp = \"AndroidApp\"\r\n }\r\n\r\n // Enum Values: Inspection = 1, FollowUpInspection = 2, Maintenance = 3, Repair = 4, Custom = 5\r\n export enum EventTypes {\r\n Undefined = \"Undefined\",\r\n Inspection = \"Inspection\",\r\n FollowUpInspection = \"FollowUpInspection\",\r\n Maintenance = \"Maintenance\",\r\n Repair = \"Repair\",\r\n Custom = \"Custom\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, Unrated = 1, Minor = 2, Major = 3, Dangerous = 4\r\n export enum DefectRatings {\r\n Undefined = \"Undefined\",\r\n Unrated = \"Unrated\",\r\n Minor = \"Minor\",\r\n Major = \"Major\",\r\n Dangerous = \"Dangerous\"\r\n }\r\n\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace ZZZ {\r\n // Entity types\r\n export interface ZZZAccount {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n Name: Edm.String;\r\n User?: ZZZ.ZZZUser;\r\n }\r\n\r\n export interface ZZZUser {\r\n Identity: Edm.Guid;\r\n Id: Edm.Int32;\r\n }\r\n\r\n // Complex types\r\n\r\n // Enum Types\r\n\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace System {\r\n // Entity types\r\n\r\n // Complex types\r\n export interface Uri {\r\n Segments: Edm.String[];\r\n }\r\n\r\n // Enum Types\r\n\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace Api.Odata {\r\n // Entity types\r\n export interface ServiceProviderStatistics {\r\n Id: Edm.Int32;\r\n MaintenanceContractCount: Edm.Int32;\r\n EquipmentEventCount: Edm.Int32;\r\n ModuleEventCount: Edm.Int32;\r\n }\r\n\r\n export interface RoomStatistics {\r\n Id: Edm.Int32;\r\n EquipmentCount: Edm.Int32;\r\n ModuleCount: Edm.Int32;\r\n }\r\n\r\n export interface EquipmentStatistics {\r\n Id: Edm.Int32;\r\n FabNo: Edm.String;\r\n AlternativeNo: Edm.String;\r\n ModuleCount: Edm.Int32;\r\n MaintenanceContractCount: Edm.Int32;\r\n ImageCount: Edm.Int32;\r\n QRCodeCount: Edm.Int32;\r\n OperatorTaskCount: Edm.Int32;\r\n InspectionDutyCount: Edm.Int32;\r\n }\r\n\r\n export interface ModuleStatistics {\r\n Id: Edm.Int32;\r\n ImageCount: Edm.Int32;\r\n }\r\n\r\n export interface AccountStatistics {\r\n Id: Edm.Int32;\r\n BuildingCount: Edm.Int32;\r\n }\r\n\r\n // Complex types\r\n\r\n // Enum Types\r\n // Enum Values: NotSpecified = 0, Year = 1, Month = 2, Week = 3, Day = 4\r\n export enum CycleUnits {\r\n NotSpecified = \"NotSpecified\",\r\n Year = \"Year\",\r\n Month = \"Month\",\r\n Week = \"Week\",\r\n Day = \"Day\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, Flat = 1, PerKilometer = 2\r\n export enum MaintenanceContractApproachFeeTypes {\r\n Undefined = \"Undefined\",\r\n Flat = \"Flat\",\r\n PerKilometer = \"PerKilometer\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, MonthEnd = 1, QuarterEnd = 2, YearEnd = 3\r\n export enum MaintenanceContractCancellationPeriods {\r\n Undefined = \"Undefined\",\r\n MonthEnd = \"MonthEnd\",\r\n QuarterEnd = \"QuarterEnd\",\r\n YearEnd = \"YearEnd\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, Day = 1, Week = 2, Month = 3\r\n export enum MaintenanceContractCancellationUnits {\r\n Undefined = \"Undefined\",\r\n Day = \"Day\",\r\n Week = \"Week\",\r\n Month = \"Month\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, CalendarYear = 1, ContractYear = 2\r\n export enum MaintenanceContractCancellationCalendars {\r\n Undefined = \"Undefined\",\r\n CalendarYear = \"CalendarYear\",\r\n ContractYear = \"ContractYear\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, Administrator = 1\r\n export enum AccountRoles {\r\n Undefined = \"Undefined\",\r\n Administrator = \"Administrator\"\r\n }\r\n\r\n // Enum Values: Undefined = 0, Manager = 2\r\n export enum BuildingRoles {\r\n Undefined = \"Undefined\",\r\n Manager = \"Manager\"\r\n }\r\n\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace Tools {\r\n // Entity types\r\n // Complex types\r\n // Enum Types\r\n // Entity container\r\n //EntitySets\r\n}\r\n\r\nexport namespace ObjektBrief {\r\n // Entity types\r\n\r\n // Complex types\r\n\r\n // Enum Types\r\n\r\n // Entity container\r\n export class Container extends odatatools.ProxyBase {\r\n constructor(\r\n address: string,\r\n name?: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(address, name, additionalHeaders);\r\n this.Country = new CountryEntitySet(\r\n \"Country\",\r\n address,\r\n \"Code\",\r\n additionalHeaders\r\n );\r\n this.Region = new RegionEntitySet(\r\n \"Region\",\r\n address,\r\n \"Code\",\r\n additionalHeaders\r\n );\r\n this.User = new UserEntitySet(\r\n \"User\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.Account = new AccountEntitySet(\r\n \"Account\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.AccountRole = new AccountRoleEntitySet(\r\n \"AccountRole\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.AccountProfile = new AccountProfileEntitySet(\r\n \"AccountProfile\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.AccountDataProcessingAgreement = new AccountDataProcessingAgreementEntitySet(\r\n \"AccountDataProcessingAgreement\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.AccountRights = new AccountRightsEntitySet(\r\n \"AccountRights\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.AccountSubscriptionHistory = new AccountSubscriptionHistoryEntitySet(\r\n \"AccountSubscriptionHistory\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.BuildingRole = new BuildingRoleEntitySet(\r\n \"BuildingRole\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.Invitation = new InvitationEntitySet(\r\n \"Invitation\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.Building = new BuildingEntitySet(\r\n \"Building\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.BuildingStatistics = new BuildingStatisticsEntitySet(\r\n \"BuildingStatistics\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.Equipment = new EquipmentEntitySet(\r\n \"Equipment\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.EquipmentType = new EquipmentTypeEntitySet(\r\n \"EquipmentType\",\r\n address,\r\n \"Code\",\r\n additionalHeaders\r\n );\r\n this.Module = new ModuleEntitySet(\r\n \"Module\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.ModuleType = new ModuleTypeEntitySet(\r\n \"ModuleType\",\r\n address,\r\n \"Code\",\r\n additionalHeaders\r\n );\r\n this.Schedule = new ScheduleEntitySet(\r\n \"Schedule\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.Event = new EventEntitySet(\r\n \"Event\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.MaintenanceContract = new MaintenanceContractEntitySet(\r\n \"MaintenanceContract\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.MaintenanceContractMapping = new MaintenanceContractMappingEntitySet(\r\n \"MaintenanceContractMapping\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.Room = new RoomEntitySet(\r\n \"Room\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.Floor = new FloorEntitySet(\r\n \"Floor\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.Section = new SectionEntitySet(\r\n \"Section\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.UsageType = new UsageTypeEntitySet(\r\n \"UsageType\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.CostGroup = new CostGroupEntitySet(\r\n \"CostGroup\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.ActionLog = new ActionLogEntitySet(\r\n \"ActionLog\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.ServiceProvider = new ServiceProviderEntitySet(\r\n \"ServiceProvider\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.Document = new DocumentEntitySet(\r\n \"Document\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.DocumentType = new DocumentTypeEntitySet(\r\n \"DocumentType\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.DocumentTypeGroup = new DocumentTypeGroupEntitySet(\r\n \"DocumentTypeGroup\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.Image = new ImageEntitySet(\r\n \"Image\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.SubscriptionPlan = new SubscriptionPlanEntitySet(\r\n \"SubscriptionPlan\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.LegalArea = new LegalAreaEntitySet(\r\n \"LegalArea\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.OperatorTask = new OperatorTaskEntitySet(\r\n \"OperatorTask\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.InspectionDuty = new InspectionDutyEntitySet(\r\n \"InspectionDuty\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.QRCode = new QRCodeEntitySet(\r\n \"QRCode\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.QRCodeAssign = new QRCodeAssignEntitySet(\r\n \"QRCodeAssign\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.Branch = new BranchEntitySet(\r\n \"Branch\",\r\n address,\r\n \"Id\",\r\n additionalHeaders\r\n );\r\n this.ZZZAccount = new ZZZAccountEntitySet(\r\n \"ZZZAccount\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n this.ZZZUser = new ZZZUserEntitySet(\r\n \"ZZZUser\",\r\n address,\r\n \"Identity\",\r\n additionalHeaders\r\n );\r\n }\r\n\r\n Country: CountryEntitySet;\r\n Region: RegionEntitySet;\r\n User: UserEntitySet;\r\n Account: AccountEntitySet;\r\n AccountRole: AccountRoleEntitySet;\r\n AccountProfile: AccountProfileEntitySet;\r\n AccountDataProcessingAgreement: AccountDataProcessingAgreementEntitySet;\r\n AccountRights: AccountRightsEntitySet;\r\n AccountSubscriptionHistory: AccountSubscriptionHistoryEntitySet;\r\n BuildingRole: BuildingRoleEntitySet;\r\n Invitation: InvitationEntitySet;\r\n Building: BuildingEntitySet;\r\n BuildingStatistics: BuildingStatisticsEntitySet;\r\n Equipment: EquipmentEntitySet;\r\n EquipmentType: EquipmentTypeEntitySet;\r\n Module: ModuleEntitySet;\r\n ModuleType: ModuleTypeEntitySet;\r\n Schedule: ScheduleEntitySet;\r\n Event: EventEntitySet;\r\n MaintenanceContract: MaintenanceContractEntitySet;\r\n MaintenanceContractMapping: MaintenanceContractMappingEntitySet;\r\n Room: RoomEntitySet;\r\n Floor: FloorEntitySet;\r\n Section: SectionEntitySet;\r\n UsageType: UsageTypeEntitySet;\r\n CostGroup: CostGroupEntitySet;\r\n ActionLog: ActionLogEntitySet;\r\n ServiceProvider: ServiceProviderEntitySet;\r\n Document: DocumentEntitySet;\r\n DocumentType: DocumentTypeEntitySet;\r\n DocumentTypeGroup: DocumentTypeGroupEntitySet;\r\n Image: ImageEntitySet;\r\n SubscriptionPlan: SubscriptionPlanEntitySet;\r\n LegalArea: LegalAreaEntitySet;\r\n OperatorTask: OperatorTaskEntitySet;\r\n InspectionDuty: InspectionDutyEntitySet;\r\n QRCode: QRCodeEntitySet;\r\n QRCodeAssign: QRCodeAssignEntitySet;\r\n Branch: BranchEntitySet;\r\n ZZZAccount: ZZZAccountEntitySet;\r\n ZZZUser: ZZZUserEntitySet;\r\n\r\n // Unbound Functions\r\n\r\n //Unbound Actions\r\n }\r\n\r\n //EntitySets\r\n export class CountryEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class RegionEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class UserEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class AccountEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n\r\n // Bound to entity Actions\r\n AcceptInvitation(\r\n key: Edm.Guid,\r\n Identity: Edm.Guid,\r\n AccessCode: Edm.Guid\r\n ): Promise {\r\n return new Promise((resolve, reject) => {\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: \"POST\",\r\n requestUri:\r\n this.Address + \"(\" + key + \")/ObjektBrief.AcceptInvitation()\",\r\n data: {\r\n Identity: Identity,\r\n AccessCode: AccessCode\r\n }\r\n };\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n resolve(data.value || data);\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n }\r\n\r\n export class AccountRoleEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class AccountProfileEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class AccountDataProcessingAgreementEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class AccountRightsEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class AccountSubscriptionHistoryEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class BuildingRoleEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class InvitationEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class BuildingEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n\r\n // Bound to entity Actions\r\n AddDefaults(key: Edm.Guid): Promise {\r\n return new Promise((resolve, reject) => {\r\n let request: odatajs.Request = {\r\n headers: this.Headers,\r\n method: \"POST\",\r\n requestUri: this.Address + \"(\" + key + \")/ObjektBrief.AddDefaults()\",\r\n data: {}\r\n };\r\n odatajs.oData.request(\r\n request,\r\n (data, response) => {\r\n resolve(data.value || data);\r\n },\r\n error => {\r\n console.error(\r\n error.name +\r\n \" \" +\r\n error.message +\r\n \" | \" +\r\n (error.response | error.response.statusText) +\r\n \":\" +\r\n (error.response | error.response.body)\r\n );\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n }\r\n\r\n export class BuildingStatisticsEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class EquipmentEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class EquipmentTypeEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ModuleEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ModuleTypeEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ScheduleEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class EventEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class MaintenanceContractEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class MaintenanceContractMappingEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class RoomEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class FloorEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class SectionEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class UsageTypeEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class CostGroupEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ActionLogEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ServiceProviderEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class DocumentEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class DocumentTypeEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class DocumentTypeGroupEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ImageEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class SubscriptionPlanEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class LegalAreaEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class OperatorTaskEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class InspectionDutyEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class QRCodeEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class QRCodeAssignEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class BranchEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ZZZAccountEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n\r\n export class ZZZUserEntitySet extends odatatools.EntitySet {\r\n constructor(\r\n name: string,\r\n address: string,\r\n key: string,\r\n additionalHeaders?: odatajs.Header\r\n ) {\r\n super(name, address, key, additionalHeaders);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ODataCoreContext } from '../odata//odata.coreapi';\r\n\r\n@Injectable()\r\nexport class ODataCoreService extends ODataCoreContext {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n}\r\n","// This is generated code. Do not add properties. If bugs need fixing, inform the author of the\r\n// code generator to fix the bugs also in the backend.\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { map, lastValueFrom } from 'rxjs';\r\nimport {\r\n\tODataLiteral, ODataType,\r\n\tODataContext, ODataSettings, ODataEntitySet,\r\n\tODataOperationSet, ODataActionOperation, ODataFunctionOperation, ODataFunctionSetOperation, ODataGetOperation,\r\n\tODataQueryResult\r\n} from './odataclient';\r\n\r\n\r\n//Namespace: ObjektBrief\r\nexport namespace ObjektBrief {\r\n\r\n\t//Enum: AccountRoles\r\n\texport enum AccountRoles {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tAdministrator = \"Administrator\"\r\n\t}\r\n\r\n\t//Enum: AttributeValueTypes\r\n\texport enum AttributeValueTypes {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tText = \"Text\",\r\n\t\tInteger = \"Integer\",\r\n\t\tDate = \"Date\",\r\n\t\tYear = \"Year\",\r\n\t\tDecimal = \"Decimal\",\r\n\t\tSelection = \"Selection\",\r\n\t\tBoolean = \"Boolean\"\r\n\t}\r\n\r\n\t//Enum: BuildingRoles\r\n\texport enum BuildingRoles {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tManager = \"Manager\"\r\n\t}\r\n\r\n\t//Enum: MaintenanceContractCancellationCalendars\r\n\texport enum MaintenanceContractCancellationCalendars {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tCalendarYear = \"CalendarYear\",\r\n\t\tContractYear = \"ContractYear\"\r\n\t}\r\n\r\n\t//Enum: MaintenanceContractCancellationPeriods\r\n\texport enum MaintenanceContractCancellationPeriods {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tMonthEnd = \"MonthEnd\",\r\n\t\tQuarterEnd = \"QuarterEnd\",\r\n\t\tYearEnd = \"YearEnd\"\r\n\t}\r\n\r\n\t//Enum: MaintenanceContractCancellationUnits\r\n\texport enum MaintenanceContractCancellationUnits {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tDay = \"Day\",\r\n\t\tWeek = \"Week\",\r\n\t\tMonth = \"Month\"\r\n\t}\r\n\r\n\t//Enum: OperationBLockReasons\r\n\texport enum OperationBLockReasons {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tREAD = \"READ\",\r\n\t\tPERM = \"PERM\",\r\n\t\tAGE = \"AGE\",\r\n\t\tDEPENDANT = \"DEPENDANT\",\r\n\t\tVALUE = \"VALUE\"\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: Operations\r\nexport namespace Operations {\r\n\r\n\t//Enum: AccountTypes\r\n\texport enum AccountTypes {\r\n\t\tUnknown = \"Unknown\",\r\n\t\tFacilityManagement = \"FacilityManagement\",\r\n\t\tServiceProvider = \"ServiceProvider\"\r\n\t}\r\n\r\n\t//Enum: Operations\r\n\texport enum Operations {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tCreate = \"Create\",\r\n\t\tUpdate = \"Update\",\r\n\t\tDelete = \"Delete\",\r\n\t\tUpdateActivateInspectionDutiesOnly = \"UpdateActivateInspectionDutiesOnly\"\r\n\t}\r\n\r\n\t//Enum: ServiceRequestTypes\r\n\texport enum ServiceRequestTypes {\r\n\t\tTraining = \"Training\",\r\n\t\tInstallEquipmentDocumentation = \"InstallEquipmentDocumentation\",\r\n\t\tInspectionDutyAnalysis = \"InspectionDutyAnalysis\"\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: PropertyCore\r\nexport namespace PropertyCore {\r\n\r\n\t//Enum: ActionLogElements\r\n\texport enum ActionLogElements {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tDocument = \"Document\",\r\n\t\tImage = \"Image\",\r\n\t\tAttribute = \"Attribute\",\r\n\t\tLink = \"Link\",\r\n\t\tEvent = \"Event\",\r\n\t\tApplication = \"Application\",\r\n\t\tInspectionDuty = \"InspectionDuty\",\r\n\t\tAndroidApp = \"AndroidApp\"\r\n\t}\r\n\r\n\t//Enum: ActionLogOperations\r\n\texport enum ActionLogOperations {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tCreate = \"Create\",\r\n\t\tUpdate = \"Update\",\r\n\t\tDelete = \"Delete\",\r\n\t\tFeedback = \"Feedback\",\r\n\t\tQualified = \"Qualified\",\r\n\t\tDownload = \"Download\"\r\n\t}\r\n\r\n\t//Enum: DefectRatings\r\n\texport enum DefectRatings {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tUnrated = \"Unrated\",\r\n\t\tMinor = \"Minor\",\r\n\t\tMajor = \"Major\",\r\n\t\tDangerous = \"Dangerous\"\r\n\t}\r\n\r\n\t//Enum: EventTypes\r\n\texport enum EventTypes {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tInspection = \"Inspection\",\r\n\t\tFollowUpInspection = \"FollowUpInspection\",\r\n\t\tMaintenance = \"Maintenance\",\r\n\t\tRepair = \"Repair\",\r\n\t\tCustom = \"Custom\"\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: Common\r\nexport namespace Common {\r\n\r\n\t//Enum: IntervalUnits\r\n\texport enum IntervalUnits {\r\n\t\tUndefined = \"Undefined\",\r\n\t\tYear = \"Year\",\r\n\t\tMonth = \"Month\",\r\n\t\tWeek = \"Week\",\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: Common\r\nexport namespace Common {\r\n\r\n\t//Complex Type: Address\r\n\texport interface Address {\r\n\t\tStreet: string;\r\n\t\tNo: string;\r\n\t\tCity: string;\r\n\t\tPostCode: string;\r\n\t\tCountry: string;\r\n\t\tCountryInfo: Library.CountryInfo;\r\n\t\tRegion: string;\r\n\t\tRegionInfo: Library.RegionInfo;\r\n\t}\r\n\r\n\t//Complex Type: AddressGeoCoded\r\n\texport interface AddressGeoCoded extends Common.Address {\r\n\t\tLocation: Location;\r\n\t}\r\n\r\n\t//Complex Type: Interval\r\n\texport interface Interval {\r\n\t\tStep: number;\r\n\t\tSize: IntervalUnits;\r\n\t}\r\n\r\n\t//Complex Type: InvoiceAddress\r\n\texport interface InvoiceAddress extends Common.Address {\r\n\t}\r\n\r\n\t//Complex Type: Location\r\n\texport interface Location {\r\n\t\tLongitude: number;\r\n\t\tLatitude: number;\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: Library\r\nexport namespace Library {\r\n\r\n\t//Complex Type: CountryInfo\r\n\texport interface CountryInfo {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t}\r\n\r\n\t//Complex Type: RegionInfo\r\n\texport interface RegionInfo {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: PropertyCore\r\nexport namespace PropertyCore {\r\n\r\n\t//Complex Type: InspectionDutyChange\r\n\texport interface InspectionDutyChange {\r\n\t\tOperation: Operations.Operations;\r\n\t\tIdentity: string;\r\n\t\tIsDisabled: boolean;\r\n\t\tSeriesStart: Date;\r\n\t\tInterval: Common.Interval;\r\n\t\tEquipmentRef: string;\r\n\t\tOperatorTaskRef: string;\r\n\t}\r\n\r\n\t//Complex Type: InspectionDutyChanges\r\n\texport interface InspectionDutyChanges {\r\n\t\tComment: string;\r\n\t\tChanges?: InspectionDutyChange[];\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: ObjektBrief\r\nexport namespace ObjektBrief {\r\n\r\n\t//Complex Type: OperationsBlock\r\n\texport interface OperationsBlock {\r\n\t\tReason: OperationBLockReasons;\r\n\t\tProperty: string;\r\n\t\tCurrentValue: string;\r\n\t\tRequiredValue: string;\r\n\t\tCanForce: boolean;\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: Operations\r\nexport namespace Operations {\r\n\r\n\t//Complex Type: OperationsCheckResult\r\n\texport interface OperationsCheckResult {\r\n\t\tCanExecute: boolean;\r\n\t\tMustForce: boolean;\r\n\t\tBlocker?: ObjektBrief.OperationsBlock[];\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: Operations\r\nexport namespace Operations {\r\n\r\n\t//Entity Type: Account\r\n\texport interface Account {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tMaxBuildingCount: number;\r\n\t\tSapNo: string;\r\n\t\tStartDate: Date;\r\n\t\tEndDate: Date;\r\n\t\tAccountType: AccountTypes;\r\n\t\tCreated: Date;\r\n\t\tRoles?: AccountRole[];\r\n\t\tProfile?: ObjektBrief.AccountProfile;\r\n\t\tUser?: User;\r\n\t\tStatistics?: ObjektBrief.AccountStatistics;\r\n\t\tAccountDataProcessingAgreement?: AccountDataProcessingAgreement;\r\n\t\tActionLogs?: PropertyCore.ActionLog[];\r\n\t\tBuildings?: PropertyCore.Building[];\r\n\t\tMaintenanceContracts?: PropertyCore.MaintenanceContract[];\r\n\t\tServiceProviders?: PropertyCore.ServiceProvider[];\r\n\t\tUsers?: User[];\r\n\t\tRights?: AccountRights[];\r\n\t}\r\n\r\n\t//Entity Type: AccountDataProcessingAgreement\r\n\texport interface AccountDataProcessingAgreement {\r\n\t\tIdentity: string;\r\n\t\tTimeStamp: Date;\r\n\t\tLoginName: string;\r\n\t\tName: string;\r\n\t\tStreet: string;\r\n\t\tHouseNo: string;\r\n\t\tAddressAddition: string;\r\n\t\tZipCode: string;\r\n\t\tCity: string;\r\n\t\tCountry?: Library.Country;\r\n\t}\r\n\r\n\t//Entity Type: AccountRights\r\n\texport interface AccountRights {\r\n\t\tIdentity: string;\r\n\t\tCanRead: boolean;\r\n\t\tCanEdit: boolean;\r\n\t\tCanDelete: boolean;\r\n\t}\r\n\r\n\t//Entity Type: AccountRole\r\n\texport interface AccountRole {\r\n\t\tId: number;\r\n\t\tRole: ObjektBrief.AccountRoles;\r\n\t\tUser?: User;\r\n\t}\r\n\r\n\t//Entity Type: AccountSubscriptionHistory\r\n\texport interface AccountSubscriptionHistory {\r\n\t\tId: number;\r\n\t\tRefDate: Date;\r\n\t}\r\n\r\n\t//Entity Type: BuildingRole\r\n\texport interface BuildingRole {\r\n\t\tId: number;\r\n\t\tRole: ObjektBrief.BuildingRoles;\r\n\t\tUser?: User;\r\n\t}\r\n\r\n\t//Entity Type: Invitation\r\n\texport interface Invitation {\r\n\t\tIdentity: string;\r\n\t\tEmail: string;\r\n\t\tAccessCode: string;\r\n\t\tServiceProvider?: PropertyCore.ServiceProvider;\r\n\t}\r\n\r\n\t//Entity Type: User\r\n\texport interface User {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tTitle: string;\r\n\t\tPosition: string;\r\n\t\tFirstName: string;\r\n\t\tLastName: string;\r\n\t\tPhoneBusiness: string;\r\n\t\tPhoneMobile: string;\r\n\t\tEmail: string;\r\n\t\tLoginSource: number;\r\n\t\tIsTuevEmployee: boolean;\r\n\t\tIsMale: boolean;\r\n\t\tIsReportSubscribed: boolean;\r\n\t\tCreated: Date;\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: ObjektBrief\r\nexport namespace ObjektBrief {\r\n\r\n\t//Entity Type: AccountProfile\r\n\texport interface AccountProfile {\r\n\t\tIdentity: string;\r\n\t\tContact: string;\r\n\t\tContactPhone: string;\r\n\t\tContactMail: string;\r\n\t\tName: string;\r\n\t\tPartnerNo: string;\r\n\t\tVatCode: string;\r\n\t\tAddressAddition: string;\r\n\t\tAddress: Common.Address;\r\n\t\tInvoiceName: string;\r\n\t\tInvoicePartnerNo: string;\r\n\t\tInvoiceCode: string;\r\n\t\tInvoiceAddressAddition: string;\r\n\t\tInvoiceAddress: Common.InvoiceAddress;\r\n\t}\r\n\r\n\t//Entity Type: AccountStatistics\r\n\texport interface AccountStatistics {\r\n\t\tId: number;\r\n\t\tBuildingCount: number;\r\n\t}\r\n\r\n\t//Entity Type: EquipmentStatistics\r\n\texport interface EquipmentStatistics {\r\n\t\tId: number;\r\n\t\tFabNo: string;\r\n\t\tAlternativeNo: string;\r\n\t\tModuleCount: number;\r\n\t\tMaintenanceContractCount: number;\r\n\t\tImageCount: number;\r\n\t\tQRCodeCount: number;\r\n\t\tOperatorTaskCount: number;\r\n\t\tInspectionDutyCount: number;\r\n\t\tDocumentsCountMissing: number;\r\n\t}\r\n\r\n\t//Entity Type: EventParent\r\n\texport interface EventParent extends PropertyCore.Event {\r\n\t}\r\n\r\n\t//Entity Type: ModuleStatistics\r\n\texport interface ModuleStatistics {\r\n\t\tId: number;\r\n\t\tImageCount: number;\r\n\t}\r\n\r\n\t//Entity Type: RoomStatistics\r\n\texport interface RoomStatistics {\r\n\t\tId: number;\r\n\t\tEquipmentCount: number;\r\n\t\tModuleCount: number;\r\n\t}\r\n\r\n\t//Entity Type: ServiceProviderStatistics\r\n\texport interface ServiceProviderStatistics {\r\n\t\tId: number;\r\n\t\tMaintenanceContractCount: number;\r\n\t\tEquipmentEventCount: number;\r\n\t\tModuleEventCount: number;\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: PropertyCore\r\nexport namespace PropertyCore {\r\n\r\n\t//Entity Type: ActionLog\r\n\texport interface ActionLog {\r\n\t\tId: number;\r\n\t\tIsAnynomous: boolean;\r\n\t\tOperation: ActionLogOperations;\r\n\t\tElement: ActionLogElements;\r\n\t\tUserId: number;\r\n\t\tUserEmail: string;\r\n\t\tBuildingId: number;\r\n\t\tEquipmentId: number;\r\n\t\tModuleId: number;\r\n\t\tDocumentId: number;\r\n\t\tMaintenanceContractId: number;\r\n\t\tServiceProviderId: number;\r\n\t\tEventId: number;\r\n\t\tCreated: Date;\r\n\t\tAccount?: Operations.Account;\r\n\t\tBuilding?: Building;\r\n\t\tEquipment?: Equipment;\r\n\t\tModule?: Module;\r\n\t\tDocument?: Document;\r\n\t\tMaintenanceContract?: MaintenanceContract;\r\n\t\tServiceProvider?: ServiceProvider;\r\n\t\tEvent?: Event;\r\n\t}\r\n\r\n\t//Entity Type: AttributeType\r\n\texport interface AttributeType {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tDescription: string;\r\n\t\tValueType: ObjektBrief.AttributeValueTypes;\r\n\t\tAllowedValues: string[];\r\n\t\tIsOptional: boolean;\r\n\t\tOrder: number;\r\n\t\tSet?: AttributeTypeSet;\r\n\t\tMeasurementUnit?: MeasurementUnit;\r\n\t}\r\n\r\n\t//Entity Type: AttributeTypeSet\r\n\texport interface AttributeTypeSet {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tOrder: number;\r\n\t\tIsDefault: boolean;\r\n\t\tAttributeTypes?: AttributeType[];\r\n\t}\r\n\r\n\t//Entity Type: AttributeValue\r\n\texport interface AttributeValue {\r\n\t\tId: number;\r\n\t\tOrder: number;\r\n\t\tValue: string;\r\n\t}\r\n\r\n\t//Entity Type: Building\r\n\texport interface Building {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tAddress: Common.Address;\r\n\t\tLocation: Common.Location;\r\n\t\tSize: number;\r\n\t\tYearOfConstruction: number;\r\n\t\tCreated: Date;\r\n\t\tDataTimestamp: Date;\r\n\t\tDocumentTypeMarkers?: DocumentTypeMarker[];\r\n\t\tRoles?: Operations.BuildingRole[];\r\n\t\tAccount?: Operations.Account;\r\n\t\tUser?: Operations.User;\r\n\t\tEquipments?: Equipment[];\r\n\t\tImages?: Image[];\r\n\t\tEvents?: Event[];\r\n\t\tRooms?: Room[];\r\n\t\tUsageTypes?: UsageType[];\r\n\t\tFloors?: Floor[];\r\n\t\tStatistics?: BuildingStatistics;\r\n\t\tUsers?: Operations.User[];\r\n\t\tDocuments?: Document[];\r\n\t\tKpiMarker?: BuildingKpiMarker;\r\n\t\tAttributeTypeSets?: AttributeTypeSet[];\r\n\t}\r\n\r\n\t//Entity Type: BuildingKpiMarker\r\n\texport interface BuildingKpiMarker {\r\n\t\tHasEquipment: boolean;\r\n\t\tHasDocumentation: boolean;\r\n\t\tHasUsageTypes: boolean;\r\n\t}\r\n\r\n\t//Entity Type: BuildingStatistics\r\n\texport interface BuildingStatistics {\r\n\t\tId: number;\r\n\t\tEquipmentCount: number;\r\n\t\tModuleCount: number;\r\n\t\tUsageTypeCount: number;\r\n\t\tMissingDocumentsCount: number;\r\n\t\tRoomCount: number;\r\n\t\tFloorCount: number;\r\n\t}\r\n\r\n\t//Entity Type: CostGroup\r\n\texport interface CostGroup {\r\n\t\tId: number;\r\n\t\tCode: string;\r\n\t\tName: string;\r\n\t\tNo: number;\r\n\t\tIsDisabled: boolean;\r\n\t\tCreated: Date;\r\n\t\tEquipmentTypes?: EquipmentType[];\r\n\t}\r\n\r\n\t//Entity Type: Document\r\n\texport interface Document {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tDescription: string;\r\n\t\tName: string;\r\n\t\tSize: number;\r\n\t\tFileType: string;\r\n\t\tIsDeleted: boolean;\r\n\t\tIsVirtual: boolean;\r\n\t\tCreated: Date;\r\n\t\tUser?: Operations.User;\r\n\t\tDocumentType?: DocumentType;\r\n\t\tBuildings?: Building[];\r\n\t\tEquipments?: Equipment[];\r\n\t\tEvents?: Event[];\r\n\t}\r\n\r\n\t//Entity Type: DocumentType\r\n\texport interface DocumentType {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tMark: string;\r\n\t\tIsRequired: boolean;\r\n\t\tCreated: Date;\r\n\t\tDocuments?: Document[];\r\n\t\tOperatorTasks?: OperatorTask[];\r\n\t}\r\n\r\n\t//Entity Type: DocumentTypeGroup\r\n\texport interface DocumentTypeGroup {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tCreated: Date;\r\n\t\tDocumentTypes?: DocumentType[];\r\n\t}\r\n\r\n\t//Entity Type: DocumentTypeMarker\r\n\texport interface DocumentTypeMarker {\r\n\t\tId: number;\r\n\t\tIsRequired: boolean;\r\n\t\tIsMissing: boolean;\r\n\t\tDocumentType?: DocumentType;\r\n\t}\r\n\r\n\t//Entity Type: Equipment\r\n\texport interface Equipment {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tComment: string;\r\n\t\tInstallNo: number;\r\n\t\tCustomId: string;\r\n\t\tTuevNo: string;\r\n\t\tIsRenterResponsibility: boolean;\r\n\t\tIsNoMaintenanceDesired: boolean;\r\n\t\tHasInspectionDutiesActivated: boolean;\r\n\t\tDataTimestamp: Date;\r\n\t\tOperatorTaskMarkers?: OperatorTaskMarker[];\r\n\t\tAttributeValues?: AttributeValue[];\r\n\t\tEquipmentType?: EquipmentType;\r\n\t\tBuilding?: Building;\r\n\t\tRoom?: Room;\r\n\t\tMaintenanceContractMappings?: MaintenanceJob[];\r\n\t\tEvents?: Event[];\r\n\t\tModules?: Module[];\r\n\t\tImages?: Image[];\r\n\t\tInspectionDuties?: InspectionDuty[];\r\n\t\tQuickResponseCodes?: QuickResponseCode[];\r\n\t\tStatistics?: ObjektBrief.EquipmentStatistics;\r\n\t\tDocuments?: Document[];\r\n\t\tKpiMarker?: EquipmentKpiMarker;\r\n\t\tDocumentTypeMarkers?: DocumentTypeMarker[];\r\n\t}\r\n\r\n\t//Entity Type: EquipmentKpiMarker\r\n\texport interface EquipmentKpiMarker {\r\n\t\tIsActive: boolean;\r\n\t\tIsDocumented: boolean;\r\n\t\tIsMaintained: boolean;\r\n\t\tIsInspectionDutiesAssigned: boolean;\r\n\t\tHasInspectionDutyUnterminated: boolean;\r\n\t}\r\n\r\n\t//Entity Type: EquipmentType\r\n\texport interface EquipmentType {\r\n\t\tCode: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tSubNo: number;\r\n\t\tCreated: Date;\r\n\t\tCostGroup?: CostGroup;\r\n\t\tEquipments?: Equipment[];\r\n\t\tModuleTypes?: ModuleType[];\r\n\t\tAttributeTypes?: AttributeType[];\r\n\t}\r\n\r\n\t//Entity Type: Event\r\n\texport interface Event {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tType: EventTypes;\r\n\t\tGuidelines: string;\r\n\t\tQualification: string;\r\n\t\tDueDate: Date;\r\n\t\tRefDate: Date;\r\n\t\tIsSkipped: boolean;\r\n\t\tCreated: Date;\r\n\t\tIsDefectHandler: boolean;\r\n\t\tParent?: ObjektBrief.EventParent;\r\n\t\tResponse?: EventResponse;\r\n\t\tSchedule?: Schedule;\r\n\t\tServiceProvider?: ServiceProvider;\r\n\t\tBuilding?: Building;\r\n\t\tDocuments?: Document[];\r\n\t\tEquipment?: Equipment;\r\n\t\tModule?: Module;\r\n\t\tKpiMarker?: EventKpiMarker;\r\n\t\tDocumentTypeMarkers?: DocumentTypeMarker[];\r\n\t}\r\n\r\n\t//Entity Type: EventKpiMarker\r\n\texport interface EventKpiMarker {\r\n\t\tIsActive: boolean;\r\n\t\tIsInFocus: boolean;\r\n\t\tIsPlanned: boolean;\r\n\t\tIsDone: boolean;\r\n\t\tIsOverdue: boolean;\r\n\t\tIsDefective: boolean;\r\n\t\tIsMissingDocuments: boolean;\r\n\t}\r\n\r\n\t//Entity Type: EventResponse\r\n\texport interface EventResponse {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tReferenceDate: Date;\r\n\t\tComment: string;\r\n\t\tDefectRating: DefectRatings;\r\n\t\tIsServiceComplete: boolean;\r\n\t\tIsDefectProcessed: boolean;\r\n\t\tResponseDate: Date;\r\n\t\tUpdateDate: Date;\r\n\t\tCreated: Date;\r\n\t\tUser?: Operations.User;\r\n\t}\r\n\r\n\t//Entity Type: Floor\r\n\texport interface Floor {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tOrder: number;\r\n\t\tCreated: Date;\r\n\t\tRooms?: Room[];\r\n\t\tBuildings?: Building[];\r\n\t}\r\n\r\n\t//Entity Type: Image\r\n\texport interface Image {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tOrder: number;\r\n\t\tComment: string;\r\n\t\tFileName: string;\r\n\t\tFileSize: number;\r\n\t\tFileType: string;\r\n\t\tDownloadToken: string;\r\n\t\tCreated: Date;\r\n\t\tThumbNailImageAsBase64String: string;\r\n\t\tBuilding?: Building;\r\n\t\tEquipment?: Equipment;\r\n\t\tModule?: Module;\r\n\t\tUser?: Operations.User;\r\n\t}\r\n\r\n\t//Entity Type: InspectionDuty\r\n\texport interface InspectionDuty {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tIsDisabled: boolean;\r\n\t\tModule?: Module;\r\n\t\tOperatorTask?: OperatorTask;\r\n\t\tEquipment?: Equipment;\r\n\t\tSchedule?: Schedule;\r\n\t}\r\n\r\n\t//Entity Type: InspectionDutyHistory\r\n\texport interface InspectionDutyHistory {\r\n\t\tId: number;\r\n\t\tDuty?: InspectionDuty;\r\n\t}\r\n\r\n\t//Entity Type: InspectionDutyUpdate\r\n\texport interface InspectionDutyUpdate {\r\n\t\tIdentity: string;\r\n\t\tTimestamp: Date;\r\n\t\tComment: string;\r\n\t\tUser?: Operations.User;\r\n\t\tHistories?: InspectionDutyHistory[];\r\n\t}\r\n\r\n\t//Entity Type: LegalArea\r\n\texport interface LegalArea {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tDescription: string;\r\n\t\tCreated: Date;\r\n\t\tOperatorTasks?: OperatorTask[];\r\n\t}\r\n\r\n\t//Entity Type: MaintenanceContract\r\n\texport interface MaintenanceContract {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tTitle: string;\r\n\t\tNo: string;\r\n\t\tCostServiceHourNetAmount: number;\r\n\t\tCostApproachNetAmount: number;\r\n\t\tAmountNet: number;\r\n\t\tStartDate: Date;\r\n\t\tEndDate: Date;\r\n\t\tCancellationDigit: number;\r\n\t\tCancellationPeriod: ObjektBrief.MaintenanceContractCancellationPeriods;\r\n\t\tCancellationUnit: ObjektBrief.MaintenanceContractCancellationUnits;\r\n\t\tCancellationCalendar: ObjektBrief.MaintenanceContractCancellationCalendars;\r\n\t\tIsGeneralAgreement: boolean;\r\n\t\tCreated: Date;\r\n\t\tUser?: Operations.User;\r\n\t\tAccount?: Operations.Account;\r\n\t\tServiceProvider?: ServiceProvider;\r\n\t\tJobs?: MaintenanceJob[];\r\n\t}\r\n\r\n\t//Entity Type: MaintenanceJob\r\n\texport interface MaintenanceJob {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tCreated: Date;\r\n\t\tIsDisabled: boolean;\r\n\t\tEquipment?: Equipment;\r\n\t\tSchedule?: Schedule;\r\n\t\tContract?: MaintenanceContract;\r\n\t}\r\n\r\n\t//Entity Type: MeasurementUnit\r\n\texport interface MeasurementUnit {\r\n\t\tCode: string;\r\n\t\tName: string;\r\n\t}\r\n\r\n\t//Entity Type: Module\r\n\texport interface Module {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tQuantity: number;\r\n\t\tCustomId: string;\r\n\t\tName: string;\r\n\t\tComment: string;\r\n\t\tInstallNo: number;\r\n\t\tCreated: Date;\r\n\t\tDataTimestamp: Date;\r\n\t\tAttributeValues?: AttributeValue[];\r\n\t\tEquipment?: Equipment;\r\n\t\tModuleType?: ModuleType;\r\n\t\tRoom?: Room;\r\n\t\tMaintenanceContract?: MaintenanceContract;\r\n\t\tImages?: Image[];\r\n\t\tInspectionDuties?: InspectionDuty[];\r\n\t\tStatistics?: ObjektBrief.ModuleStatistics;\r\n\t}\r\n\r\n\t//Entity Type: ModuleType\r\n\texport interface ModuleType {\r\n\t\tCode: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tCreated: Date;\r\n\t\tEquipmentType?: EquipmentType;\r\n\t\tModules?: Module[];\r\n\t\tAttributeTypes?: AttributeType[];\r\n\t}\r\n\r\n\t//Entity Type: OperatorTask\r\n\texport interface OperatorTask {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tGuidelines: string;\r\n\t\tSubject: string;\r\n\t\tDeadline: string;\r\n\t\tQualification: string;\r\n\t\tType: string;\r\n\t\tBuildingType: string;\r\n\t\tIsRelevant: boolean;\r\n\t\tTextPassage: string;\r\n\t\tCycle: number;\r\n\t\tCycleUnit: Common.IntervalUnits;\r\n\t\tCreated: Date;\r\n\t\tUser?: Operations.User;\r\n\t\tDocumentType?: DocumentType;\r\n\t\tLegalArea?: LegalArea;\r\n\t\tInspectionDuties?: InspectionDuty[];\r\n\t\tEquipmentTypes?: EquipmentType[];\r\n\t\tModuleTypes?: ModuleType[];\r\n\t\tRegions?: Library.Region[];\r\n\t}\r\n\r\n\t//Entity Type: OperatorTaskMarker\r\n\texport interface OperatorTaskMarker {\r\n\t\tIdentity: string;\r\n\t\tIsMissing: boolean;\r\n\t\tOperatorTask?: OperatorTask;\r\n\t}\r\n\r\n\t//Entity Type: QuickResponseCode\r\n\texport interface QuickResponseCode {\r\n\t\tId: number;\r\n\t\tValue: string;\r\n\t\tCreated: Date;\r\n\t\tUser?: Operations.User;\r\n\t\tEquipments?: Equipment[];\r\n\t}\r\n\r\n\t//Entity Type: Room\r\n\texport interface Room {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tCreated: Date;\r\n\t\tStatistics?: ObjektBrief.RoomStatistics;\r\n\t\tUser?: Operations.User;\r\n\t\tFloor?: Floor;\r\n\t\tBuilding?: Building;\r\n\t\tEquipments?: Equipment[];\r\n\t\tModules?: Module[];\r\n\t}\r\n\r\n\t//Entity Type: Schedule\r\n\texport interface Schedule {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tCycle: number;\r\n\t\tCycleUnit: Common.IntervalUnits;\r\n\t\tInterval: Common.Interval;\r\n\t\tCycleStart: Date;\r\n\t\tCycleNext: Date;\r\n\t\tCycleStop: Date;\r\n\t\tInspectionDuty?: InspectionDuty;\r\n\t\tMaintenanceContract?: MaintenanceContract;\r\n\t\tEvents?: Event[];\r\n\t}\r\n\r\n\t//Entity Type: ServiceProvider\r\n\texport interface ServiceProvider {\r\n\t\tIdentity: string;\r\n\t\tId: number;\r\n\t\tCode: string;\r\n\t\tName: string;\r\n\t\tContactPerson: string;\r\n\t\tDepartment: string;\r\n\t\tContactPhone1: string;\r\n\t\tContactPhone2: string;\r\n\t\tContactEmailAdd: string;\r\n\t\tContractContactPerson: string;\r\n\t\tContractContactEmailAdd: string;\r\n\t\tContractContactPhone: string;\r\n\t\tIsInspection: boolean;\r\n\t\tIsMaintenance: boolean;\r\n\t\tType: number;\r\n\t\tAddress: Common.Address;\r\n\t\tCreated: Date;\r\n\t\tUser?: Operations.User;\r\n\t\tAccount?: Operations.Account;\r\n\t\tStatistics?: ObjektBrief.ServiceProviderStatistics;\r\n\t\tEvents?: Event[];\r\n\t\tMaintenanceContracts?: MaintenanceContract[];\r\n\t}\r\n\r\n\t//Entity Type: UsageType\r\n\texport interface UsageType {\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tCreated: Date;\r\n\t\tRegions?: Library.Region[];\r\n\t}\r\n\r\n}\r\n\r\n//Namespace: Library\r\nexport namespace Library {\r\n\r\n\t//Entity Type: Country\r\n\texport interface Country {\r\n\t\tCode: string;\r\n\t\tId: number;\r\n\t\tIsoNo: number;\r\n\t\tName: string;\r\n\t\tCreated: Date;\r\n\t\tBuildings?: PropertyCore.Building[];\r\n\t\tRegions?: Region[];\r\n\t\tAccountDataProcessingAgreements?: Operations.AccountDataProcessingAgreement[];\r\n\t}\r\n\r\n\t//Entity Type: Region\r\n\texport interface Region {\r\n\t\tCode: string;\r\n\t\tId: number;\r\n\t\tName: string;\r\n\t\tCreated: Date;\r\n\t\tCountry?: Country;\r\n\t\tBuildings?: PropertyCore.Building[];\r\n\t}\r\n\r\n}\r\n\r\nexport class AcceptInvitationInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.AcceptInvitation' : url.endsWith('/') ? url + 'Operations.AcceptInvitation' : url + '/' + 'Operations.AcceptInvitation');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Identity: string, AccessCode: string) {\r\n\t\tthis.request['Identity'] = Identity;\r\n\t\tthis.request['AccessCode'] = AccessCode;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class AcceptUsageTermsInOperationsOnUserInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.AcceptUsageTerms' : url.endsWith('/') ? url + 'Operations.AcceptUsageTerms' : url + '/' + 'Operations.AcceptUsageTerms');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(AcceptTerms: boolean, CertifyAsCompany: boolean, ForfeitCoolingOffPeriod: boolean) {\r\n\t\tthis.request['AcceptTerms'] = AcceptTerms;\r\n\t\tthis.request['CertifyAsCompany'] = CertifyAsCompany;\r\n\t\tthis.request['ForfeitCoolingOffPeriod'] = ForfeitCoolingOffPeriod;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class AddDefaultsInOperationsOnBuildingInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.AddDefaults' : url.endsWith('/') ? url + 'Operations.AddDefaults' : url + '/' + 'Operations.AddDefaults');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters() {\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class BatchChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.BatchChange' : url.endsWith('/') ? url + 'Operations.BatchChange' : url + '/' + 'Operations.BatchChange');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Comment: string, ActivateInspectionDuties: boolean, Changes: PropertyCore.InspectionDutyChange[]) {\r\n\t\tthis.request['Comment'] = Comment;\r\n\t\tthis.request['ActivateInspectionDuties'] = ActivateInspectionDuties;\r\n\t\tthis.request['Changes'] = Changes;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class BulkChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.BulkChange' : url.endsWith('/') ? url + 'Operations.BulkChange' : url + '/' + 'Operations.BulkChange');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Updates: PropertyCore.InspectionDutyChanges) {\r\n\t\tthis.request['Updates'] = Updates;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnBuildingInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnEquipmentInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnEventInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnInspectionDutyInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnMaintenanceContractInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnMaintenanceJobInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CanOperateInOperationsOnScheduleInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CanOperate' : url.endsWith('/') ? url + 'Operations.CanOperate' : url + '/' + 'Operations.CanOperate');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Operation: Operations.Operations) {\r\n\t\tthis.request['Operation'] = Operation;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Operations.OperationsCheckResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CheckNameInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CheckName' : url.endsWith('/') ? url + 'Operations.CheckName' : url + '/' + 'Operations.CheckName');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(CheckValue: string) {\r\n\t\tthis.request['CheckValue'] = CheckValue;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as boolean;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class ExpandInPropertyCoreOnScheduleInPropertyCoreOnEntitySet extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'PropertyCore.Expand' : url.endsWith('/') ? url + 'PropertyCore.Expand' : url + '/' + 'PropertyCore.Expand');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters() {\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as number;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class GeoCodeInTools extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Tools.GeoCode' : url.endsWith('/') ? url + 'Tools.GeoCode' : url + '/' + 'Tools.GeoCode');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Address: Common.AddressGeoCoded) {\r\n\t\tthis.request['Address'] = Address;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Common.AddressGeoCoded;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class IsValidInUser extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'User.IsValid' : url.endsWith('/') ? url + 'User.IsValid' : url + '/' + 'User.IsValid');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(EMail: string, IsDataEncrypted: boolean) {\r\n\t\tthis.request['EMail'] = EMail;\r\n\t\tthis.request['IsDataEncrypted'] = IsDataEncrypted;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as boolean;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class MakeSeriesInOperationsOnEventInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.MakeSeries' : url.endsWith('/') ? url + 'Operations.MakeSeries' : url + '/' + 'Operations.MakeSeries');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters() {\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as PropertyCore.Schedule;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SendContactRequestInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.SendContactRequest' : url.endsWith('/') ? url + 'Operations.SendContactRequest' : url + '/' + 'Operations.SendContactRequest');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Message: string) {\r\n\t\tthis.request['Message'] = Message;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SendMobileApplicationRequestInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.SendMobileApplicationRequest' : url.endsWith('/') ? url + 'Operations.SendMobileApplicationRequest' : url + '/' + 'Operations.SendMobileApplicationRequest');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters() {\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SendQuickResponseCodeRequestInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.SendQuickResponseCodeRequest' : url.endsWith('/') ? url + 'Operations.SendQuickResponseCodeRequest' : url + '/' + 'Operations.SendQuickResponseCodeRequest');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Amount: number) {\r\n\t\tthis.request['Amount'] = Amount;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SendServiceRequestInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.SendServiceRequest' : url.endsWith('/') ? url + 'Operations.SendServiceRequest' : url + '/' + 'Operations.SendServiceRequest');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(RequestType: Operations.ServiceRequestTypes, BuildingIdentities?: string[]) {\r\n\t\tthis.request['RequestType'] = RequestType;\r\n\t\tif (BuildingIdentities) {\r\n\t\t\tthis.request['BuildingIdentities'] = BuildingIdentities;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SignDataProcessingAgreementInOperationsOnAccountInOperations extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.SignDataProcessingAgreement' : url.endsWith('/') ? url + 'Operations.SignDataProcessingAgreement' : url + '/' + 'Operations.SignDataProcessingAgreement');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters() {\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SingleChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.SingleChange' : url.endsWith('/') ? url + 'Operations.SingleChange' : url + '/' + 'Operations.SingleChange');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(Comment: string, Change: PropertyCore.InspectionDutyChange) {\r\n\t\tthis.request['Comment'] = Comment;\r\n\t\tthis.request['Change'] = Change;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SortInOperationsOnImageInPropertyCore extends ODataActionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.Sort' : url.endsWith('/') ? url + 'Operations.Sort' : url + '/' + 'Operations.Sort');\r\n\t}\r\n\r\n\trequest: object = {};\r\n\r\n\tpublic Parameters(targetIdentity?: string) {\r\n\t\tif (targetIdentity) {\r\n\t\t\tthis.request['targetIdentity'] = targetIdentity;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute() {\r\n\t\tlet subscription = this.settings.http.post(this.getBaseUrl(), JSON.stringify(this.request), {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t});\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CalculateDateInOperationsOnScheduleInPropertyCoreOnEntitySet extends ODataFunctionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.CalculateDate' : url + '/' + 'Operations.CalculateDate');\r\n\t}\r\n\r\n\tpublic Parameters(Start: Date, Step: number, Unit: number) {\r\n\t\tthis.parameters += 'Start=' + ODataLiteral.For(Start).toUrlString();\r\n\t\tthis.parameters += ','\r\n\t\tthis.parameters += 'Step=' + ODataLiteral.For(Step).toUrlString();\r\n\t\tthis.parameters += ','\r\n\t\tthis.parameters += 'Unit=' + ODataLiteral.For(Unit).toUrlString();\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tvar url = this.getBaseUrl();\r\n\t\tlet subscription = this.settings.http.get(url, {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as Date;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class EncodeValueInOperationsOnAttributeTypeInPropertyCoreOnEntitySet extends ODataFunctionOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'Operations.EncodeValue' : url + '/' + 'Operations.EncodeValue');\r\n\t}\r\n\r\n\tpublic Parameters(Value: string) {\r\n\t\tthis.parameters += 'Value=' + ODataLiteral.For(Value).toUrlString();\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise {\r\n\t\tvar url = this.getBaseUrl();\r\n\t\tlet subscription = this.settings.http.get(url, {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as string;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SearchInObjektBriefOnBuildingInPropertyCoreOnEntitySet extends ODataFunctionSetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'ObjektBrief.Search' : url + '/' + 'ObjektBrief.Search');\r\n\t}\r\n\r\n\tpublic Parameters(term: string) {\r\n\t\tthis.parameters += 'term=' + ODataLiteral.For(term).toUrlString();\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise> {\r\n\t\tvar url = this.getBaseUrl();\r\n\t\tlet subscription = this.settings.http.get(url, {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as ODataQueryResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SearchInObjektBriefOnEquipmentInPropertyCoreOnEntitySet extends ODataFunctionSetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'ObjektBrief.Search' : url + '/' + 'ObjektBrief.Search');\r\n\t}\r\n\r\n\tpublic Parameters(term: string) {\r\n\t\tthis.parameters += 'term=' + ODataLiteral.For(term).toUrlString();\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise> {\r\n\t\tvar url = this.getBaseUrl();\r\n\t\tlet subscription = this.settings.http.get(url, {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as ODataQueryResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class SearchInObjektBriefOnModuleInPropertyCoreOnEntitySet extends ODataFunctionSetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url === '' ? 'ObjektBrief.Search' : url + '/' + 'ObjektBrief.Search');\r\n\t}\r\n\r\n\tpublic Parameters(term: string) {\r\n\t\tthis.parameters += 'term=' + ODataLiteral.For(term).toUrlString();\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic async Execute(): Promise> {\r\n\t\tvar url = this.getBaseUrl();\r\n\t\tlet subscription = this.settings.http.get(url, {\r\n\t\t\twithCredentials: false,\r\n\t\t\theaders: this.settings.headers,\r\n\t\t}).pipe(map(a => {\r\n\t\t\treturn a as ODataQueryResult;\r\n\t\t}));\r\n\t\treturn lastValueFrom(subscription);\r\n\t}\r\n\r\n}\r\n\r\nexport class CountryEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CountryEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CountryEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CountryEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CountryEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new CountryEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new CountryEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class CountryEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Country\");\r\n\t}\r\n\r\n\tGet(): CountryEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new CountryEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new CountryEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new CountryEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RegionEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RegionEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RegionEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RegionEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RegionEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new RegionEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new RegionEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class RegionEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Region\");\r\n\t}\r\n\r\n\tGet(): RegionEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new RegionEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new RegionEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new RegionEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UserEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic AcceptUsageTermsInOperationsOnUserInOperations() {\r\n\t\treturn new AcceptUsageTermsInOperationsOnUserInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class UserEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UserEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UserEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UserEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new UserEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new UserEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class UserEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"User\");\r\n\t}\r\n\r\n\tGet(): UserEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new UserEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new UserEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new UserEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic AcceptInvitationInOperationsOnAccountInOperations() {\r\n\t\treturn new AcceptInvitationInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic CheckNameInOperationsOnAccountInOperations() {\r\n\t\treturn new CheckNameInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnAccountInOperations() {\r\n\t\treturn new CanOperateInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic SendContactRequestInOperationsOnAccountInOperations() {\r\n\t\treturn new SendContactRequestInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic SendQuickResponseCodeRequestInOperationsOnAccountInOperations() {\r\n\t\treturn new SendQuickResponseCodeRequestInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic SendServiceRequestInOperationsOnAccountInOperations() {\r\n\t\treturn new SendServiceRequestInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic SignDataProcessingAgreementInOperationsOnAccountInOperations() {\r\n\t\treturn new SignDataProcessingAgreementInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic SendMobileApplicationRequestInOperationsOnAccountInOperations() {\r\n\t\treturn new SendMobileApplicationRequestInOperationsOnAccountInOperations(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new AccountEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new AccountEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Account\");\r\n\t}\r\n\r\n\tGet(): AccountEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRoleEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRoleEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRoleEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRoleEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRoleEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new AccountRoleEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new AccountRoleEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRoleEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"AccountRole\");\r\n\t}\r\n\r\n\tGet(): AccountRoleEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountRoleEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountRoleEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountRoleEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountDataProcessingAgreementEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountDataProcessingAgreementEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountDataProcessingAgreementEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountDataProcessingAgreementEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountDataProcessingAgreementEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new AccountDataProcessingAgreementEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new AccountDataProcessingAgreementEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountDataProcessingAgreementEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"AccountDataProcessingAgreement\");\r\n\t}\r\n\r\n\tGet(): AccountDataProcessingAgreementEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountDataProcessingAgreementEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountDataProcessingAgreementEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountDataProcessingAgreementEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRightsEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRightsEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRightsEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRightsEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRightsEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new AccountRightsEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new AccountRightsEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountRightsEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"AccountRights\");\r\n\t}\r\n\r\n\tGet(): AccountRightsEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountRightsEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountRightsEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountRightsEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountSubscriptionHistoryEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountSubscriptionHistoryEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountSubscriptionHistoryEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountSubscriptionHistoryEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountSubscriptionHistoryEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new AccountSubscriptionHistoryEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new AccountSubscriptionHistoryEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class AccountSubscriptionHistoryEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"AccountSubscriptionHistory\");\r\n\t}\r\n\r\n\tGet(): AccountSubscriptionHistoryEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountSubscriptionHistoryEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountSubscriptionHistoryEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AccountSubscriptionHistoryEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingRoleEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingRoleEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingRoleEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingRoleEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingRoleEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new BuildingRoleEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new BuildingRoleEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingRoleEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"BuildingRole\");\r\n\t}\r\n\r\n\tGet(): BuildingRoleEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingRoleEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingRoleEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingRoleEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InvitationEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InvitationEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InvitationEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InvitationEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InvitationEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new InvitationEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new InvitationEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class InvitationEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Invitation\");\r\n\t}\r\n\r\n\tGet(): InvitationEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InvitationEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InvitationEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InvitationEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnBuildingInPropertyCore() {\r\n\t\treturn new CanOperateInOperationsOnBuildingInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic AddDefaultsInOperationsOnBuildingInPropertyCore() {\r\n\t\treturn new AddDefaultsInOperationsOnBuildingInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic SearchInObjektBriefOnBuildingInPropertyCoreOnEntitySet() {\r\n\t\treturn new SearchInObjektBriefOnBuildingInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new BuildingEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new BuildingEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Building\");\r\n\t}\r\n\r\n\tGet(): BuildingEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnEquipmentInPropertyCore() {\r\n\t\treturn new CanOperateInOperationsOnEquipmentInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic SearchInObjektBriefOnEquipmentInPropertyCoreOnEntitySet() {\r\n\t\treturn new SearchInObjektBriefOnEquipmentInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new EquipmentEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new EquipmentEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Equipment\");\r\n\t}\r\n\r\n\tGet(): EquipmentEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EquipmentEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EquipmentEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EquipmentEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic SearchInObjektBriefOnModuleInPropertyCoreOnEntitySet() {\r\n\t\treturn new SearchInObjektBriefOnModuleInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new ModuleEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new ModuleEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Module\");\r\n\t}\r\n\r\n\tGet(): ModuleEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ModuleEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ModuleEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ModuleEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic EncodeValueInOperationsOnAttributeTypeInPropertyCoreOnEntitySet() {\r\n\t\treturn new EncodeValueInOperationsOnAttributeTypeInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new AttributeTypeEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new AttributeTypeEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"AttributeType\");\r\n\t}\r\n\r\n\tGet(): AttributeTypeEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AttributeTypeEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AttributeTypeEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AttributeTypeEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeSetEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeSetEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeSetEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeSetEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeSetEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new AttributeTypeSetEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new AttributeTypeSetEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class AttributeTypeSetEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"AttributeTypeSet\");\r\n\t}\r\n\r\n\tGet(): AttributeTypeSetEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AttributeTypeSetEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AttributeTypeSetEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new AttributeTypeSetEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingStatisticsEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingStatisticsEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingStatisticsEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingStatisticsEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingStatisticsEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new BuildingStatisticsEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new BuildingStatisticsEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class BuildingStatisticsEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"BuildingStatistics\");\r\n\t}\r\n\r\n\tGet(): BuildingStatisticsEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingStatisticsEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingStatisticsEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new BuildingStatisticsEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentTypeEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentTypeEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentTypeEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentTypeEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentTypeEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new EquipmentTypeEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new EquipmentTypeEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class EquipmentTypeEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"EquipmentType\");\r\n\t}\r\n\r\n\tGet(): EquipmentTypeEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EquipmentTypeEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EquipmentTypeEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EquipmentTypeEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleTypeEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleTypeEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleTypeEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleTypeEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleTypeEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new ModuleTypeEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new ModuleTypeEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class ModuleTypeEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"ModuleType\");\r\n\t}\r\n\r\n\tGet(): ModuleTypeEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ModuleTypeEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ModuleTypeEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ModuleTypeEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ScheduleEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnScheduleInPropertyCore() {\r\n\t\treturn new CanOperateInOperationsOnScheduleInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class ScheduleEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ScheduleEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic ExpandInPropertyCoreOnScheduleInPropertyCoreOnEntitySet() {\r\n\t\treturn new ExpandInPropertyCoreOnScheduleInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class ScheduleEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CalculateDateInOperationsOnScheduleInPropertyCoreOnEntitySet() {\r\n\t\treturn new CalculateDateInOperationsOnScheduleInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class ScheduleEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new ScheduleEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new ScheduleEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class ScheduleEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Schedule\");\r\n\t}\r\n\r\n\tGet(): ScheduleEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ScheduleEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ScheduleEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ScheduleEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnEventInPropertyCore() {\r\n\t\treturn new CanOperateInOperationsOnEventInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic MakeSeriesInOperationsOnEventInPropertyCore() {\r\n\t\treturn new MakeSeriesInOperationsOnEventInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class EventEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new EventEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new EventEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class EventEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Event\");\r\n\t}\r\n\r\n\tGet(): EventEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EventEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EventEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EventEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventResponseEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventResponseEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventResponseEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventResponseEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class EventResponseEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new EventResponseEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new EventResponseEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class EventResponseEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"EventResponse\");\r\n\t}\r\n\r\n\tGet(): EventResponseEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EventResponseEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EventResponseEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new EventResponseEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceContractEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnMaintenanceContractInPropertyCore() {\r\n\t\treturn new CanOperateInOperationsOnMaintenanceContractInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceContractEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceContractEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceContractEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceContractEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new MaintenanceContractEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new MaintenanceContractEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceContractEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"MaintenanceContract\");\r\n\t}\r\n\r\n\tGet(): MaintenanceContractEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MaintenanceContractEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MaintenanceContractEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MaintenanceContractEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceJobEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnMaintenanceJobInPropertyCore() {\r\n\t\treturn new CanOperateInOperationsOnMaintenanceJobInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceJobEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceJobEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceJobEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceJobEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new MaintenanceJobEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new MaintenanceJobEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class MaintenanceJobEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"MaintenanceJob\");\r\n\t}\r\n\r\n\tGet(): MaintenanceJobEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MaintenanceJobEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MaintenanceJobEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MaintenanceJobEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RoomEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RoomEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RoomEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RoomEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class RoomEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new RoomEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new RoomEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class RoomEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Room\");\r\n\t}\r\n\r\n\tGet(): RoomEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new RoomEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new RoomEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new RoomEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class FloorEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class FloorEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class FloorEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class FloorEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class FloorEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new FloorEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new FloorEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class FloorEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Floor\");\r\n\t}\r\n\r\n\tGet(): FloorEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new FloorEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new FloorEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new FloorEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MeasurementUnitEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MeasurementUnitEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MeasurementUnitEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MeasurementUnitEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class MeasurementUnitEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new MeasurementUnitEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new MeasurementUnitEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class MeasurementUnitEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"MeasurementUnit\");\r\n\t}\r\n\r\n\tGet(): MeasurementUnitEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MeasurementUnitEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MeasurementUnitEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new MeasurementUnitEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UsageTypeEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UsageTypeEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UsageTypeEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UsageTypeEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class UsageTypeEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new UsageTypeEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new UsageTypeEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class UsageTypeEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"UsageType\");\r\n\t}\r\n\r\n\tGet(): UsageTypeEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new UsageTypeEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new UsageTypeEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new UsageTypeEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CostGroupEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CostGroupEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CostGroupEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CostGroupEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class CostGroupEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new CostGroupEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new CostGroupEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class CostGroupEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"CostGroup\");\r\n\t}\r\n\r\n\tGet(): CostGroupEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new CostGroupEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new CostGroupEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new CostGroupEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ActionLogEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ActionLogEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ActionLogEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ActionLogEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ActionLogEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new ActionLogEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new ActionLogEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class ActionLogEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"ActionLog\");\r\n\t}\r\n\r\n\tGet(): ActionLogEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ActionLogEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ActionLogEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ActionLogEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ServiceProviderEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ServiceProviderEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ServiceProviderEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ServiceProviderEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ServiceProviderEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new ServiceProviderEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new ServiceProviderEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class ServiceProviderEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"ServiceProvider\");\r\n\t}\r\n\r\n\tGet(): ServiceProviderEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ServiceProviderEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ServiceProviderEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ServiceProviderEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new DocumentEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new DocumentEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Document\");\r\n\t}\r\n\r\n\tGet(): DocumentEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new DocumentTypeEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new DocumentTypeEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"DocumentType\");\r\n\t}\r\n\r\n\tGet(): DocumentTypeEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentTypeEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentTypeEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentTypeEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeGroupEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeGroupEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeGroupEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeGroupEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeGroupEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new DocumentTypeGroupEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new DocumentTypeGroupEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class DocumentTypeGroupEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"DocumentTypeGroup\");\r\n\t}\r\n\r\n\tGet(): DocumentTypeGroupEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentTypeGroupEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentTypeGroupEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new DocumentTypeGroupEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ImageEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic SortInOperationsOnImageInPropertyCore() {\r\n\t\treturn new SortInOperationsOnImageInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class ImageEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ImageEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ImageEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ImageEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new ImageEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new ImageEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class ImageEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"Image\");\r\n\t}\r\n\r\n\tGet(): ImageEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ImageEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ImageEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new ImageEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class LegalAreaEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class LegalAreaEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class LegalAreaEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class LegalAreaEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class LegalAreaEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new LegalAreaEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new LegalAreaEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class LegalAreaEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"LegalArea\");\r\n\t}\r\n\r\n\tGet(): LegalAreaEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new LegalAreaEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new LegalAreaEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new LegalAreaEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class OperatorTaskEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class OperatorTaskEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class OperatorTaskEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class OperatorTaskEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class OperatorTaskEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new OperatorTaskEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new OperatorTaskEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class OperatorTaskEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"OperatorTask\");\r\n\t}\r\n\r\n\tGet(): OperatorTaskEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new OperatorTaskEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new OperatorTaskEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new OperatorTaskEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyHistoryEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyHistoryEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyHistoryEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyHistoryEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyHistoryEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new InspectionDutyHistoryEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new InspectionDutyHistoryEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyHistoryEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"InspectionDutyHistory\");\r\n\t}\r\n\r\n\tGet(): InspectionDutyHistoryEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyHistoryEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyHistoryEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyHistoryEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyUpdateEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyUpdateEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyUpdateEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyUpdateEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyUpdateEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new InspectionDutyUpdateEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new InspectionDutyUpdateEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyUpdateEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"InspectionDutyUpdate\");\r\n\t}\r\n\r\n\tGet(): InspectionDutyUpdateEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyUpdateEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyUpdateEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyUpdateEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic CanOperateInOperationsOnInspectionDutyInPropertyCore() {\r\n\t\treturn new CanOperateInOperationsOnInspectionDutyInPropertyCore(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic SingleChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet() {\r\n\t\treturn new SingleChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic BulkChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet() {\r\n\t\treturn new BulkChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic BatchChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet() {\r\n\t\treturn new BatchChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new InspectionDutyEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new InspectionDutyEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class InspectionDutyEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"InspectionDuty\");\r\n\t}\r\n\r\n\tGet(): InspectionDutyEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new InspectionDutyEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class QuickResponseCodeEntityActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class QuickResponseCodeEntityFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class QuickResponseCodeEntitySetActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class QuickResponseCodeEntitySetFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class QuickResponseCodeEntityGetOperation extends ODataGetOperation {\r\n\r\n\tconstructor(settings: ODataSettings, url: string) {\r\n\t\tsuper(settings, url);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\treturn new QuickResponseCodeEntityActions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\treturn new QuickResponseCodeEntityFunctions(this.settings, this.buildQueryUrl());\r\n\t}\r\n\r\n}\r\n\r\nexport class QuickResponseCodeEntitySet extends ODataEntitySet {\r\n\r\n\tconstructor(odatasettings: ODataSettings) {\r\n\t\tsuper(odatasettings, \"QuickResponseCode\");\r\n\t}\r\n\r\n\tGet(): QuickResponseCodeEntityGetOperation {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new QuickResponseCodeEntityGetOperation(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new QuickResponseCodeEntitySetActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = this.definedname;\r\n\t\tlet settings = this.settings;\r\n\t\treturn new QuickResponseCodeEntitySetFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n}\r\n\r\nexport class ODataCoreContextODataTypes {\r\n\r\n\tpublic Account() {\r\n\t\treturn ODataType.For('Account', 'Operations')\r\n\t}\r\n\r\n\tpublic AccountDataProcessingAgreement() {\r\n\t\treturn ODataType.For('AccountDataProcessingAgreement', 'Operations')\r\n\t}\r\n\r\n\tpublic AccountProfile() {\r\n\t\treturn ODataType.For('AccountProfile', 'ObjektBrief')\r\n\t}\r\n\r\n\tpublic AccountRights() {\r\n\t\treturn ODataType.For('AccountRights', 'Operations')\r\n\t}\r\n\r\n\tpublic AccountRole() {\r\n\t\treturn ODataType.For('AccountRole', 'Operations')\r\n\t}\r\n\r\n\tpublic AccountStatistics() {\r\n\t\treturn ODataType.For('AccountStatistics', 'ObjektBrief')\r\n\t}\r\n\r\n\tpublic AccountSubscriptionHistory() {\r\n\t\treturn ODataType.For('AccountSubscriptionHistory', 'Operations')\r\n\t}\r\n\r\n\tpublic ActionLog() {\r\n\t\treturn ODataType.For('ActionLog', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic AttributeType() {\r\n\t\treturn ODataType.For('AttributeType', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic AttributeTypeSet() {\r\n\t\treturn ODataType.For('AttributeTypeSet', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic AttributeValue() {\r\n\t\treturn ODataType.For('AttributeValue', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Building() {\r\n\t\treturn ODataType.For('Building', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic BuildingKpiMarker() {\r\n\t\treturn ODataType.For('BuildingKpiMarker', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic BuildingRole() {\r\n\t\treturn ODataType.For('BuildingRole', 'Operations')\r\n\t}\r\n\r\n\tpublic BuildingStatistics() {\r\n\t\treturn ODataType.For('BuildingStatistics', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic CostGroup() {\r\n\t\treturn ODataType.For('CostGroup', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Country() {\r\n\t\treturn ODataType.For('Country', 'Library')\r\n\t}\r\n\r\n\tpublic Document() {\r\n\t\treturn ODataType.For('Document', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic DocumentType() {\r\n\t\treturn ODataType.For('DocumentType', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic DocumentTypeGroup() {\r\n\t\treturn ODataType.For('DocumentTypeGroup', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic DocumentTypeMarker() {\r\n\t\treturn ODataType.For('DocumentTypeMarker', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Equipment() {\r\n\t\treturn ODataType.For('Equipment', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic EquipmentKpiMarker() {\r\n\t\treturn ODataType.For('EquipmentKpiMarker', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic EquipmentStatistics() {\r\n\t\treturn ODataType.For('EquipmentStatistics', 'ObjektBrief')\r\n\t}\r\n\r\n\tpublic EquipmentType() {\r\n\t\treturn ODataType.For('EquipmentType', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Event() {\r\n\t\treturn ODataType.For('Event', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic EventKpiMarker() {\r\n\t\treturn ODataType.For('EventKpiMarker', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic EventParent() {\r\n\t\treturn ODataType.For('EventParent', 'ObjektBrief')\r\n\t}\r\n\r\n\tpublic EventResponse() {\r\n\t\treturn ODataType.For('EventResponse', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Floor() {\r\n\t\treturn ODataType.For('Floor', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Image() {\r\n\t\treturn ODataType.For('Image', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic InspectionDuty() {\r\n\t\treturn ODataType.For('InspectionDuty', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic InspectionDutyHistory() {\r\n\t\treturn ODataType.For('InspectionDutyHistory', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic InspectionDutyUpdate() {\r\n\t\treturn ODataType.For('InspectionDutyUpdate', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Invitation() {\r\n\t\treturn ODataType.For('Invitation', 'Operations')\r\n\t}\r\n\r\n\tpublic LegalArea() {\r\n\t\treturn ODataType.For('LegalArea', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic MaintenanceContract() {\r\n\t\treturn ODataType.For('MaintenanceContract', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic MaintenanceJob() {\r\n\t\treturn ODataType.For('MaintenanceJob', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic MeasurementUnit() {\r\n\t\treturn ODataType.For('MeasurementUnit', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Module() {\r\n\t\treturn ODataType.For('Module', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic ModuleStatistics() {\r\n\t\treturn ODataType.For('ModuleStatistics', 'ObjektBrief')\r\n\t}\r\n\r\n\tpublic ModuleType() {\r\n\t\treturn ODataType.For('ModuleType', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic OperatorTask() {\r\n\t\treturn ODataType.For('OperatorTask', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic OperatorTaskMarker() {\r\n\t\treturn ODataType.For('OperatorTaskMarker', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic QuickResponseCode() {\r\n\t\treturn ODataType.For('QuickResponseCode', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic Region() {\r\n\t\treturn ODataType.For('Region', 'Library')\r\n\t}\r\n\r\n\tpublic Room() {\r\n\t\treturn ODataType.For('Room', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic RoomStatistics() {\r\n\t\treturn ODataType.For('RoomStatistics', 'ObjektBrief')\r\n\t}\r\n\r\n\tpublic Schedule() {\r\n\t\treturn ODataType.For('Schedule', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic ServiceProvider() {\r\n\t\treturn ODataType.For('ServiceProvider', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic ServiceProviderStatistics() {\r\n\t\treturn ODataType.For('ServiceProviderStatistics', 'ObjektBrief')\r\n\t}\r\n\r\n\tpublic UsageType() {\r\n\t\treturn ODataType.For('UsageType', 'PropertyCore')\r\n\t}\r\n\r\n\tpublic User() {\r\n\t\treturn ODataType.For('User', 'Operations')\r\n\t}\r\n\r\n}\r\n\r\nexport class ODataCoreContextContainerActions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n\tpublic GeoCodeInTools() {\r\n\t\treturn new GeoCodeInTools(this.settings, this.baseUrl)\r\n\t}\r\n\r\n\tpublic IsValidInUser() {\r\n\t\treturn new IsValidInUser(this.settings, this.baseUrl)\r\n\t}\r\n\r\n}\r\n\r\nexport class ODataCoreContextContainerFunctions extends ODataOperationSet {\r\n\r\n\tconstructor(settings: ODataSettings, baseUrl: string) {\r\n\t\tsuper(settings, baseUrl);\r\n\t}\r\n\r\n}\r\n\r\n@Injectable()\r\nexport class ODataCoreContext extends ODataContext {\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.Account = new AccountEntitySet(this.ODataSettings);\r\n\t\tthis.AccountDataProcessingAgreement = new AccountDataProcessingAgreementEntitySet(this.ODataSettings);\r\n\t\tthis.AccountRights = new AccountRightsEntitySet(this.ODataSettings);\r\n\t\tthis.AccountRole = new AccountRoleEntitySet(this.ODataSettings);\r\n\t\tthis.AccountSubscriptionHistory = new AccountSubscriptionHistoryEntitySet(this.ODataSettings);\r\n\t\tthis.ActionLog = new ActionLogEntitySet(this.ODataSettings);\r\n\t\tthis.AttributeType = new AttributeTypeEntitySet(this.ODataSettings);\r\n\t\tthis.AttributeTypeSet = new AttributeTypeSetEntitySet(this.ODataSettings);\r\n\t\tthis.Building = new BuildingEntitySet(this.ODataSettings);\r\n\t\tthis.BuildingRole = new BuildingRoleEntitySet(this.ODataSettings);\r\n\t\tthis.BuildingStatistics = new BuildingStatisticsEntitySet(this.ODataSettings);\r\n\t\tthis.CostGroup = new CostGroupEntitySet(this.ODataSettings);\r\n\t\tthis.Country = new CountryEntitySet(this.ODataSettings);\r\n\t\tthis.Document = new DocumentEntitySet(this.ODataSettings);\r\n\t\tthis.DocumentType = new DocumentTypeEntitySet(this.ODataSettings);\r\n\t\tthis.DocumentTypeGroup = new DocumentTypeGroupEntitySet(this.ODataSettings);\r\n\t\tthis.Equipment = new EquipmentEntitySet(this.ODataSettings);\r\n\t\tthis.EquipmentType = new EquipmentTypeEntitySet(this.ODataSettings);\r\n\t\tthis.Event = new EventEntitySet(this.ODataSettings);\r\n\t\tthis.EventResponse = new EventResponseEntitySet(this.ODataSettings);\r\n\t\tthis.Floor = new FloorEntitySet(this.ODataSettings);\r\n\t\tthis.Image = new ImageEntitySet(this.ODataSettings);\r\n\t\tthis.InspectionDuty = new InspectionDutyEntitySet(this.ODataSettings);\r\n\t\tthis.InspectionDutyHistory = new InspectionDutyHistoryEntitySet(this.ODataSettings);\r\n\t\tthis.InspectionDutyUpdate = new InspectionDutyUpdateEntitySet(this.ODataSettings);\r\n\t\tthis.Invitation = new InvitationEntitySet(this.ODataSettings);\r\n\t\tthis.LegalArea = new LegalAreaEntitySet(this.ODataSettings);\r\n\t\tthis.MaintenanceContract = new MaintenanceContractEntitySet(this.ODataSettings);\r\n\t\tthis.MaintenanceJob = new MaintenanceJobEntitySet(this.ODataSettings);\r\n\t\tthis.MeasurementUnit = new MeasurementUnitEntitySet(this.ODataSettings);\r\n\t\tthis.Module = new ModuleEntitySet(this.ODataSettings);\r\n\t\tthis.ModuleType = new ModuleTypeEntitySet(this.ODataSettings);\r\n\t\tthis.OperatorTask = new OperatorTaskEntitySet(this.ODataSettings);\r\n\t\tthis.QuickResponseCode = new QuickResponseCodeEntitySet(this.ODataSettings);\r\n\t\tthis.Region = new RegionEntitySet(this.ODataSettings);\r\n\t\tthis.Room = new RoomEntitySet(this.ODataSettings);\r\n\t\tthis.Schedule = new ScheduleEntitySet(this.ODataSettings);\r\n\t\tthis.ServiceProvider = new ServiceProviderEntitySet(this.ODataSettings);\r\n\t\tthis.UsageType = new UsageTypeEntitySet(this.ODataSettings);\r\n\t\tthis.User = new UserEntitySet(this.ODataSettings);\r\n\t}\r\n\r\n\tpublic ODataTypes() {\r\n\t\treturn new ODataCoreContextODataTypes();\r\n\t}\r\n\r\n\tpublic Actions() {\r\n\t\tlet entitySetUrl = '';\r\n\t\tlet settings = this.ODataSettings;\r\n\t\treturn new ODataCoreContextContainerActions(settings, entitySetUrl);\r\n\t}\r\n\r\n\tpublic Functions() {\r\n\t\tlet entitySetUrl = '';\r\n\t\tlet settings = this.ODataSettings;\r\n\t\treturn new ODataCoreContextContainerFunctions(settings, entitySetUrl);\r\n\t}\r\n\r\n\t// Entity Set Variables\r\n\tAccount: AccountEntitySet;\r\n\tAccountDataProcessingAgreement: AccountDataProcessingAgreementEntitySet;\r\n\tAccountRights: AccountRightsEntitySet;\r\n\tAccountRole: AccountRoleEntitySet;\r\n\tAccountSubscriptionHistory: AccountSubscriptionHistoryEntitySet;\r\n\tActionLog: ActionLogEntitySet;\r\n\tAttributeType: AttributeTypeEntitySet;\r\n\tAttributeTypeSet: AttributeTypeSetEntitySet;\r\n\tBuilding: BuildingEntitySet;\r\n\tBuildingRole: BuildingRoleEntitySet;\r\n\tBuildingStatistics: BuildingStatisticsEntitySet;\r\n\tCostGroup: CostGroupEntitySet;\r\n\tCountry: CountryEntitySet;\r\n\tDocument: DocumentEntitySet;\r\n\tDocumentType: DocumentTypeEntitySet;\r\n\tDocumentTypeGroup: DocumentTypeGroupEntitySet;\r\n\tEquipment: EquipmentEntitySet;\r\n\tEquipmentType: EquipmentTypeEntitySet;\r\n\tEvent: EventEntitySet;\r\n\tEventResponse: EventResponseEntitySet;\r\n\tFloor: FloorEntitySet;\r\n\tImage: ImageEntitySet;\r\n\tInspectionDuty: InspectionDutyEntitySet;\r\n\tInspectionDutyHistory: InspectionDutyHistoryEntitySet;\r\n\tInspectionDutyUpdate: InspectionDutyUpdateEntitySet;\r\n\tInvitation: InvitationEntitySet;\r\n\tLegalArea: LegalAreaEntitySet;\r\n\tMaintenanceContract: MaintenanceContractEntitySet;\r\n\tMaintenanceJob: MaintenanceJobEntitySet;\r\n\tMeasurementUnit: MeasurementUnitEntitySet;\r\n\tModule: ModuleEntitySet;\r\n\tModuleType: ModuleTypeEntitySet;\r\n\tOperatorTask: OperatorTaskEntitySet;\r\n\tQuickResponseCode: QuickResponseCodeEntitySet;\r\n\tRegion: RegionEntitySet;\r\n\tRoom: RoomEntitySet;\r\n\tSchedule: ScheduleEntitySet;\r\n\tServiceProvider: ServiceProviderEntitySet;\r\n\tUsageType: UsageTypeEntitySet;\r\n\tUser: UserEntitySet;\r\n\r\n}\r\n","import { ODataPath, ODataLiteral, ODataOrder } from './odataclient-primitives';\r\n\r\ntype FilterSegment = ODataFilterExpression | ODataFilterConnection;\r\n\r\nenum BinaryOperation {\r\n eq = \"eq\",\r\n ne = \"ne\",\r\n gt = \"gt\",\r\n ge = \"ge\",\r\n lt = \"lt\",\r\n le = \"le\",\r\n}\r\n\r\ntype UnwrapArray = T extends Array ? U : T;\r\n\r\nexport class ODataFilterExpression{\r\n\r\n private value: string = \"\";\r\n\r\n\r\n constructor(public filterBuilderRef: ODataFilterBuilder) { }\r\n\r\n private Finialize() {\r\n this.filterBuilderRef.filterSegments.push(this);\r\n return new ODataFilterConnection(this.filterBuilderRef);\r\n }\r\n\r\n public EvaluateBinary(left: ODataPath | ODataLiteral, operator: BinaryOperation, right: ODataLiteral) {\r\n this.value = `${left.toUrlString()} ${operator.toString()} ${right.toUrlString()}`;\r\n return this.Finialize();\r\n }\r\n\r\n /**\r\n * Creates an instance of an Equals (~eq) filter segment\r\n * @param field The name of the field to check (String literal)\r\n * @param value The value to check\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public Equals(path: ODataPath, value: any) {\r\n return this.EvaluateBinary(path, BinaryOperation.eq, ODataLiteral.For(value));\r\n }\r\n public EqualsField>(field: K, value: any) {\r\n return this.EvaluateBinary(ODataPath.For(field.toString()), BinaryOperation.eq, ODataLiteral.For(value));\r\n }\r\n\r\n /**\r\n * Creates an instance of an Not Equals (~ne) filter segment\r\n * @param field The name of the field to check (String literal)\r\n * @param value The value to check\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public NotEquals>(field: K, value: any) {\r\n return this.EvaluateBinary(ODataPath.For(field.toString()), BinaryOperation.ne, ODataLiteral.For(value));\r\n }\r\n public NotEqualsPath(path: ODataPath, value: any) {\r\n return this.EvaluateBinary(path, BinaryOperation.ne, ODataLiteral.For(value));\r\n }\r\n\r\n /**\r\n * Creates an instance of a Greater Than (~gt) filter segment\r\n * @param field The name of the field to check (String literal)\r\n * @param value The value to check\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public GreaterThan>(field: K, value: any) {\r\n return this.EvaluateBinary(ODataPath.For(field.toString()), BinaryOperation.gt, ODataLiteral.For(value));\r\n }\r\n\r\n /**\r\n * Creates an instance of a Greater Than or Equals (~ge) filter segment\r\n * @param field The name of the field to check (String literal)\r\n * @param value The value to check\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public GreaterThanOrEquals>(field: K, value: any) {\r\n return this.EvaluateBinary(ODataPath.For(field.toString()), BinaryOperation.ge, ODataLiteral.For(value));\r\n }\r\n\r\n /**\r\n * Creates an instance of a Lesser Than (~lt) filter segment\r\n * @param field The name of the field to check (String literal)\r\n * @param value The value to check\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public LessThan>(field: K, value: any) {\r\n return this.EvaluateBinary(ODataPath.For(field.toString()), BinaryOperation.lt, ODataLiteral.For(value));\r\n }\r\n\r\n /**\r\n * Creates an instance of a Lesser Than or equals (~le) filter segment\r\n * @param field The name of the field to check (String literal)\r\n * @param value The value to check\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public LessThanOrEquals>(field: K, value: any) {\r\n return this.EvaluateBinary(ODataPath.For(field.toString()), BinaryOperation.le, ODataLiteral.For(value));\r\n }\r\n\r\n /**\r\n * Creates an instance of a HAS (~has) filter segment\r\n * @param field The name of the field to check (String literal)\r\n * @param value The value to check\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public Has>(field: K, value: any) {\r\n this.value = `${field} has ${ODataLiteral.For(value).toUrlString()}`;\r\n return this.Finialize();\r\n }\r\n\r\n /**\r\n * Creates an instance of a nested negated (~not) FilterBuilder object\r\n * @param build The fluent chain for the filter expression\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public Not>(build: (b: ODataFilterExpression) => void) {\r\n let builder = ODataFilterBuilder.Create();\r\n build(ODataFilterBuilder.Create());\r\n this.value = `not (${builder.toString()})`;\r\n return this.Finialize();\r\n }\r\n\r\n /**\r\n * Seaches for any element. Takes a sub-query \r\n * @param build\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public Any>(field: K, value: any) {\r\n let builder = ODataFilterBuilder.Create();\r\n this.value = `${field}/any (${value})`;\r\n return this.Finialize();\r\n }\r\n\r\n /**\r\n * Seaches for any element. Takes a sub-query \r\n * @param build\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public Contains>(path: ODataPath | K, value: any) {\r\n var literal = ODataLiteral.For(value);\r\n this.value = `contains(${path.toString()}, ${literal.toUrlString()})`;\r\n return this.Finialize();\r\n }\r\n\r\n /**\r\n * Seaches for all element. Takes a sub-query \r\n * @param build\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public All>(field: K, build: (b: ODataFilterExpression) => void) {\r\n let builder = ODataFilterBuilder.Create();\r\n build(ODataFilterBuilder.Create());\r\n this.value = `all (${builder.toString()})`;\r\n return this.Finialize();\r\n }\r\n\r\n\r\n /**\r\n * Creates an instance of a nested FilterBuilder object\r\n * @param build The fluent chain for the filter expression\r\n * @returns The next ODataFilterConnection (Fluent)\r\n */\r\n public BuildFilter(build: (b: ODataFilterExpression) => void) {\r\n let builder = ODataFilterBuilder.Create();\r\n build(ODataFilterBuilder.Create());\r\n this.value = `(${builder.toString()})`;\r\n return this.Finialize();\r\n }\r\n\r\n /**\r\n * Gets the evaluated OData filter segment\r\n * @returns The OData filter segment\r\n */\r\n public toString(): string {\r\n return this.value;\r\n }\r\n\r\n}\r\n\r\nexport class ODataFilterConnection{\r\n\r\n private type: 'and' | 'or' = \"and\";\r\n\r\n constructor(public filterBuilderRef: ODataFilterBuilder) { }\r\n\r\n /**\r\n * Sets the connection between OData Filter expression segments to 'AND' type\r\n * @returns The next ODataFilterExpression (Fluent)\r\n */\r\n public get And() {\r\n this.type = \"and\";\r\n this.filterBuilderRef.filterSegments.push(this);\r\n return new ODataFilterExpression(this.filterBuilderRef);\r\n }\r\n\r\n /**\r\n * Sets the connection between OData Filter expression segments to 'OR' type\r\n * @returns The next ODataFilterExpression (Fluent)\r\n */\r\n public get Or() {\r\n this.type = \"or\";\r\n this.filterBuilderRef.filterSegments.push(this);\r\n return new ODataFilterExpression(this.filterBuilderRef);\r\n }\r\n\r\n public toString() {\r\n return this.type;\r\n }\r\n\r\n}\r\n\r\nexport class ODataFilterBuilder{\r\n\r\n public filterSegments: FilterSegment[] = [];\r\n\r\n /**\r\n * Factory method for creating ODataFilterBuilders\r\n * @returns The first ODataFilterExpression value for the ODataFilterBuilder\r\n */\r\n public static Create(): ODataFilterExpression {\r\n let builder = new ODataFilterBuilder();\r\n let firstSegment = new ODataFilterExpression(builder);\r\n return firstSegment;\r\n }\r\n\r\n /**\r\n * Evaluates the ODataFilterBuilder's segments into a parsed OData Filter expression\r\n * @returns The Filter query expression\r\n */\r\n public toString(): string {\r\n return this.filterSegments.map(s => s.toString()).join(' ');\r\n }\r\n\r\n}\r\n\r\n/**\r\n * This class represents an Expand and inner select clause.\r\n */\r\nexport class ODataExpandBuilder {\r\n\r\n //protected _expand!: string;\r\n protected _select: string = '';\r\n protected _expand: string = '';\r\n protected _filter: string = '';\r\n protected _orderBy: string = '';\r\n\r\n /**\r\n * Sets the select\r\n * @param ...expand The field name(s) to be expanded\r\n */\r\n public Select>(...select: K[]) {\r\n if (this._select != '') {\r\n this._select += \",\";\r\n }\r\n this._select += select.join(\",\");\r\n return this;\r\n }\r\n\r\n public OrderBy>(property: K, order?: ODataOrder) {\r\n if (this._orderBy != '') {\r\n this._orderBy += ',';\r\n }\r\n this._orderBy += property;\r\n if (order) {\r\n this._orderBy += ' ' + order;\r\n }\r\n return this;\r\n }\r\n /**\r\n * Sets the expand\r\n * @param ...expand The field name(s) to be expanded\r\n */\r\n public Expand>(property: K, expand?: (expansion: ODataExpandBuilder[K]>) => void) {\r\n var expando = new ODataExpandBuilder[K]>();\r\n if (expand != null) {\r\n expand(expando);\r\n }\r\n if (this._expand != '') {\r\n this._expand += ',';\r\n }\r\n this._expand += property;\r\n let nextExpand = expando.buildUrl();\r\n if (nextExpand != '') {\r\n this._expand += '(' + nextExpand + ')';\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the '$filter=' variable in the OData Query URL.\r\n * @param filter The plain text value for the odata $filter. Overrides the FilterBuilder\r\n * @returns the ODataQuery instance (Fluent)\r\n *\r\n * @deprecated Do not use, instead use Filter and the FilterExpression in it.\r\n */\r\n public FilterString(filter: string) {\r\n this._filter = filter;\r\n return this;\r\n };\r\n\r\n /**\r\n * Builds a query expression for the OData Query\r\n * @param build The builder expression\r\n * @returns The ODataQuery instance (Fluent)\r\n */\r\n public Filter(build: (b: ODataFilterExpression) => void) {\r\n let builder = ODataFilterBuilder.Create();\r\n build(builder);\r\n this._filter = builder.filterBuilderRef.toString();\r\n return this;\r\n }\r\n\r\n\r\n //public parseStringOrStringArray(...input: Array): string {\r\n // if (input instanceof Array) {\r\n // return input.join(\",\");\r\n // }\r\n // return input as string;\r\n //}\r\n\r\n public buildUrl(prefix: boolean = false): string {\r\n let retval = '';\r\n if (this._expand != '') {\r\n retval += \"$expand=\" + this._expand;\r\n }\r\n if (this._select != '') {\r\n if (retval != '') {\r\n retval += ';';\r\n }\r\n retval += '$select=' + this._select;\r\n }\r\n if (this._orderBy != '') {\r\n if (retval != '') {\r\n retval += ';';\r\n }\r\n retval += '$orderby=' + this._orderBy;\r\n }\r\n if (this._filter != '') {\r\n if (retval != '') {\r\n retval += ';';\r\n }\r\n retval += '$filter=' + this._filter;\r\n }\r\n return retval;\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nexport class ODataSettings {\r\n\r\n public Url: string;\r\n public http: HttpClient;\r\n public headers: HttpHeaders;\r\n\r\n}\r\n\r\nexport class ODataContext {\r\n\r\n constructor() {\r\n this.ODataSettings = {\r\n Url: \"\",\r\n http: null,\r\n headers: null,\r\n };\r\n this.ODataSettings.headers = new HttpHeaders()\r\n .set(\"Content-Type\", \"application/json\")\r\n .set(\"Accept\", \"application/json\");\r\n }\r\n\r\n public readonly ODataSettings: ODataSettings = new ODataSettings();\r\n\r\n}\r\n\r\n\r\n","import { Guid } from \"guid-typescript\";\r\n\r\nimport { ODataType, ODataBinding, ODataPath, ODataOrder, ODataLiteral } from \"./odataclient-primitives\";\r\nimport { ODataSettings } from \"./odataclient-context\";\r\nimport { ODataExpandBuilder } from \"./odataclient-builder\";\r\nimport { ODataQueryResult } from \"./odataclient-response\";\r\nimport { ODataFilterBuilder, ODataFilterExpression } from \"./odataclient-builder\";\r\nimport { lastValueFrom } from \"rxjs\";\r\n\r\nexport class ODataEntitySet {\r\n constructor(protected settings: ODataSettings, protected definedname: string) {}\r\n\r\n Query(): ODataQueryOperation {\r\n return new ODataQueryOperation(this.settings, this.definedname);\r\n }\r\n\r\n Delete(): ODataDeleteOperation {\r\n return new ODataDeleteOperation(this.settings, this.definedname);\r\n }\r\n\r\n Post(): ODataPostOperation {\r\n return new ODataPostOperation(this.settings, this.definedname);\r\n }\r\n\r\n Put(): ODataPutOperation {\r\n return new ODataPutOperation(this.settings, this.definedname);\r\n }\r\n\r\n Patch(): ODataPatchOperation {\r\n return new ODataPatchOperation(this.settings, this.definedname);\r\n }\r\n\r\n Link(): ODataLinkOperation {\r\n return new ODataLinkOperation(this.settings, this.definedname);\r\n }\r\n}\r\n\r\nabstract class ODataOperation {\r\n constructor(protected settings: ODataSettings) {}\r\n}\r\n\r\nexport abstract class ODataEntitiesOperation extends ODataOperation {\r\n constructor(settings: ODataSettings) {\r\n super(settings);\r\n }\r\n\r\n protected _expand!: string;\r\n protected _select!: string;\r\n\r\n /**\r\n * Sets the OData $expand= property\r\n * @param ...expand The field name(s) to be expanded\r\n */\r\n public ExpandProperties(...expand: K[]) {\r\n this._expand = this.parseStringOrStringArray(...expand);\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the OData expand property based on more complex Oboject hierarchy structures\r\n * @param select\r\n */\r\n public Expand(expand: (expansion: ODataExpandBuilder) => void) {\r\n let expando = new ODataExpandBuilder();\r\n expand(expando);\r\n this._expand = expando.buildUrl();\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the OData $select= property\r\n * @param ...select The field name(s) to be included in the OData Select\r\n */\r\n public Select(...select: K[]) {\r\n this._select = this.parseStringOrStringArray(...select);\r\n return this;\r\n }\r\n\r\n /**\r\n * Executes the operation, should return an awaitable Promise\r\n */\r\n //public abstract Exec(): Promise;\r\n\r\n protected parseStringOrStringArray(...input: Array): string {\r\n if (input instanceof Array) {\r\n return input.join(\",\");\r\n }\r\n\r\n return input as string;\r\n }\r\n}\r\n\r\n/**\r\n * Base class for operations that work against a single entity, such as delete, get.\r\n * */\r\nabstract class ODataEntityOperation extends ODataEntitiesOperation {\r\n constructor(settings: ODataSettings, protected url: string) {\r\n super(settings);\r\n }\r\n\r\n protected key: string = \"\";\r\n\r\n /**\r\n * Directly sets the key string for the operation. This will not be encoded or changed in any way and should be used\r\n * as \"last resort\" of a key format not supported is used.\r\n * @param key\r\n */\r\n public KeyString(key: string) {\r\n this.key = `(${key})`;\r\n return this;\r\n }\r\n\r\n public Key(key: string | number | Guid) {\r\n let literal = ODataLiteral.For(key);\r\n this.KeyString(literal.toUrlString());\r\n return this;\r\n }\r\n\r\n protected buildQueryUrlParmeters(): string {\r\n let url = \"?\";\r\n if (this._expand) {\r\n url += `${this._expand}&`;\r\n }\r\n if (this._select) {\r\n url += `$select=${this._select}&`;\r\n }\r\n if (url === \"?\") {\r\n url = \"\";\r\n }\r\n return url.substring(0, url.length - 1);\r\n }\r\n\r\n protected buildQueryUrl(): string {\r\n let url = this.url;\r\n if (this.key) {\r\n url = url + this.key;\r\n }\r\n url += url.endsWith(\"/\") ? \"\" : \"/\";\r\n return url;\r\n }\r\n}\r\n\r\n/**\r\n * Base class for get operations. This requires a key to be provided\r\n * */\r\nexport class ODataGetOperation extends ODataEntityOperation {\r\n constructor(settings: ODataSettings, url: string) {\r\n super(settings, url);\r\n }\r\n\r\n suffix: string = \"\";\r\n\r\n /**\r\n * Set to raw value. Untested.\r\n * */\r\n public Raw() {\r\n this.suffix = \"/$value\";\r\n return this;\r\n }\r\n\r\n /**\r\n * Get the binding string for an element. This does not trigger a get - so the object may not exist.\r\n * @param relative Relative or absolute? Relative is shorter - and the default.\r\n */\r\n public Bind(relative: boolean = true): ODataBinding {\r\n let url = \"\";\r\n if (relative == false) {\r\n url += this.settings.Url;\r\n }\r\n url += this.url;\r\n url += this.key;\r\n let binding = ODataBinding.For(url);\r\n return binding;\r\n }\r\n\r\n /**\r\n * Navigate to a property (that is a a navigation property to one entity)\r\n * @param property\r\n */\r\n public NavigateTo(property: keyof T): ODataGetOperation {\r\n let retval = new ODataGetOperation(this.settings, this.ToBinding(property));\r\n return retval;\r\n }\r\n\r\n /**\r\n * Navigate to a property (that is a a navigation property to an entity collection)\r\n * @param property\r\n */\r\n public NavigateToArray(property: keyof T): ODataEntitySet {\r\n let retval = new ODataEntitySet(this.settings, this.ToBinding(property));\r\n return retval;\r\n }\r\n\r\n /**\r\n * Returns the binding form of the URL of the item. This is important because there are other functions that\r\n * actually do take this binding (to create or drop relationships, i.e.).\r\n * */\r\n public ToBinding(property: keyof T, relative: boolean = true): string {\r\n let queryString = this.buildQueryUrlParmeters();\r\n let url = \"\";\r\n if (relative == false) {\r\n url += this.settings.Url;\r\n }\r\n url += this.url;\r\n url += this.key;\r\n url += \"/\" + property.toString() + queryString;\r\n return url;\r\n }\r\n\r\n public ToUrlString(relative: boolean = true): string {\r\n let url = \"\";\r\n if (relative == false) {\r\n url += this.settings.Url;\r\n }\r\n url = this.settings.Url;\r\n url += this.url;\r\n url += this.key;\r\n url += this.suffix;\r\n return url;\r\n }\r\n\r\n /**\r\n * Execute the get operation\r\n * */\r\n public Exec(): Promise> {\r\n let queryString = this.buildQueryUrlParmeters();\r\n let url = this.settings.Url + this.url + this.key + this.suffix + queryString;\r\n return this.settings.http\r\n .get>(url, {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n .toPromise();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for delete operations. Requires a key to be set.\r\n * */\r\nexport class ODataDeleteOperation extends ODataEntityOperation {\r\n constructor(settings: ODataSettings, url: string) {\r\n super(settings, url);\r\n }\r\n\r\n suffix: string = \"\";\r\n\r\n /**\r\n * Set to raw value. Untested.\r\n * */\r\n public Raw() {\r\n this.suffix = \"/$value\";\r\n return this;\r\n }\r\n\r\n public Exec(): Promise {\r\n let url = this.settings.Url + this.buildQueryUrl();\r\n return this.settings.http\r\n .delete(url, {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n .toPromise();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for post operations. Requires a key to be set.\r\n * */\r\nexport class ODataPostOperation extends ODataEntityOperation {\r\n constructor(settings: ODataSettings, url: string) {\r\n super(settings, url);\r\n }\r\n\r\n entity = {};\r\n\r\n /**\r\n * Set the type information. MUST be executed. Please use a type from context.ODataTypes\r\n * @param type\r\n */\r\n public ValueType(type: ODataType) {\r\n this.entity[\"@odata.type\"] = type.toString();\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the value to be put\r\n * @param value\r\n */\r\n public Value(value: T) {\r\n for (let propertyKey in Object.keys(value)) {\r\n let propertyBinding = propertyKey + \"@odata.bind\";\r\n delete this.entity[propertyKey];\r\n this.entity[propertyKey] = value[propertyKey];\r\n }\r\n this.entity = value;\r\n return this;\r\n }\r\n\r\n public ValueProperty(property: keyof T, value?: any) {\r\n let key = \"\" + property.toString();\r\n delete this.entity[key];\r\n if (value != null) {\r\n this.entity[key] = value;\r\n }\r\n return this;\r\n }\r\n\r\n public ValuePropertyNullable(property: keyof T, value?: any) {\r\n let key = \"\" + property.toString();\r\n delete this.entity[key];\r\n this.entity[key] = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Set a property binding.\r\n * @param property Name of the property\r\n * @param binding The binding value, or null to delete the binding.\r\n */\r\n public ValuePropertyBinding(property: keyof T, binding?: ODataBinding) {\r\n let propertyKey = \"\" + property.toString();\r\n // Delete the property if it is there...\r\n delete this.entity[propertyKey];\r\n if (binding != null) {\r\n // set the binding...\r\n let propertyBinding = property.toString() + \"@odata.bind\";\r\n if (binding.toString() === \"\") {\r\n delete this.entity[propertyBinding];\r\n } else {\r\n this.entity[propertyBinding] = binding.toString();\r\n }\r\n return this;\r\n }\r\n }\r\n\r\n suffix: string = \"\";\r\n\r\n public Raw() {\r\n this.suffix = \"/$value\";\r\n return this;\r\n }\r\n\r\n public Exec(): Promise {\r\n let url = this.settings.Url + this.url + this.key + this.suffix;\r\n return this.settings.http\r\n .post(url, this.entity, {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n .toPromise();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for put operations. Requires a key to be set.\r\n * */\r\nexport class ODataPutOperation extends ODataEntityOperation {\r\n constructor(settings: ODataSettings, url: string) {\r\n super(settings, url);\r\n }\r\n\r\n entity: {};\r\n\r\n /**\r\n * Set the type information. MUST be executed. Please use a type from context.ODataTypes\r\n * @param type\r\n */\r\n public ValueType(type: ODataType) {\r\n this.entity[\"@odata.type\"] = type.toString();\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the value to be put\r\n * @param value\r\n */\r\n public Value(value: T) {\r\n for (let propertyKey in Object.keys(value)) {\r\n let propertyBinding = propertyKey + \"@odata.bind\";\r\n delete this.entity[propertyKey];\r\n this.entity[propertyKey] = value[propertyKey];\r\n }\r\n this.entity = value;\r\n return this;\r\n }\r\n\r\n public ValueProperty(property: keyof T, value?: any) {\r\n let key = \"\" + property.toString();\r\n delete this.entity[key];\r\n if (value != null) {\r\n this.entity[key] = value;\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Set a property binding.\r\n * @param property Name of the property\r\n * @param binding The binding value, or null to delete the binding.\r\n */\r\n public ValuePropertyBinding(property: keyof T, binding?: ODataBinding) {\r\n let propertyKey = \"\" + property.toString();\r\n // Delete the property if it is there...\r\n delete this.entity[propertyKey];\r\n if (binding != null) {\r\n // set the binding...\r\n let propertyBinding = property.toString() + \"@odata.bind\";\r\n this.entity[propertyBinding] = binding.toString;\r\n return this;\r\n }\r\n }\r\n\r\n suffix: string = \"\";\r\n\r\n public Raw() {\r\n this.suffix = \"/$value\";\r\n return this;\r\n }\r\n\r\n public Exec(): Promise {\r\n let url = this.settings.Url + this.url + this.key + this.suffix;\r\n return this.settings.http\r\n .put(url, this.entity, {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n .toPromise();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for patch operations. Requires a key to be set.\r\n * */\r\nexport class ODataPatchOperation extends ODataEntityOperation {\r\n constructor(settings: ODataSettings, url: string) {\r\n super(settings, url);\r\n }\r\n\r\n entity = {};\r\n\r\n public Value(entity: T) {\r\n this.entity = entity;\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the type information. MUST be executed. Please use a type from context.ODataTypes\r\n * @param type\r\n */\r\n public ValueType(type: ODataType) {\r\n this.entity[\"@odata.type\"] = type.toString();\r\n return this;\r\n }\r\n\r\n public ValueProperty(property: keyof T, value?: any) {\r\n let key = \"\" + property.toString();\r\n delete this.entity[key];\r\n if (value != null) {\r\n this.entity[key] = value;\r\n }\r\n return this;\r\n }\r\n\r\n public ValuePropertyNullable(property: keyof T, value?: any) {\r\n let key = \"\" + property.toString();\r\n delete this.entity[key];\r\n this.entity[key] = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Set a property binding.\r\n * @param property Name of the property\r\n * @param binding The binding value, or null to delete the binding.\r\n */\r\n public ValuePropertyBinding(property: keyof T, binding?: ODataBinding) {\r\n let propertyKey = \"\" + property.toString();\r\n // Delete the property if it is there...\r\n delete this.entity[propertyKey];\r\n if (binding != null) {\r\n // set the binding...\r\n let propertyBinding = property.toString() + \"@odata.bind\";\r\n this.entity[propertyBinding] = binding.toString();\r\n return this;\r\n }\r\n }\r\n\r\n public Exec(): Promise {\r\n let url = this.settings.Url + this.url + this.key;\r\n return this.settings.http\r\n .patch(url, this.entity, {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n .toPromise();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for link/unlink operations. Requires a key to be set, as well as a binding string to the other side,\r\n * and the name of the property.\r\n * */\r\nexport class ODataLinkOperation extends ODataEntityOperation {\r\n constructor(settings: ODataSettings, url: string) {\r\n super(settings, url);\r\n }\r\n\r\n property: String;\r\n binding: ODataBinding;\r\n\r\n /**\r\n * Value of the binding\r\n * @param property\r\n * @param binding The binding - can be null, for delete operations.\r\n */\r\n public Value(property: keyof T, binding: ODataBinding = null) {\r\n this.property = property.toString();\r\n this.binding = binding;\r\n return this;\r\n }\r\n\r\n public Post(): Promise {\r\n let url = this.settings.Url + this.url + this.key + \"/\" + this.property + \"/$ref\";\r\n return this.settings.http\r\n .post(\r\n url,\r\n {\r\n \"@odata.id\": this.binding.toString(),\r\n },\r\n {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n }\r\n )\r\n .toPromise();\r\n }\r\n\r\n public Delete(): Promise {\r\n let url = this.settings.Url + this.url + this.key + \"/\" + this.property + \"/$ref?$id=\" + this.binding.toUrlString();\r\n return this.settings.http\r\n .delete(url, {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n .toPromise();\r\n }\r\n}\r\n\r\nexport class ODataOperationSet {\r\n constructor(protected settings: ODataSettings, protected baseUrl: string) {}\r\n}\r\n\r\n/**\r\n * Base class for action operations.\r\n * */\r\nexport class ODataActionOperation extends ODataOperation {\r\n constructor(settings: ODataSettings, protected baseUrl: string) {\r\n super(settings);\r\n }\r\n\r\n protected getBaseUrl(): string {\r\n let url = this.settings.Url + this.baseUrl;\r\n return url;\r\n }\r\n}\r\n\r\n/**\r\n * Base class for function operations.\r\n * */\r\nexport class ODataFunctionOperation extends ODataOperation {\r\n constructor(settings: ODataSettings, protected baseUrl: string) {\r\n super(settings);\r\n }\r\n\r\n protected parameters: string = \"\";\r\n\r\n protected getBaseUrl(relative: boolean = false): string {\r\n let url = this.baseUrl;\r\n if (relative == false) {\r\n url = this.settings.Url + url;\r\n }\r\n if (this.parameters) {\r\n url = url + \"(\" + this.parameters + \")\";\r\n }\r\n return url;\r\n }\r\n}\r\n\r\nexport class ODataQueryOperation extends ODataEntitiesOperation {\r\n private _filter!: string;\r\n private _top!: number;\r\n private _skip!: number;\r\n private _orderBy: string = \"\";\r\n private _parameters: string;\r\n\r\n ///The operation to perform on the queried element.\r\n private _operation!: string;\r\n\r\n private buildQueryUrl(): string {\r\n let url = \"?\";\r\n if (this._filter) {\r\n url += `$filter=${this._filter}&`;\r\n }\r\n if (this._top) {\r\n url += `$top=${this._top}&`;\r\n }\r\n if (this._skip) {\r\n url += `$skip=${this._skip}&`;\r\n }\r\n if (this._orderBy != \"\") {\r\n url += `$orderby=${this._orderBy}&`;\r\n }\r\n if (this._expand) {\r\n url += `${this._expand}&`;\r\n }\r\n if (this._select) {\r\n url += `$select=${this._select}&`;\r\n }\r\n if (this._parameters) {\r\n url += `${this._parameters}&`;\r\n }\r\n if (url === \"?\") url = \"\";\r\n if (this._operation) {\r\n url = \"/\" + this._operation + url;\r\n }\r\n if (url.endsWith(\"$count\")) {\r\n return url;\r\n }\r\n return url.substring(0, url.length - 1);\r\n }\r\n\r\n constructor(settings: ODataSettings, protected url: string) {\r\n super(settings);\r\n }\r\n\r\n /**\r\n * Sets a parameters string. This string will be directly set into the URL (including parameters etc.) and serves as a\r\n * \"last resort of expandability\". It allows to inject any custom set of parameters.\r\n * @param parameters\r\n */\r\n public ParametersString(parameters: string): ODataQueryOperation {\r\n this._parameters = parameters;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the '$filter=' variable in the OData Query URL.\r\n * @param filter The plain text value for the odata $filter. Overrides the FilterBuilder\r\n * @returns the ODataQuery instance (Fluent)\r\n *\r\n * @deprecated Do not use, instead use Filter and the FilterExpression in it.\r\n */\r\n public FilterString(filter: string): ODataQueryOperation {\r\n this._filter = filter;\r\n return this;\r\n }\r\n\r\n /**\r\n * Builds a query expression for the OData Query\r\n * @param build The builder expression\r\n * @returns The ODataQuery instance (Fluent)\r\n */\r\n public Filter(build: (b: ODataFilterExpression) => void): ODataQueryOperation {\r\n let builder = ODataFilterBuilder.Create();\r\n build(builder);\r\n this._filter = builder.filterBuilderRef.toString();\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the OData $top= query attribute\r\n * @param top The value to be returned by the query\r\n * @returns The ODataQuery instance (Fluent)\r\n */\r\n public Top(top: number): ODataQueryOperation {\r\n this._top = top;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the OData $skip= query attribute\r\n * @param skip The value to be skipped by the query\r\n * @returns The ODataQuery instance (Fluent)\r\n */\r\n public Skip(skip: number): ODataQueryOperation {\r\n this._skip = skip;\r\n return this;\r\n }\r\n\r\n /**\r\n * Orders elements by the given property. Works only on Get()\r\n *\r\n * @param {string} property Property on dataset to order by\r\n * @param {Order} [order=asc] Order \"asc\" for ascending and \"desc\" for descending.\r\n * @returns {ODataQueryFilterOptions}\r\n *\r\n * @memberof ODataQueryFilterOptions\r\n */\r\n OrderBy(property: ODataPath | keyof T | any, order?: ODataOrder): ODataQueryOperation {\r\n if (this._orderBy != \"\") {\r\n this._orderBy += \",\";\r\n }\r\n this._orderBy += property.toString();\r\n if (order) {\r\n this._orderBy += \" \" + order;\r\n }\r\n return this;\r\n }\r\n\r\n ///**\r\n // * Sets the OData $orderby= query attribute\r\n // * @param orderBy The field name(s) in string\r\n // * @returns The ODataQuery instance (Fluent)\r\n // */\r\n //public OrderByProperties(...orderBy: K[]): ODataQuery {\r\n // this._orderBy = this.parseStringOrStringArray(...orderBy);\r\n // return this;\r\n //}\r\n\r\n /**\r\n * Executes the query.\r\n * @returns An awaitable promise with the query result.\r\n */\r\n public Exec(): Promise> {\r\n let url = this.settings.Url + this.url + this.buildQueryUrl();\r\n let http = this.settings.http;\r\n return lastValueFrom(\r\n http.get>(url, {\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Executes the query.\r\n * @returns An awaitable promise with the query result.\r\n */\r\n public ExecToNumber(): Promise {\r\n let url = this.settings.Url + this.url + this.buildQueryUrl();\r\n let http = this.settings.http;\r\n return lastValueFrom(\r\n http.get(url, {\r\n responseType: \"text\" as \"json\",\r\n withCredentials: false,\r\n headers: this.settings.headers,\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Executes the query as a count (i.e. getting the numbers of elements).\r\n * @returns An awaitable promise with the number of elements.\r\n *\r\n */\r\n public Count(): Promise {\r\n this._operation = \"$count\";\r\n return this.ExecToNumber();\r\n }\r\n}\r\n\r\n/**\r\n * Base class for function operations that returns an entity set, and thus will possibly allow Query() to be used\r\n * to further define the search result.\r\n * */\r\nexport class ODataFunctionSetOperation extends ODataFunctionOperation {\r\n constructor(settings: ODataSettings, protected baseUrl: string) {\r\n super(settings, baseUrl);\r\n }\r\n\r\n Query(): ODataQueryOperation {\r\n return new ODataQueryOperation(this.settings, this.getBaseUrl(true));\r\n }\r\n}\r\n","import { Guid } from \"guid-typescript\";\r\nimport { DatePipe } from '@angular/common';\r\n\r\nexport type ODataOrder = \"asc\" | \"desc\";\r\n\r\nexport class ODataPath {\r\n\r\n constructor(private elements: string[]) {\r\n }\r\n\r\n static For(...elements: string[]): ODataPath {\r\n return new ODataPath(elements);\r\n }\r\n\r\n public toString() : string {\r\n return this.elements.join('/');\r\n }\r\n\r\n public toUrlString(): string {\r\n return this.elements.join('/');\r\n }\r\n\r\n}\r\n\r\nexport class ODataLiteral {\r\n\r\n constructor(private element: string) {\r\n }\r\n\r\n static For(value: string | number | Guid | Date): ODataLiteral {\r\n var valueString: string;\r\n switch (typeof value) {\r\n case 'string':\r\n valueString = encodeURIComponent(`${value}`);\r\n valueString = `'${valueString}'`;\r\n break;\r\n case 'number':\r\n valueString = `${value}`;\r\n break;\r\n case 'object':\r\n if(value instanceof Date){\r\n value = new DatePipe('de').transform(value, 'yyyy-MM-ddT') + '00:00:00Z';\r\n valueString = `${value}`;\r\n } else if (value instanceof Guid) {\r\n valueString = `${value}`;\r\n }\r\n break;\r\n default:\r\n valueString = `${value}`;\r\n break;\r\n }\r\n return new ODataLiteral(valueString);\r\n }\r\n\r\n public toString() : string {\r\n return this.element;\r\n }\r\n\r\n public toUrlString(): string {\r\n return this.toString();\r\n }\r\n\r\n}\r\n\r\nexport class ODataBinding {\r\n\r\n constructor(private url: string) {\r\n }\r\n\r\n public static For(value: string): ODataBinding {\r\n return new ODataBinding(value);\r\n }\r\n\r\n public toString(): string {\r\n return this.url;\r\n }\r\n\r\n public toUrlString(): string {\r\n return encodeURIComponent(this.url);\r\n }\r\n\r\n}\r\n\r\nexport class ODataType {\r\n\r\n constructor(private type: string) {\r\n }\r\n\r\n public static For(name: string, namespace: string) {\r\n var type = '';\r\n if (namespace) {\r\n type += namespace;\r\n }\r\n type += \".\" + name;\r\n return new ODataType(type);\r\n }\r\n\r\n public toString(): string {\r\n return this.type;\r\n }\r\n\r\n}\r\n","export class ODataQueryResult{\r\n\r\n public '@odata.context': string;\r\n public '@odata.count': number;\r\n Value: any;\r\n\r\n /**\r\n * The '@odata.context' variable returned by the OData service\r\n */\r\n public get Context(): string {\r\n return this['@odata.context'];\r\n }\r\n\r\n /**\r\n * The '@odata.count' variable returned by the OData service\r\n */\r\n public get Count(): number {\r\n return this['@odata.count'];\r\n }\r\n\r\n /**\r\n * The query result in an array\r\n */\r\n public value: T[] = [];\r\n\r\n}\r\n\r\n/**\r\n * This is the wrapper fo an odata scalar result. A scalar result is a result of a single value.\r\n * */\r\nexport class ODataScalarResult{\r\n\r\n Value: any;\r\n\r\n /**\r\n * The scalar value\r\n */\r\n public value: T;\r\n\r\n}\r\n\r\nexport class ODataError implements Error {\r\n\r\n public Response: any;\r\n public name: string;\r\n public message: string;\r\n\r\n constructor(response: Response) {\r\n this.name = \"OData Request Error\";\r\n this.message = response.statusText;\r\n }\r\n\r\n}\r\n","import {\r\n ODataContext, ODataSettings\r\n} from './odataclient-context';\r\nimport {\r\n ODataExpandBuilder, ODataFilterExpression, ODataFilterConnection\r\n} from './odataclient-builder';\r\nimport {\r\n ODataEntitySet,\r\n ODataEntitiesOperation,\r\n ODataQueryOperation,\r\n ODataGetOperation, ODataPostOperation, ODataPutOperation, ODataPatchOperation, ODataDeleteOperation,\r\n ODataOperationSet, ODataActionOperation, ODataFunctionOperation, ODataFunctionSetOperation\r\n} from './odataclient-operation';\r\nimport {\r\n ODataPath, ODataLiteral, ODataBinding, ODataType\r\n} from './odataclient-primitives';\r\nimport {\r\n ODataQueryResult, ODataScalarResult, ODataError\r\n} from './odataclient-response';\r\n\r\nexport {\r\n\r\n // primitives\r\n ODataPath,\r\n ODataLiteral,\r\n ODataBinding,\r\n ODataType,\r\n\r\n // builder\r\n ODataExpandBuilder,\r\n\r\n // context\r\n ODataContext,\r\n ODataSettings,\r\n\r\n // entityset\r\n ODataEntitySet,\r\n\r\n // filterbuilder\r\n ODataFilterExpression,\r\n ODataFilterConnection,\r\n\r\n // operation\r\n ODataEntitiesOperation,\r\n ODataGetOperation,\r\n ODataPostOperation,\r\n ODataPutOperation,\r\n ODataPatchOperation,\r\n ODataDeleteOperation,\r\n ODataOperationSet,\r\n ODataActionOperation,\r\n ODataFunctionOperation,\r\n ODataFunctionSetOperation,\r\n\r\n // query\r\n ODataQueryOperation,\r\n\r\n // response\r\n ODataQueryResult,\r\n ODataScalarResult,\r\n ODataError\r\n\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { Utils } from './../tools/utils';\r\n\r\n@Pipe({\r\n name: 'dateCompare'\r\n})\r\n@Injectable()\r\nexport class DateComparePipe implements PipeTransform {\r\n\r\n /**\r\n * @items = object from array\r\n * @terms = term's search\r\n */\r\n transform(items: any, terms: any, fields: any, action: any): any {\r\n if (terms === undefined || terms === null) {\r\n return items;\r\n }\r\n\r\n return items && items.filter(function (item) {\r\n if (!action) {\r\n action = 'eq';\r\n }\r\n if (!(terms instanceof Array)) {\r\n terms = [terms];\r\n }\r\n if (fields === undefined || fields === null) {\r\n for (const property in item) {\r\n if (item[property] === null || item[property] === undefined) {\r\n continue;\r\n }\r\n const itemValue = (item[property] instanceof Date) ? item[property] : Utils.datepickerToDate(item[property]);\r\n if (!itemValue) {\r\n continue;\r\n }\r\n for (const term of terms) {\r\n const termValue = (term instanceof Date) ? term : Utils.datepickerToDate(term);\r\n if (!termValue) {\r\n continue;\r\n }\r\n switch (action) {\r\n case 'eq':\r\n return itemValue === termValue;\r\n case 'lt':\r\n return itemValue < termValue;\r\n case 'gt':\r\n return itemValue > termValue;\r\n case 'lte':\r\n return itemValue <= termValue;\r\n case 'gte':\r\n return itemValue >= termValue;\r\n }\r\n }\r\n }\r\n } else {\r\n if (!(fields instanceof Array)) {\r\n fields = [fields];\r\n }\r\n for (const field of fields) {\r\n let itemValue = item;\r\n field.split('.').forEach(val => {\r\n itemValue = itemValue[val];\r\n });\r\n\r\n if (itemValue !== null && itemValue !== undefined) {\r\n itemValue = (itemValue instanceof Date) ? itemValue : Utils.datepickerToDate(itemValue);\r\n if (!itemValue) {\r\n continue;\r\n }\r\n for (const term of terms) {\r\n const termValue = !(term instanceof Date) ? Utils.datepickerToDate(term) : term;\r\n if (!termValue) {\r\n continue;\r\n }\r\n switch (action) {\r\n case 'eq':\r\n return itemValue === termValue;\r\n case 'lt':\r\n return itemValue < termValue;\r\n case 'gt':\r\n return itemValue > termValue;\r\n case 'lte':\r\n return itemValue <= termValue;\r\n case 'gte':\r\n return itemValue >= termValue;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe extends DatePipe implements PipeTransform {\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null;\r\n transform(value: any): string | null {\r\n value = typeof value === 'string' ? new Date(value) : value;\r\n if (value && value instanceof Date && !isNaN(value.getTime())) {\r\n return super.transform(value, 'dd.MM.yyyy');\r\n }\r\n return null;\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dateTimeFormat'\r\n})\r\nexport class DateTimeFormatPipe extends DatePipe implements PipeTransform {\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null;\r\n transform(value: any): string | null {\r\n value = typeof value === 'string' ? new Date(value) : value;\r\n if (value && value instanceof Date && !isNaN(value.getTime())) {\r\n return super.transform(value, 'dd.MM.yyyy HH:mm');\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n/*\r\n * Convert bytes into largest possible unit.\r\n * Takes an precision argument that defaults to 2.\r\n * Usage:\r\n * bytes | fileSize:precision\r\n * Example:\r\n * {{ 1024 | fileSize}}\r\n * formats to: 1 KB\r\n*/\r\n@Pipe({ name: \"fileSize\" })\r\nexport class FileSizePipe implements PipeTransform {\r\n private units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'];\r\n\r\n transform(kbytes: number = 0, precision: number = 1): string {\r\n if (isNaN(parseFloat(String(kbytes))) || !isFinite(kbytes)) {\r\n return '-';\r\n }\r\n\r\n const bytes = kbytes * 1024;\r\n const number = Math.floor(Math.log(bytes) / Math.log(1024));\r\n\r\n return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + this.units[number];\r\n }\r\n}\r\n","import {Injectable, Pipe, PipeTransform} from '@angular/core';\r\n\r\nimport {Utils} from './../tools/utils';\r\n\r\n@Pipe({\r\n name: 'filterBy'\r\n})\r\n@Injectable()\r\nexport class FilterByPipe implements PipeTransform {\r\n\r\n /**\r\n * @items = object from array\r\n * @term = term's search\r\n */\r\n transform(items: any, terms: any, fields: any): any {\r\n if (terms === undefined || terms === null || terms === '') {\r\n return items;\r\n }\r\n\r\n return items && items.filter(function (item) {\r\n if (!(terms instanceof Array)) {\r\n terms = [terms];\r\n }\r\n if (fields === undefined || fields === null || fields === '') {\r\n for (const property in item) {\r\n if (item == null || item == undefined || property == undefined || !item.hasOwnProperty(property)) {\r\n continue;\r\n }\r\n let value: string = item[property].toString().toLowerCase();\r\n if (item[property] instanceof Date) {\r\n value = Utils.performPipeOperation('dateFormat', item[property]);\r\n value = value || '';\r\n }\r\n for (const term of terms) {\r\n if (term === undefined || term === null || term === ''\r\n || value.includes(term.toString().toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n }\r\n } else {\r\n if (!(fields instanceof Array)) {\r\n fields = [fields];\r\n }\r\n for (const field of fields) {\r\n if (field) {\r\n let itemValue = item;\r\n field.split('.').forEach(val => {\r\n if (itemValue != null && itemValue != undefined && itemValue.hasOwnProperty(val)) {\r\n itemValue = itemValue[val];\r\n }\r\n });\r\n\r\n if (itemValue !== null && itemValue !== undefined) {\r\n let value: string = itemValue.toString().toLowerCase();\r\n if (itemValue instanceof Date) {\r\n value = Utils.performPipeOperation('dateFormat', itemValue);\r\n value = value || '';\r\n }\r\n for (const term of terms) {\r\n if (term === undefined || term === null || term === ''\r\n || value.includes(term.toString().toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { Utils } from './../tools/utils';\r\n\r\n@Pipe({\r\n name: 'filterIncidentsBy'\r\n})\r\n@Injectable()\r\nexport class FilterIncidentsByPipe implements PipeTransform {\r\n\r\n /**\r\n * @items = object from array\r\n * @term = term's search\r\n */\r\n transform(items: any, terms: any, fields: any, translations: any): any {\r\n if (terms === undefined || terms === null || terms === '') {\r\n return items;\r\n }\r\n\r\n return items && items.filter(function (item) {\r\n if (!(terms instanceof Array)) {\r\n terms = [terms];\r\n }\r\n if (fields === undefined || fields === null || fields === '') {\r\n for (const property in item) {\r\n if (item[property] === null || item[property] === undefined) {\r\n continue;\r\n }\r\n let value: string = item[property].toString().toLowerCase();\r\n if (item[property] instanceof Date) {\r\n value = Utils.performPipeOperation('dateFormat', item[property]);\r\n value = value || '';\r\n }\r\n for (const term of terms) {\r\n if (term === undefined || term === null || term === '' || value.includes(term.toString().toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n }\r\n } else {\r\n if (!(fields instanceof Array)) {\r\n fields = [fields];\r\n }\r\n\r\n for (const field of fields) {\r\n if (field) {\r\n let itemValue = item;\r\n const f = field.split('.');\r\n\r\n if (f.length === 1) {\r\n itemValue = itemValue[f[0]];\r\n } else if (f.length === 2) {\r\n if (!itemValue[f[0]]) {\r\n return false;\r\n }\r\n\r\n itemValue = itemValue[f[0]][f[1]];\r\n } else {\r\n if (!itemValue[f[0]]) {\r\n return false;\r\n }\r\n\r\n itemValue = itemValue[f[0]][f[1]][f[2]];\r\n }\r\n\r\n if (itemValue !== null && itemValue !== undefined) {\r\n let value: string = itemValue.toString().toLowerCase();\r\n\r\n if (itemValue instanceof Date) {\r\n value = Utils.performPipeOperation('dateFormat', itemValue);\r\n value = value || '';\r\n }\r\n \r\n for (const term of terms) {\r\n if (field === 'Type' || field === 'Schedule.CycleUnit') {\r\n value = translations[itemValue].toLowerCase();\r\n }\r\n \r\n if (term === undefined || term === null || term === '' || value.includes(term.toString().toLowerCase())) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"orderBy\",\r\n pure: true\r\n})\r\nexport class OrderPipe implements PipeTransform {\r\n /**\r\n * Check if a value is a string\r\n *\r\n * @param value\r\n */\r\n static isString(value: any) {\r\n return typeof value === \"string\" || value instanceof String;\r\n }\r\n\r\n /**\r\n * Sorts values ignoring the case\r\n *\r\n * @param a\r\n * @param b\r\n */\r\n static caseInsensitiveSort(a: any, b: any) {\r\n if (OrderPipe.isString(a) && OrderPipe.isString(b)) {\r\n return a.localeCompare(b);\r\n }\r\n return OrderPipe.defaultCompare(a, b);\r\n }\r\n\r\n /**\r\n * Default compare method\r\n *\r\n * @param a\r\n * @param b\r\n */\r\n static defaultCompare(a: any, b: any) {\r\n if (a instanceof Date) {\r\n a = a.getTime();\r\n b = b.getTime();\r\n }\r\n if (a === b) {\r\n return 0;\r\n }\r\n if (a == null) {\r\n return 1;\r\n }\r\n if (b == null) {\r\n return -1;\r\n }\r\n return a > b ? 1 : -1;\r\n }\r\n\r\n /**\r\n * Parse expression, split into items\r\n * @param expression\r\n * @returns {string[]}\r\n */\r\n static parseExpression(expression: string): string[] {\r\n expression = expression.replace(/\\[(\\w+)\\]/g, \".$1\");\r\n expression = expression.replace(/^\\./, \"\");\r\n return expression.split(\".\");\r\n }\r\n\r\n /**\r\n * Get value by expression\r\n *\r\n * @param object\r\n * @param expression\r\n * @returns {any}\r\n */\r\n static getValue(object: any, expression: string[]) {\r\n for (let i = 0, n = expression.length; i < n; ++i) {\r\n if (!object) {\r\n return;\r\n }\r\n const k = expression[i];\r\n if (!(k in object)) {\r\n return;\r\n }\r\n if (typeof object[k] === \"function\") {\r\n object = object[k]();\r\n } else {\r\n object = object[k];\r\n }\r\n }\r\n\r\n return object;\r\n }\r\n\r\n /**\r\n * Set value by expression\r\n *\r\n * @param object\r\n * @param value\r\n * @param expression\r\n */\r\n static setValue(object: any, value: any, expression: string[]) {\r\n let i;\r\n for (i = 0; i < expression.length - 1; i++) {\r\n object = object[expression[i]];\r\n }\r\n\r\n object[expression[i]] = value;\r\n }\r\n\r\n transform(\r\n value: any | any[],\r\n expression?: any,\r\n reverse?: boolean,\r\n isCaseInsensitive: boolean = false,\r\n comparator?: Function\r\n ): any {\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n if (Array.isArray(expression)) {\r\n return this.multiExpressionTransform(\r\n value,\r\n expression,\r\n reverse,\r\n isCaseInsensitive,\r\n comparator\r\n );\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return this.sortArray(\r\n value.slice(),\r\n expression,\r\n reverse,\r\n isCaseInsensitive,\r\n comparator\r\n );\r\n }\r\n\r\n if (typeof value === \"object\") {\r\n return this.transformObject(\r\n Object.assign({}, value),\r\n expression,\r\n reverse,\r\n isCaseInsensitive,\r\n comparator\r\n );\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Sort array\r\n *\r\n * @param value\r\n * @param expression\r\n * @param reverse\r\n * @param isCaseInsensitive\r\n * @param comparator\r\n * @returns {any[]}\r\n */\r\n private sortArray(\r\n value: any[],\r\n expression?: any,\r\n reverse?: boolean,\r\n isCaseInsensitive?: boolean,\r\n comparator?: Function\r\n ): any[] {\r\n const isDeepLink = expression && expression.indexOf(\".\") !== -1;\r\n\r\n if (isDeepLink) {\r\n expression = OrderPipe.parseExpression(expression);\r\n }\r\n\r\n let compareFn: Function;\r\n\r\n if (comparator && typeof comparator === \"function\") {\r\n compareFn = comparator;\r\n } else {\r\n compareFn = isCaseInsensitive\r\n ? OrderPipe.caseInsensitiveSort\r\n : OrderPipe.defaultCompare;\r\n }\r\n\r\n const array: any[] = value.sort((a: any, b: any): number => {\r\n if (!expression) {\r\n return compareFn(a, b);\r\n }\r\n\r\n if (!isDeepLink) {\r\n if (a && b) {\r\n return compareFn(a[expression], b[expression]);\r\n }\r\n return compareFn(a, b);\r\n }\r\n\r\n return compareFn(\r\n OrderPipe.getValue(a, expression),\r\n OrderPipe.getValue(b, expression)\r\n );\r\n });\r\n\r\n if (reverse) {\r\n return array.reverse();\r\n }\r\n\r\n return array;\r\n }\r\n\r\n /**\r\n * Transform Object\r\n *\r\n * @param value\r\n * @param expression\r\n * @param reverse\r\n * @param isCaseInsensitive\r\n * @param comparator\r\n * @returns {any[]}\r\n */\r\n private transformObject(\r\n value: any | any[],\r\n expression?: any,\r\n reverse?: boolean,\r\n isCaseInsensitive?: boolean,\r\n comparator?: Function\r\n ): any {\r\n const parsedExpression = OrderPipe.parseExpression(expression);\r\n let lastPredicate = parsedExpression.pop();\r\n let oldValue = OrderPipe.getValue(value, parsedExpression);\r\n\r\n if (!Array.isArray(oldValue)) {\r\n parsedExpression.push(lastPredicate);\r\n lastPredicate = null;\r\n oldValue = OrderPipe.getValue(value, parsedExpression);\r\n }\r\n\r\n if (!oldValue) {\r\n return value;\r\n }\r\n\r\n OrderPipe.setValue(\r\n value,\r\n this.transform(oldValue, lastPredicate, reverse, isCaseInsensitive),\r\n parsedExpression\r\n );\r\n return value;\r\n }\r\n\r\n /**\r\n * Apply multiple expressions\r\n *\r\n * @param value\r\n * @param {any[]} expressions\r\n * @param {boolean} reverse\r\n * @param {boolean} isCaseInsensitive\r\n * @param {Function} comparator\r\n * @returns {any}\r\n */\r\n private multiExpressionTransform(\r\n value: any,\r\n expressions: any[],\r\n reverse: boolean,\r\n isCaseInsensitive: boolean = false,\r\n comparator?: Function\r\n ): any {\r\n return expressions.reverse().reduce((result: any, expression: any) => {\r\n return this.transform(\r\n result,\r\n expression,\r\n reverse,\r\n isCaseInsensitive,\r\n comparator\r\n );\r\n }, value);\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { DomSanitizer, SafeUrl } from \"@angular/platform-browser\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n@Pipe({ name: \"secureDownloadToken\" })\r\nexport class SecureDownloadTokenPipe implements PipeTransform {\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) {}\r\n\r\n transform(url): Observable {\r\n return this.http.get(url, { responseType: \"blob\" }).pipe(\r\n map((val) => {\r\n const ret = this.sanitizer.bypassSecurityTrustUrl(\r\n URL.createObjectURL(val)\r\n );\r\n return ret;\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-confirmation-modal',\r\n templateUrl: './confirmation.modal.html'\r\n})\r\n\r\nexport class ConfirmationModal {\r\n\r\n\r\n public static YES_VALUE: string = 'Yes';\r\n public static CANCEL_VALUE: string = 'Cancel';\r\n\r\n public yesValue = ConfirmationModal.YES_VALUE;\r\n public cancelValue = ConfirmationModal.CANCEL_VALUE;\r\n\r\n @Input() message;\r\n @Input() cancelButton;\r\n @Input() yesButton;\r\n @Input() title;\r\n\r\n @Input() hideYesButton = false;\r\n @Input() hideCancelButton = false;\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-image-preview-modal',\r\n templateUrl: './image-preview.modal.html'\r\n})\r\n\r\nexport class ImagePreviewModal {\r\n\r\n _imageDownloadToken: string;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal\r\n ) { }\r\n\r\n @Input()\r\n set imageDownloadToken(imageDownloadToken: string) {\r\n // replace width url attribute in download token url to max 3200px for the ImageResizer to work\r\n imageDownloadToken = imageDownloadToken.replace(/w=\\d+&*/, 'w=3200&').replace(/h=\\d+&*/, 'h=3200&');\r\n this._imageDownloadToken = imageDownloadToken;\r\n }\r\n\r\n get imageDownloadToken() {\r\n return this._imageDownloadToken;\r\n }\r\n}\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { DomSanitizer, SafeUrl } from \"@angular/platform-browser\";\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\n@Component({\r\n selector: \"app-office-preview-modal\",\r\n templateUrl: \"./office-preview.modal.html\",\r\n})\r\nexport class OfficePreviewModal {\r\n @Input()\r\n filename: string;\r\n\r\n _officeDownloadToken: string;\r\n officeSafeUrl: SafeUrl;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n private sanitizer: DomSanitizer\r\n ) {}\r\n\r\n @Input()\r\n set officeDownloadToken(officeDownloadToken: string) {\r\n this._officeDownloadToken = officeDownloadToken;\r\n\r\n officeDownloadToken =\r\n \"https://view.officeapps.live.com/op/view.aspx?src=\" +\r\n officeDownloadToken;\r\n this.officeSafeUrl =\r\n this.sanitizer.bypassSecurityTrustResourceUrl(officeDownloadToken);\r\n }\r\n\r\n get officeDownloadToken() {\r\n return this._officeDownloadToken;\r\n }\r\n}\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport * as $ from \"jquery\";\r\nimport { PDFDocumentProxy } from \"ng2-pdf-viewer\";\r\n\r\n@Component({\r\n selector: \"app-pdf-modal\",\r\n templateUrl: \"./pdf.modal.html\",\r\n})\r\nexport class PdfModal {\r\n @Input()\r\n filename: string;\r\n\r\n @Input()\r\n pdfDocumentToken: string;\r\n\r\n @Input()\r\n onComplete: () => void;\r\n\r\n pageCount: number;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n private toasterService: ToasterService\r\n ) {}\r\n\r\n onAfterLoadComplete(pdf: PDFDocumentProxy) {\r\n // temp save pdf page count for the on complete function\r\n this.pageCount = pdf.numPages;\r\n }\r\n\r\n onPageRendered(e: any) {\r\n $(\"#loadingoverlay\").show(); // in case the overlay is cancelled by other function somewhere else\r\n // after all pages are rendered, call onComplete\r\n this.pageCount--;\r\n if (this.pageCount === 0 && this.onComplete) {\r\n this.onComplete();\r\n }\r\n }\r\n\r\n onError(error: any) {\r\n this.toasterService.pop(\r\n \"error\",\r\n \"\",\r\n \"Fehler beim Laden des PDF Dokuments. \" + error\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport * as $ from \"jquery\";\r\n\r\nimport { ImagePreviewModal } from \"./image-preview.modal\";\r\nimport { OfficePreviewModal } from \"./office-preview.modal\";\r\nimport { PdfModal } from \"./pdf.modal\";\r\n\r\n@Injectable()\r\nexport class PopupService {\r\n constructor(private modalService: NgbModal) {}\r\n\r\n openPdfModal(downloadToken: string, filename: string) {\r\n $(\"#loadingoverlay\").show();\r\n const modalRef = this.modalService.open(PdfModal, {\r\n windowClass: \"pdf-modal\",\r\n });\r\n modalRef.componentInstance.filename = filename;\r\n modalRef.componentInstance.pdfDocumentToken = downloadToken;\r\n modalRef.componentInstance.onComplete = (): void => {\r\n $(\"#loadingoverlay\").hide();\r\n };\r\n }\r\n\r\n openImagePreviewModal(downloadToken: string) {\r\n const modalRef = this.modalService.open(ImagePreviewModal, {\r\n windowClass: \"pdf-modal\",\r\n });\r\n modalRef.componentInstance.imageDownloadToken = downloadToken;\r\n }\r\n\r\n openOfficePreviewModal(downloadToken: string, filename: string) {\r\n const modalRef = this.modalService.open(OfficePreviewModal, {\r\n windowClass: \"pdf-modal\",\r\n });\r\n modalRef.componentInstance.filename = filename;\r\n modalRef.componentInstance.officeDownloadToken = downloadToken;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { AppConfig } from \"./../bootstrap/app.config\";\r\nimport { GaebExport, GaebExportLog, NegativeReport } from \"./../model/gaeb\";\r\nimport { IdName } from \"./../model/idName\";\r\nimport { Utils } from \"./../tools/utils\";\r\n\r\n@Injectable()\r\nexport class GlobalService {\r\n // profile\r\n private checkPasswordPath = \"Account/CheckPassword\";\r\n private changePasswordPath = \"Account/ChangePassword\";\r\n private isUserValidPath = \"UserInfo/IsValid\";\r\n private registerPath = \"Account/Register\";\r\n\r\n // mandator\r\n private invitePath = \"Account/Invite\";\r\n\r\n // reports\r\n\r\n private tenderObjectGroupsPath = \"WebClient/GaebService/ListTenderObjectGroups\";\r\n private gaebExportPath = \"WebClient/GaebService/Export\";\r\n private gaebExportLogPath = \"WebClient/GaebService/ListExports\";\r\n\r\n private appInsights: ApplicationInsights;\r\n\r\n constructor(private httpClient: HttpClient, private config: AppConfig) {\r\n this.setupAppInsights();\r\n }\r\n\r\n logException(exception: Error) {\r\n this.appInsights?.setAuthenticatedUserContext(localStorage.getItem(\"infoUserUpn\"));\r\n this.appInsights?.trackException({ exception, error: exception });\r\n }\r\n\r\n checkPassword(email: string, password: string, isDataEncrypted: boolean): Observable {\r\n let httpHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n });\r\n let options = {\r\n headers: httpHeaders,\r\n };\r\n return this.httpClient.post(\r\n this.config.getLoginHostURL() + this.checkPasswordPath,\r\n {\r\n email,\r\n password,\r\n isDataEncrypted,\r\n },\r\n\r\n options\r\n );\r\n }\r\n\r\n isUserValid(email: string, isDataEncrypted: boolean): Observable {\r\n let httpHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n });\r\n let options = {\r\n headers: httpHeaders,\r\n };\r\n return this.httpClient.post(\r\n this.config.getLoginHostURL() + this.isUserValidPath,\r\n {\r\n email: email,\r\n isDataEncrypted: isDataEncrypted,\r\n },\r\n options\r\n );\r\n }\r\n\r\n changePassword(password: string, newPassword: string, email: string, isDataEncrypted: boolean): Observable {\r\n let httpHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n });\r\n let options = {\r\n headers: httpHeaders,\r\n };\r\n return this.httpClient.post(\r\n this.config.getLoginHostURL() + this.changePasswordPath,\r\n {\r\n email: email,\r\n password: password,\r\n newPassword: newPassword,\r\n isDataEncrypted: isDataEncrypted,\r\n },\r\n options\r\n );\r\n }\r\n\r\n register(email: string): Observable {\r\n let httpHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n });\r\n let options = {\r\n headers: httpHeaders,\r\n };\r\n return this.httpClient.post(this.config.getLoginHostURL() + this.registerPath, { email: email }, options);\r\n }\r\n\r\n invite(email: string, buildingIds: string[]): Observable {\r\n let httpHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n });\r\n let options = {\r\n headers: httpHeaders,\r\n };\r\n return this.httpClient.post(\r\n this.config.getLoginHostURL() + this.invitePath,\r\n { email: email, BuildingIds: buildingIds },\r\n options\r\n );\r\n }\r\n\r\n downloadDocument(url: string): Observable {\r\n return this.httpClient.get(url, { responseType: \"blob\" });\r\n }\r\n\r\n getBuildingIdFromUrl() {\r\n var href = window.location.href;\r\n return Utils.retrieveBuildingId(href);\r\n }\r\n\r\n getFacilityIdFromUrl() {\r\n var href = window.location.href;\r\n return Utils.retrieveFacilityId(href);\r\n }\r\n\r\n getTenderObjectGroups(): Observable {\r\n return this.httpClient.get(this.config.getBaseUrl() + Utils.buildUrl(this.tenderObjectGroupsPath)).pipe(\r\n map((tenderObjectGroupArray) => {\r\n return tenderObjectGroupArray.map((tenderObjectGroup) => mapIdNameAPIintoIdName(tenderObjectGroup));\r\n })\r\n );\r\n }\r\n gaebExport(buildingIds: string[], tenderObjectGroupId: number, zeroPosition: boolean): Observable {\r\n return this.httpClient\r\n .post(this.config.getBaseUrl() + Utils.buildUrl(this.gaebExportPath), {\r\n UTs: buildingIds,\r\n TenderObjectGroupId: tenderObjectGroupId,\r\n Is0PositionExport: !!zeroPosition,\r\n })\r\n .pipe(map((gaebExport) => mapGaebExportAPIintoGaebExport(gaebExport)));\r\n }\r\n gaebExportLog(): Observable {\r\n return this.httpClient.get(this.config.getBaseUrl() + Utils.buildUrl(this.gaebExportLogPath)).pipe(\r\n map((gaebExportLogArray) => {\r\n return gaebExportLogArray.map((gaebExportLog) => mapGaebExportLogAPIintoGaebExportLog(gaebExportLog));\r\n })\r\n );\r\n }\r\n\r\n private setupAppInsights(): void {\r\n var appInsightsKey = this.config.getappInsightsKey();\r\n if (appInsightsKey) {\r\n this.appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: appInsightsKey,\r\n enableCorsCorrelation: true,\r\n },\r\n });\r\n this.appInsights.loadAppInsights();\r\n this.appInsights.trackPageView(); // Manually call trackPageView to establish the current user/session/pageview\r\n\r\n var telemetryInitializer = (envelope) => {\r\n envelope.tags[\"ai.cloud.role\"] = \"OB3\";\r\n envelope.tags[\"ai.cloud.roleInstance\"] = \"OB3\";\r\n };\r\n this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n }\r\n }\r\n}\r\n\r\nfunction mapIdNameAPIintoIdName(data: any): IdName {\r\n const x: IdName = { Id: data.Id, Name: data.Name };\r\n return x;\r\n}\r\n\r\nfunction mapGaebExportAPIintoGaebExport(data: any): GaebExport {\r\n const g: GaebExport = new GaebExport();\r\n\r\n g.fileKey = data.FileKey;\r\n g.negativeReportIEs = data.NegativReportIE.map((nr) => mapNegativeReportAPIintoNegativeReport(nr));\r\n g.validIECount = data.ValideIECount;\r\n g.negativeReportAllIECount = data.NegativReportAllIECount;\r\n g.negativeReportIMs = data.NegativReportIM.map((nr) => mapNegativeReportAPIintoNegativeReport(nr));\r\n g.validIMCount = data.ValideIMCount;\r\n g.negativeReportAllIMCount = data.NegativReportAllIMCount;\r\n\r\n return g;\r\n}\r\n\r\nfunction mapNegativeReportAPIintoNegativeReport(data: any): NegativeReport {\r\n const nr: NegativeReport = new NegativeReport();\r\n\r\n nr.id = data.Id;\r\n nr.UT = data.UT;\r\n nr.buildingName = data.BuildingName;\r\n nr.shortName = data.ShortName;\r\n nr.longName = data.LongName;\r\n nr.customId = data.CustomId;\r\n nr.roomName = data.RoomName;\r\n\r\n return nr;\r\n}\r\n\r\nfunction mapGaebExportLogAPIintoGaebExportLog(data: any): GaebExportLog {\r\n const gei: GaebExportLog = new GaebExportLog();\r\n\r\n gei.id = data.Id;\r\n gei.UT = data.UT;\r\n gei.createDate = Utils.jsonToDate(data.CreateDate);\r\n gei.lastDownload = Utils.jsonToDate(data.LastDownload);\r\n gei.is0PositionExport = data.Is0PositionExport;\r\n gei.sizeInKB = data.SizeInKB;\r\n\r\n return gei;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport ConsoleAppender from 'log4ts/build/appenders/ConsoleAppender';\r\nimport { IAppender } from 'log4ts/build/IAppender';\r\nimport { ILayout } from 'log4ts/build/ILayout';\r\nimport BasicLayout from 'log4ts/build/layouts/BasicLayout';\r\nimport Logger from 'log4ts/build/Logger';\r\nimport LoggerConfig from 'log4ts/build/LoggerConfig';\r\nimport { LogLevel } from 'log4ts/build/LogLevel';\r\n\r\n@Injectable()\r\nexport class LoggerService {\r\n public log: Logger;\r\n\r\n private appender: IAppender;\r\n private layout: ILayout;\r\n private config: LoggerConfig;\r\n\r\n constructor() {\r\n this.layout = new BasicLayout();\r\n this.appender = new ConsoleAppender();\r\n this.appender.setLayout(this.layout);\r\n this.config = new LoggerConfig(this.appender);\r\n this.config.setLevel(LogLevel.ALL);\r\n Logger.setConfig(this.config);\r\n }\r\n\r\n getLogger(forClass?: string): ILogger {\r\n return new Logger(forClass);\r\n }\r\n}\r\n\r\nexport interface ILogger {\r\n info(message: string, ...params: any[]);\r\n fatal(message: string, ...params: any[]);\r\n error(message: string, ...params: any[]);\r\n debug(message: string, ...params: any[]);\r\n warn(message: string, ...params: any[]);\r\n trace(message: string, ...params: any[]);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AppConfig } from '../bootstrap/app.config';\r\nimport { Utils } from '../tools/utils';\r\n\r\n@Injectable()\r\nexport class LoginService {\r\n\r\n // User Settings\r\n private saveSettingsPath = 'settings/${saveSettings}';\r\n private readSettingsPath = 'settings/${readSettings}';\r\n\r\n constructor(\r\n private httpClient: HttpClient, \r\n private config: AppConfig) {\r\n }\r\n\r\n saveSettings(readSettings: string, value: string): Observable {\r\n return this.httpClient.post(this.config.getLoginHostURL() + Utils.buildUrl(this.saveSettingsPath, { 'saveSettings': readSettings}), {value}, { responseType: 'text' });\r\n }\r\n\r\n readSettings(readSettings: string): Observable {\r\n return this.httpClient.get(this.config.getLoginHostURL() + Utils.buildUrl(this.readSettingsPath, { 'readSettings': readSettings }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class NavigatorService {\r\n\r\n private url: string;\r\n private navigationAction: string;\r\n\r\n constructor() { }\r\n\r\n // TODO think about storing data also in localstorage (in case user reloads page)\r\n\r\n public provideBackUrl(backUrl: string, navAction?: string): void {\r\n this.url = backUrl;\r\n this.navigationAction = navAction;\r\n }\r\n\r\n public getBackUrl(): string {\r\n return this.url;\r\n }\r\n\r\n public getNavigationAction(): string {\r\n return this.navigationAction;\r\n }\r\n\r\n // TODO move this very stupid and simple cleanup to proper registration and finish behavior with observer patterns\r\n // example: all possible listeners (of these navigation+action) behaviors ( = detail and list pages) register this service with their specific ACTION implementation\r\n // when a post-wizard-navigation action is required the creator (whatever action requires e.h. a wizarding page process) defines the wanted ACTION.\r\n // this service counts all registered subscribers and after all subscribers do their post-process action, this data (url and action) will be deleted.\r\n public finishNavigation(): void {\r\n this.url = undefined;\r\n this.navigationAction = undefined;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { AttributeValueData } from \"app/core/model/attributeValueData\";\r\nimport { ODataCoreService } from \"app/core/odata-services/odata.coreapi.service\";\r\nimport { PropertyCore } from \"app/core/odata/odata.coreapi\";\r\nimport { from, Observable } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AttributeValuesService {\r\n constructor(private odataCoreService: ODataCoreService) {}\r\n\r\n public getAttributeTypes$(): Observable {\r\n return from(\r\n this.odataCoreService.AttributeType.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Set\");\r\n x.Expand(\"MeasurementUnit\");\r\n })\r\n .OrderBy(\"Order\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n );\r\n }\r\n\r\n public getEquipmentAttributesData(\r\n equipment: PropertyCore.Equipment,\r\n allAttributeTypes: PropertyCore.AttributeType[]\r\n ): AttributeValueData[] {\r\n let result: AttributeValueData[] = [];\r\n\r\n equipment.AttributeValues.forEach((attr) => {\r\n let attributeType = allAttributeTypes.find((t) => t.Id == attr.Id);\r\n\r\n let attributeValueWithData: AttributeValueData = {\r\n AttributeTypeId: attributeType.Id,\r\n Name: attributeType.Name,\r\n Description: attributeType.Description,\r\n MeasurementUnit: attributeType.MeasurementUnit,\r\n IsOptional: attributeType.IsOptional,\r\n AttributeCategory: attributeType.Set,\r\n ValueType: attributeType.ValueType,\r\n Value: attr.Value,\r\n };\r\n\r\n result.push(attributeValueWithData);\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ODataCoreService } from \"app/core/odata-services/odata.coreapi.service\";\r\nimport { PropertyCore } from \"app/core/odata/odata.coreapi\";\r\nimport { Utils } from \"app/core/tools/utils\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { from, Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class BuildingService {\r\n constructor(private odataCoreService: ODataCoreService) {}\r\n\r\n public getBuildings(): Observable {\r\n return from(\r\n this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Expand((b) => {\r\n b.Expand(\"Documents\", (y) => {\r\n y.Expand(\"DocumentType\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })\r\n )\r\n );\r\n }\r\n\r\n public getBuildingsWithInspectionDuties(\r\n buildingIds: string[]\r\n ): Observable {\r\n if (!buildingIds || !buildingIds.length) return;\r\n\r\n return from(\r\n this.odataCoreService.Building.Query()\r\n .Select(\"Identity\", \"Name\", \"Address\", \"Id\")\r\n .Expand((b) => {\r\n b.Expand(\"Equipments\", (e) => {\r\n e.Select(\"Id\");\r\n e.Select(\"Identity\");\r\n e.Select(\"CustomId\");\r\n e.Select(\"Name\");\r\n e.Select(\"Room\");\r\n e.Select(\"HasInspectionDutiesActivated\");\r\n e.Select(\"AttributeValues\");\r\n //e.Select(\"QuickResponseCodes\");\r\n e.Select(\"EquipmentType\");\r\n e.Select(\"Comment\");\r\n e.Select(\"TuevNo\");\r\n e.Expand(\"Room\", (r) => {\r\n r.Select(\"Name\");\r\n r.Select(\"Floor\");\r\n r.Expand(\"Floor\");\r\n });\r\n e.Expand(\"EquipmentType\");\r\n e.Expand(\"AttributeValues\");\r\n e.Expand(\"QuickResponseCodes\", (qrCode) => {\r\n qrCode.Select(\"Value\");\r\n });\r\n e.Expand(\"OperatorTaskMarkers\", (z) => {\r\n z.Expand(\"OperatorTask\");\r\n });\r\n e.Expand(\"InspectionDuties\", (z) => {\r\n z.Select(\"IsDisabled\");\r\n z.Expand(\"Module\", (a) => {\r\n a.Select(\"Id\");\r\n a.Select(\"CustomId\");\r\n a.Select(\"Name\");\r\n });\r\n z.Expand(\"OperatorTask\", (a) => {\r\n a.Select(\"Id\");\r\n a.Select(\"Identity\");\r\n a.Select(\"Guidelines\");\r\n a.Select(\"Subject\");\r\n a.Select(\"Qualification\");\r\n });\r\n z.Expand(\"Schedule\", (a) => {\r\n a.Select(\"Cycle\");\r\n a.Select(\"CycleUnit\");\r\n a.Select(\"CycleStart\");\r\n });\r\n });\r\n });\r\n })\r\n .Filter((x) => {\r\n var filterConnection = x.EqualsField(\r\n \"Identity\",\r\n Guid.parse(buildingIds[0])\r\n );\r\n buildingIds.splice(1).forEach((id) => {\r\n filterConnection.Or.EqualsField(\"Identity\", Guid.parse(id));\r\n });\r\n })\r\n .Exec()\r\n .then((x) => {\r\n return x.value;\r\n })\r\n ).pipe(map((res) => res.map((b) => Utils.mapAllJSONDatesToDates(b))));\r\n }\r\n\r\n public getBuildingUniqueInspectionDuties(\r\n buildingIds: string[]\r\n ): Observable {\r\n return this.getBuildingsWithInspectionDuties(buildingIds).pipe(\r\n map((buildings) =>\r\n this.getUniqueOperatorTasksWithInspectionDuties(buildings)\r\n )\r\n );\r\n }\r\n\r\n private getUniqueOperatorTasksWithInspectionDuties(\r\n buildings: PropertyCore.Building[]\r\n ): OperatorTaskExtendedInspectionDuties[] {\r\n var uniqueInspectionDuties: PropertyCore.InspectionDuty[] = [];\r\n\r\n var operatorTasksDict: {\r\n [key: string]: OperatorTaskWithInspectionDutyDictionaryItem;\r\n } = {};\r\n\r\n buildings.forEach((b) => {\r\n b.Equipments.forEach((e) => {\r\n e.InspectionDuties.forEach((i) => {\r\n if (!operatorTasksDict[i.OperatorTask.Identity]) {\r\n operatorTasksDict[i.OperatorTask.Identity] = <\r\n OperatorTaskWithInspectionDutyDictionaryItem\r\n >{\r\n operatorTask: i.OperatorTask,\r\n inspectionDuties: [],\r\n };\r\n }\r\n operatorTasksDict[i.OperatorTask.Identity].inspectionDuties.push({\r\n ...i,\r\n OperatorTask: null,\r\n Building: b,\r\n Equipment: e,\r\n });\r\n });\r\n });\r\n });\r\n\r\n var result: OperatorTaskExtendedInspectionDuties[] = [];\r\n for (var key of Object.keys(operatorTasksDict)) {\r\n let operatorTask = {\r\n ...operatorTasksDict[key].operatorTask,\r\n InspectionDuties: operatorTasksDict[key].inspectionDuties,\r\n };\r\n\r\n result.push(operatorTask);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nclass OperatorTaskWithInspectionDutyDictionaryItem {\r\n operatorTask: OperatorTaskExtendedInspectionDuties;\r\n inspectionDuties: InspectionDutyExtendedWithBuildingAndEquipment[];\r\n}\r\n\r\nexport interface OperatorTaskExtendedInspectionDuties\r\n extends PropertyCore.OperatorTask {\r\n InspectionDuties?: InspectionDutyExtendedWithBuildingAndEquipment[];\r\n}\r\n\r\nexport interface InspectionDutyExtendedWithBuildingAndEquipment\r\n extends PropertyCore.InspectionDuty {\r\n Building: PropertyCore.Building;\r\n Equipment: PropertyCore.Equipment;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ODataCoreService } from \"app/core/odata-services/odata.coreapi.service\";\r\nimport { Utils } from \"app/core/tools/utils\";\r\nimport { Mandator } from \"app/core/model/mandator\";\r\nimport { pipe, from, Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { Guid } from \"guid-typescript\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MandatorService {\r\n constructor(private odataCoreService: ODataCoreService) {}\r\n\r\n public getCurrentMandatorWithRights$(): Observable {\r\n return from(\r\n this.odataCoreService.Account.Query()\r\n .Filter((a) =>\r\n a.EqualsField(\r\n \"Identity\",\r\n Guid.parse(localStorage.getItem(\"mandator\"))\r\n )\r\n )\r\n .Expand((a) => {\r\n a.Expand(\"Profile\");\r\n a.Expand(\"Rights\", (y) => {\r\n y.Filter((z) =>\r\n z.EqualsField(\r\n \"Identity\",\r\n Guid.parse(localStorage.getItem(\"infoUserIdentity\"))\r\n )\r\n );\r\n });\r\n a.Expand(\"User\"),\r\n a.Expand(\"Roles\", (y) => {\r\n y.Expand(\"User\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(\r\n map((res) => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Mandator(), res[0]);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as XLSX from \"xlsx\";\r\nimport { FileService } from \"./file.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ExcelService {\r\n private EXCEL_TYPE =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n private EXCEL_EXTENSION = \".xlsx\";\r\n\r\n public static NOT_ALLOWED_SHEET_NAME_CHARACTERS = [\r\n \"\\\\\",\r\n \"/\",\r\n \"*\",\r\n \"?\",\r\n \":\",\r\n \"[\",\r\n \"]\",\r\n ];\r\n\r\n public static MAX_ALLOWED_SHEET_LENGTH_NAME = 31;\r\n\r\n constructor(private fileService: FileService) {}\r\n\r\n public getSaveSheetName(name: string): string {\r\n let result = name;\r\n ExcelService.NOT_ALLOWED_SHEET_NAME_CHARACTERS.forEach((char) => {\r\n result = result.replace(char, \"\");\r\n });\r\n\r\n result = result.slice(0, 31);\r\n\r\n return result;\r\n }\r\n\r\n createFile(name: string, sheets: SheetInfo[]): any {\r\n var wb = XLSX.utils.book_new();\r\n wb.Props = {\r\n Title: name,\r\n Author: \"netinformRE\",\r\n };\r\n\r\n sheets.forEach((sheet) => {\r\n let saveTitle = this.getSaveSheetName(sheet.title);\r\n wb.SheetNames.push(saveTitle);\r\n let ws = XLSX.utils.aoa_to_sheet(sheet.data);\r\n wb.Sheets[sheet.title] = ws;\r\n });\r\n\r\n let excelBuffer = XLSX.write(wb, {\r\n bookType: \"xlsx\",\r\n type: \"array\",\r\n });\r\n const data: Blob = new Blob([excelBuffer], { type: this.EXCEL_TYPE });\r\n return data;\r\n }\r\n\r\n public saveFile(name: string, sheets: SheetInfo[]): any {\r\n let excelBuffer = this.createFile(name, sheets);\r\n this.fileService.saveAs(excelBuffer, name + this.EXCEL_EXTENSION);\r\n }\r\n}\r\n\r\nexport interface SheetInfo {\r\n title: string;\r\n data: any[][];\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as FileSaver from \"file-saver\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class FileService {\r\n constructor() {}\r\n\r\n public saveAs(data: Blob, fileName: string): void {\r\n FileSaver.saveAs(data, fileName);\r\n }\r\n}\r\n","import { DatePipe, formatNumber } from '@angular/common';\r\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateFormatPipe } from './../pipes/dateFormat.pipe';\r\n\r\n\r\nexport class Utils {\r\n\r\n public static buildUrl(url: string, params?: any): string {\r\n\r\n\r\n // TODO\r\n /*\r\n private doLog(level: LogLevel, message: string, ...params: any[]) {\r\n if (level >= Logger.config.getLevel() && Logger.config.hasTag(this.tag)) {\r\n if (params != null && params.length > 0) {\r\n message = message.replace(/{(\\d+)}/g, (match, number) => params[number]);\r\n */\r\n\r\n if (params) {\r\n Object.keys(params).map(key => url = url.replace('${' + key + '}', params[key] == null ? '' : encodeURIComponent(params[key])));\r\n }\r\n return url;\r\n }\r\n\r\n public static retrieveBuildingId(href: string): string {\r\n var index = href.indexOf(\"building/\");\r\n var substr = href.substr(index + 9);\r\n var index2 = substr.indexOf(\"/\");\r\n var buil = substr.substr(0, index2);\r\n // console.log(buil);\r\n\r\n return buil;\r\n }\r\n\r\n public static retrieveFacilityId(href: string): string {\r\n var index3 = href.indexOf(\"equipment/\");\r\n var substr2 = href.substr(index3 + 10);\r\n var index4 = substr2.indexOf(\"/\");\r\n var eq = substr2.substr(0, index4);\r\n // console.log(eq);\r\n\r\n return eq;\r\n }\r\n\r\n public static isEmpty(text: string) {\r\n return (!text || 0 === text.length);\r\n }\r\n\r\n public static guid(): string {\r\n let d = new Date().getTime();\r\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n }\r\n\r\n public static toApiCent(jsAmount: any): number {\r\n if (typeof jsAmount == 'undefined') {\r\n return null;\r\n }\r\n\r\n if (jsAmount === 0) {\r\n return 0;\r\n }\r\n\r\n if (jsAmount === null) {\r\n return null;\r\n }\r\n\r\n if (jsAmount === '') {\r\n return null;\r\n }\r\n\r\n const res = jsAmount.toString().replace(',', '.');\r\n return Math.round(res * 100);\r\n }\r\n\r\n public static centToJsAmount(cent: number): number {\r\n if (cent == null) {\r\n return null;\r\n }\r\n return cent / 100;\r\n }\r\n\r\n public static datepickerToApiDate(date: NgbDateStruct): string {\r\n // IE bug for date format yyyy-MM-dd HH:mm, worksfine without the time format\r\n return this.transformDateToJson(this.datepickerToDate(date));\r\n }\r\n\r\n public static dateToJson(date: Date) {\r\n if (!date) {\r\n return null;\r\n }\r\n return this.transformDateToJson(date);\r\n }\r\n\r\n private static transformDateToJson(date: Date): string {\r\n return new DatePipe('de').transform(date, 'yyyy-MM-dd') + ' 00:00';\r\n }\r\n\r\n public static dateToDatepicker(date: Date): NgbDateStruct {\r\n if (date) {\r\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\r\n }\r\n return null;\r\n }\r\n\r\n public static datepickerToDate(date: NgbDateStruct): Date {\r\n if (!date || !date.year || !date.month || !date.day) {\r\n return null;\r\n }\r\n return new Date(date.year, date.month - 1, date.day);\r\n }\r\n\r\n public static jsonToDate(date: any): Date {\r\n let res: Date = null;\r\n if (date) {\r\n res = new Date(date);\r\n // 0001-01-01T00:00:00Z\r\n if (res.getFullYear() === 1) {\r\n res = null;\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n public static jsonToDatepicker(date: string): NgbDateStruct {\r\n return this.dateToDatepicker(this.jsonToDate(date));\r\n }\r\n\r\n public static yearsTillToday(startFrom: number = 1900): string[] {\r\n const years: string[] = [];\r\n for (let i = new Date().getFullYear(); i >= startFrom; i--) {\r\n years.push(String(i));\r\n }\r\n return years;\r\n }\r\n\r\n public static performPipeOperation(pipe: string, value: any): string {\r\n switch (pipe) {\r\n case 'dateFormat':\r\n return new DateFormatPipe('de').transform(value);\r\n case 'number':\r\n return formatNumber(value, 'de', '.2-2');\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public static mapAllJSONDatesToDates(obj: T): T {\r\n if (!obj) {\r\n return obj;\r\n }\r\n\r\n // [prop] syntax should be used as of typescript 3.9 as\r\n // Type Parameters That Extend any No Longer Act as any\r\n if (obj[\"Created\"]) {\r\n obj[\"Created\"] = this.jsonToDate(obj[\"Created\"]);\r\n }\r\n if (obj[\"DueDate\"]) {\r\n obj[\"DueDate\"] = this.jsonToDate(obj[\"DueDate\"]);\r\n }\r\n if (obj[\"RefDate\"]) {\r\n obj[\"RefDate\"] = this.jsonToDate(obj[\"RefDate\"]);\r\n }\r\n if (obj[\"ClosedDate\"]) {\r\n obj[\"ClosedDate\"] = this.jsonToDate(obj[\"ClosedDate\"]);\r\n }\r\n if (obj[\"CycleStart\"]) {\r\n obj[\"CycleStart\"] = this.jsonToDate(obj[\"CycleStart\"]);\r\n }\r\n if (obj[\"CycleNext\"]) {\r\n obj[\"CycleNext\"] = this.jsonToDate(obj[\"CycleNext\"]);\r\n }\r\n if (obj[\"CycleStop\"]) {\r\n obj[\"CycleStop\"] = this.jsonToDate(obj[\"CycleStop\"]);\r\n }\r\n if (obj[\"StartDate\"]) {\r\n obj[\"StartDate\"] = this.jsonToDate(obj[\"StartDate\"]);\r\n }\r\n if (obj[\"EndDate\"]) {\r\n obj[\"EndDate\"] = this.jsonToDate(obj[\"EndDate\"]);\r\n }\r\n if (obj[\"TimeStamp\"]) {\r\n obj[\"TimeStamp\"] = this.jsonToDate(obj[\"TimeStamp\"]);\r\n }\r\n if (obj[\"ResponseDate\"]) {\r\n obj[\"ResponseDate\"] = this.jsonToDate(obj[\"ResponseDate\"]);\r\n }\r\n if (obj[\"UpdateDate\"]) {\r\n obj[\"UpdateDate\"] = this.jsonToDate(obj[\"UpdateDate\"]);\r\n }\r\n Object.keys(obj).forEach(o => {\r\n if (typeof obj[o] === 'object') {\r\n this.mapAllJSONDatesToDates(obj[o]);\r\n }\r\n });\r\n return obj;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\r\nimport { Library } from '../model/odata';\r\n\r\n\r\nexport function countryValidatorFactory(): ValidatorFn {\r\n return (c: AbstractControl) => {\r\n const countryIdName: Library.Country = c.value;\r\n return countryIdName && countryIdName.Id === 0 ? { validateCountry: { valid: false } } : null;\r\n };\r\n}\r\n\r\n@Directive({\r\n selector: '[validateCountry][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: CountryValidator, multi: true }\r\n ]\r\n})\r\nexport class CountryValidator implements Validator {\r\n\r\n validator: ValidatorFn;\r\n\r\n constructor() {\r\n this.validator = countryValidatorFactory();\r\n }\r\n\r\n validate(control: AbstractControl): { [key: string]: any } {\r\n return this.validator(control);\r\n }\r\n}\r\n","import { Directive, forwardRef } from '@angular/core';\r\nimport { Validator } from '@angular/forms';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validators } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: \"[optionalEmail][formControlName],[optionalEmail][formControl],[optionalEmail][ngModel]\",\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => OptionalEmailValidator), multi: true }\r\n ]\r\n})\r\nexport class OptionalEmailValidator implements Validator {\r\n\r\n validate(c: AbstractControl): ValidationErrors|null {\r\n return c.value ? Validators.email(c) : null;\r\n }\r\n\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\r\nimport { Library } from '../model/odata';\r\n\r\n\r\nexport function regionValidatorFactory(): ValidatorFn {\r\n return (c: AbstractControl) => {\r\n const regionIdName: Library.Region = c.value;\r\n return regionIdName && regionIdName.Id === 0 ? { validateRegion: { valid: false } } : null;\r\n };\r\n}\r\n\r\n@Directive({\r\n selector: '[validateRegion][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: RegionValidator, multi: true }\r\n ]\r\n})\r\nexport class RegionValidator implements Validator {\r\n\r\n validator: ValidatorFn;\r\n\r\n constructor() {\r\n this.validator = regionValidatorFactory();\r\n }\r\n\r\n validate(control: AbstractControl): { [key: string]: any } {\r\n return this.validator(control);\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Observable, Subscription, from} from 'rxjs';\r\nimport {flatMap, switchMap, tap, map} from 'rxjs/operators';\r\nimport {DocumentType} from '../../../building/wizard/document/document-wizard-model';\r\nimport {NavigatorService} from '../../../core/shared/navigator.service';\r\nimport {IncidentState} from '../../../building/building-incident/incident-state.service';\r\nimport {IncidentCreateOuputData} from '../../../core/components/incident/incident-create-output-data';\r\nimport {Incident} from '../../../core/model/incident';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-conformity-detail',\r\n templateUrl: './conformity-detail.component.html',\r\n styleUrls: ['./conformity-detail.component.scss']\r\n})\r\nexport class ConformityDetailComponent implements OnInit, OnDestroy {\r\n\r\n incident$: Observable;\r\n defects$: Observable;\r\n incidentUT: string;\r\n\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private state: IncidentState,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private navigator: NavigatorService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.incident$ = this.route.paramMap.pipe(\r\n tap(params => this.incidentUT = params.get('incidentId')),\r\n switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.Event.Query()\r\n .Expand(x => {\r\n x.Expand(\"Response\"),\r\n x.Expand(\"Schedule\", xa => {\r\n xa.Expand(\"InspectionDuty\", xaa => {\r\n xaa.Select(\"Id\"),\r\n xaa.Expand(\"OperatorTask\", xaaa => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\")\r\n })\r\n }),\r\n xa.Expand(\"MaintenanceContract\", xab => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", xabb => {\r\n xabb.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"Building\", xb => {\r\n xb.Select(\"Name\"),\r\n xb.Select(\"Id\"),\r\n xb.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Equipment\", xc => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\"),\r\n xc.Expand(\"Room\", xcc => {\r\n xcc.Select(\"Name\"),\r\n xcc.Select(\"Id\"),\r\n xcc.Select(\"Identity\")\r\n xcc.Expand(\"Floor\", xccc => {\r\n xccc.Select(\"Id\"),\r\n xccc.Select(\"Name\")\r\n })\r\n })\r\n }),\r\n x.Expand(\"ServiceProvider\", xd => {\r\n xd.Select(\"Name\"),\r\n xd.Select(\"Id\"),\r\n xd.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Module\", xe => {\r\n xe.Select(\"Name\"),\r\n xe.Select(\"Id\"),\r\n xe.Select(\"Identity\"),\r\n xe.Expand(\"ModuleType\", xee => {\r\n xee.Select(\"Code\"),\r\n xee.Select(\"Id\"),\r\n xee.Select(\"Name\")\r\n })\r\n })\r\n x.Expand(\"KpiMarker\")\r\n })\r\n .Filter(x => x\r\n .EqualsField(\"Id\", (+params.get('incidentId'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Incident(), res[0])\r\n }))\r\n }));\r\n this.defects$ = this.incident$.pipe(flatMap(inc => from(this.odataCoreService.Event.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Parent\", \"Identity\"), Guid.parse(inc.Identity)))\r\n .Expand(x => {\r\n x.Expand(\"Parent\", y => {\r\n y.Select(\"Identity\")\r\n }),\r\n x.Expand(\"Schedule\"),\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\"),\r\n y.Select(\"CustomId\")\r\n }),\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\"),\r\n y.Select(\"Id\"),\r\n y.Select(\"Identity\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Incident(), i);\r\n })))\r\n ));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(): void {\r\n const viewTab = this.route.parent.firstChild.snapshot.paramMap.get('tab');\r\n const typeTab = this.route.parent.firstChild.snapshot.paramMap.get('subtab');\r\n\r\n if (!typeTab) {\r\n this.router.navigate(['/dashboard', {outlets: {left: ['board'], right: ['conformity', 'list', {tab: viewTab}]}}]);\r\n } else {\r\n this.router.navigate(['/dashboard', {\r\n outlets: {\r\n left: ['board'],\r\n right: ['conformity', 'list', {tab: viewTab, subtab: typeTab}]\r\n }\r\n }]);\r\n }\r\n }\r\n\r\n handleCreateRequest(data: IncidentCreateOuputData): void {\r\n this.subscriptions.add(this.incident$.subscribe(res => this.router.navigate(['building', 'wizard', res.Building.Identity, 'defect', res.Id, 'dashboard'])));\r\n }\r\n\r\n handleSetProcessedRequest(): void {\r\n this.state.notify(IncidentState.ACTION_CHANGE_INCIDENT);\r\n }\r\n\r\n handleRefreshRequest(): void {\r\n this.state.notify(IncidentState.ACTION_CHANGE_INCIDENT);\r\n }\r\n\r\n handlePostSimpleSaveRequest(buildingUT: string): void {\r\n this.state.notify(IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT);\r\n }\r\n\r\n handlePostSaveRequest(buildingUT: string): void {\r\n this.navigator.provideBackUrl(this.router.routerState.snapshot.url, IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT);\r\n this.router.navigate(['building', 'wizard', buildingUT, 'document', 'dashboard'], {\r\n queryParams: {\r\n type: DocumentType.INCIDENT,\r\n incidentId: this.incidentUT,\r\n returnUrl: true\r\n }, queryParamsHandling: 'merge'\r\n });\r\n }\r\n\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from } from 'rxjs';\r\nimport {map, startWith, switchMap, tap} from 'rxjs/operators';\r\n\r\nimport {IncidentState} from './../../../building/building-incident/incident-state.service';\r\nimport {IncidentDetailLinkOutputData} from './../../../core/components/incident/incident-detail-link-output-data';\r\nimport {IncidentListInputData} from './../../../core/components/incident/incident-list-input-data';\r\nimport {IncidentType} from './../../../core/components/incident/incident-type';\r\nimport {IncidentView} from './../../../core/components/incident/incident-view';\r\nimport {NavigatorService} from './../../../core/shared/navigator.service';\r\nimport {ODataCoreService} from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport {ODataPath } from '../../../core/odata/odataclient';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Incident } from 'app/core/model/incident';\r\n\r\n@Component({\r\n selector: 'app-conformity-list',\r\n templateUrl: './conformity-list.component.html',\r\n styleUrls: ['./conformity-list.component.scss']\r\n})\r\nexport class ConformityListComponent implements OnInit {\r\n\r\n currentViewTab: IncidentView;\r\n\r\n currentTypeTab: IncidentType = IncidentType.NONE;\r\n\r\n inputData: IncidentListInputData = new IncidentListInputData();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: IncidentState,\r\n private navigator: NavigatorService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.navigateToFirstListItem = false;\r\n this.inputData.allowedViews = [IncidentView.TODOFUTURE, IncidentView.OVERDUE, IncidentView.DEFECT, IncidentView.MISSINGDOCUMENT];\r\n this.inputData.showBuildingData = true;\r\n\r\n this.inputData.allIncidents$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT) {\r\n this.inputData.navigateToFirstListItem = true;\r\n }\r\n\r\n return from(this.odataCoreService.Event\r\n .Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true))\r\n .Select(\"Identity\", \"Id\", \"Type\", \"Guidelines\", \"DueDate\")\r\n .Expand(x => {\r\n x.Expand(\"Schedule\", y => {\r\n y.Select(\"CycleUnit\");\r\n y.Select(\"Cycle\");\r\n y.Expand(\"InspectionDuty\", y => {\r\n y.Select(\"OperatorTask\");\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Guidelines\");\r\n z.Select(\"Qualification\");\r\n });\r\n });\r\n y.Expand(\"MaintenanceContract\", z => {\r\n z.Select(\"StartDate\");\r\n z.Expand(\"ServiceProvider\", za => {\r\n za.Select(\"Name\");\r\n })\r\n });\r\n });\r\n x.Expand(\"Building\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"Equipment\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n y.Select(\"CustomId\");\r\n });\r\n x.Expand(\"Documents\", y => {\r\n y.Select(\"DocumentType\"),\r\n y.Expand(\"DocumentType\", z => {\r\n z.Select(\"Id\"),\r\n z.Select(\"Name\")\r\n })\r\n });\r\n x.Expand(\"ServiceProvider\", y => {\r\n y.Select(\"Name\");\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n });\r\n x.Expand(\"KpiMarker\");\r\n })\r\n .OrderBy(\"DueDate\", \"asc\")\r\n .Exec()\r\n .then(x => \r\n x.value\r\n ))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Incident(), i)\r\n })))\r\n .pipe(tap(inc => {\r\n inc.sort((a, b) => {\r\n return (b.DueDate ? b.DueDate.getTime() : 0) - (a.DueDate ? a.DueDate.getTime() : 0);\r\n });\r\n }));\r\n\r\n }));\r\n\r\n this.inputData.currentView$ = this.route.paramMap\r\n .pipe(map(p => IncidentView.getIncidentView(p.get('tab'))), tap(val => this.currentViewTab = val));\r\n\r\n this.inputData.currentType$ = this.route.paramMap\r\n .pipe(map(p => IncidentType.getIncidentType(p.get('subtab'))), tap(val => this.currentTypeTab = val));\r\n\r\n this.inputData.currentIncidentId$ = this.route.parent.children[1].paramMap\r\n .pipe(map(params => +params.get('incidentId')));\r\n\r\n if (this.navigator.getNavigationAction() === IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT) {\r\n this.inputData.navigateToFirstListItem = true;\r\n }\r\n this.navigator.finishNavigation();\r\n }\r\n\r\n handleViewTabChangeRequest($event: string) {\r\n this.currentViewTab = IncidentView.getIncidentView($event);\r\n this.router.navigate([{tab: [this.currentViewTab]}], {relativeTo: this.route});\r\n }\r\n\r\n handleTypeTabChangeRequest($event: string) {\r\n this.currentTypeTab = IncidentType.getIncidentType($event);\r\n this.router.navigate([{tab: [this.currentViewTab], subtab: [this.currentTypeTab]}], {relativeTo: this.route});\r\n }\r\n\r\n handleDetailPageRequest($event: IncidentDetailLinkOutputData) {\r\n if (this.currentViewTab === IncidentView.MISSINGDOCUMENT) {\r\n this.router.navigate([\r\n 'dashboard',\r\n {\r\n outlets: {\r\n left: ['conformity', 'list', {tab: this.currentViewTab, subtab: $event.type}],\r\n right: ['incident', $event.id, 'document-upload']\r\n }\r\n }\r\n ]);\r\n } else {\r\n const id = $event.id;\r\n const subTab = $event.type;\r\n this.router.navigate([\r\n 'dashboard',\r\n {\r\n outlets: {\r\n left: ['conformity', 'list', {tab: this.currentViewTab, subtab: subTab}],\r\n right: ['conformity', 'detail', id]\r\n }\r\n }\r\n ]);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Subscription, Observable, from } from \"rxjs\";\r\n\r\nimport { AuthService } from \"../../../core/auth/auth.service\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"../../../core/odata/odataclient\";\r\n\r\n@Component({\r\n selector: \"app-dashboard-conformity-box\",\r\n templateUrl: \"./conformity-box.component.html\",\r\n styleUrls: [\"./conformity-box.component.scss\"],\r\n})\r\nexport class ConformityBoxComponent implements OnInit, OnDestroy {\r\n missingDocumentIncidentsLength = 0;\r\n overDueIncidentsLength = 0;\r\n nextThreeMonthsIncidentsLength = 0;\r\n defectIncidentsLength = 0;\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(public authService: AuthService, private router: Router, private odataCoreService: ODataCoreService) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDefective\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.defectIncidentsLength = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsOverdue\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.overDueIncidentsLength = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsPlanned\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.nextThreeMonthsIncidentsLength = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsMissingDocuments\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsInFocus\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.NotEquals(\"Type\", \"Undefined\")\r\n )\r\n .Count()\r\n .then((result) => (this.missingDocumentIncidentsLength = result))\r\n ).subscribe()\r\n );\r\n }\r\n\r\n openConformityList(type: string) {\r\n this.router.navigate([\r\n \"/dashboard\",\r\n { outlets: { left: [\"board\"], right: [\"conformity\", \"list\", { tab: [type] }] } },\r\n ]);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { AuthService } from './../../core/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-dashboard-boxes',\r\n templateUrl: './dashboard-boxes.component.html',\r\n styleUrls: ['./dashboard-boxes.component.scss']\r\n})\r\nexport class DashboardBoxesComponent implements OnInit {\r\n\r\n constructor(\r\n public authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dashboard-economy-box',\r\n templateUrl: './economy-box.component.html',\r\n styleUrls: ['./economy-box.component.scss']\r\n})\r\nexport class EconomyBoxComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { NgbCarousel, NgbCarouselConfig, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { Subscription, Observable, from } from \"rxjs\";\r\nimport { MissingDataKpi } from \"./../../../core/model/missingDataKpi\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"../../../core/odata/odataclient\";\r\nimport { LoginService } from \"app/core/shared/login.service\";\r\n\r\n@Component({\r\n selector: \"app-dashboard-integrity-box\",\r\n templateUrl: \"./integrity-box.component.html\",\r\n styleUrls: [\"./integrity-box.component.scss\"],\r\n providers: [NgbCarouselConfig], // add NgbCarouselConfig to the component providers\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class IntegrityBoxComponent implements OnInit, OnDestroy {\r\n static readonly PATH_PREFIX = \"integrity\";\r\n\r\n static readonly PATH_BUILDINGS_NO_EQUIPMENT = \"buildings-no-equipment\";\r\n static readonly PATH_BUILDINGS_NO_USAGE = \"buildings-no-usage\";\r\n static readonly PATH_EQUIPMENTS_NO_CONTRACT = \"equipments-no-contract\";\r\n static readonly PATH_EQUIPMENTS_CONTRACT_NOT_SCHEDULED = \"equipments-contract-not-scheduled\";\r\n static readonly PATH_EQUIPMENTS_NO_INSPECTION_DUTIES = \"equipments-no-inspection-duties\";\r\n static readonly PATH_EQUIPMENTS_NOT_SCHEDULED_INSPECTION_DUTIES = \"equipments-not-scheduled-inspection-duties\";\r\n static readonly PATH_BUILDINGS_MISSING_DOCUMENTS = \"buildings-missing-documents\";\r\n static readonly PATH_BUILDINGS_MISSING_DOCUMENTS_ONLY = \"buildings-missing-documents-only\";\r\n static readonly PATH_EQUIPMENTS_MISSING_DOCUMENTS = \"equipments-missing-documents\";\r\n\r\n USER_INFO_CONFIG = \"OB3_Info\";\r\n\r\n @ViewChild(\"infoPopupContent\", { static: true })\r\n infoPopupContent: any;\r\n\r\n hideInfo: boolean;\r\n showHideInfo: boolean;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n missingData: MissingDataKpi;\r\n buildingsNoEquipment = 0;\r\n buildingsNoUsageType = 0;\r\n buildingsNoDocumentation = 0;\r\n equipmentsNoMaintenanceContract = 0;\r\n equipmentsNoDocumentation = 0;\r\n equipmentsNoInspectionDutyAssigned = 0;\r\n equipmentsInspectionDutyUnterminated = 0;\r\n\r\n // TODO use child to pause when kpi is clicked\r\n @ViewChild(NgbCarousel)\r\n carousel: NgbCarousel;\r\n\r\n constructor(\r\n private loginService: LoginService,\r\n private config: NgbCarouselConfig,\r\n private modalService: NgbModal,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n config.interval = 5000;\r\n config.wrap = true;\r\n config.keyboard = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Filter((x) => x.Equals(ODataPath.For(\"KpiMarker\", \"HasEquipment\"), false))\r\n .Count()\r\n .then((result) => (this.buildingsNoEquipment = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Filter((x) => x.Equals(ODataPath.For(\"KpiMarker\", \"HasUsageTypes\"), false))\r\n .Count()\r\n .then((result) => (this.buildingsNoUsageType = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Filter((x) => x.Equals(ODataPath.For(\"KpiMarker\", \"HasDocumentation\"), false))\r\n .Count()\r\n .then((result) => (this.buildingsNoDocumentation = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsMaintained\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsNoMaintenanceContract = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n .And.EqualsField(\"IsRenterResponsibility\", false)\r\n .Or.Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), false)\r\n .And.EqualsField(\"IsRenterResponsibility\", false)\r\n .And.EqualsField(\"IsNoMaintenanceDesired\", true)\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsNoDocumentation = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsInspectionDutiesAssigned\"), false)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsNoInspectionDutyAssigned = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Filter((x) =>\r\n x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"HasInspectionDutyUnterminated\"), true)\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n )\r\n .Count()\r\n .then((result) => (this.equipmentsInspectionDutyUnterminated = result))\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.add(\r\n this.loginService.readSettings(this.USER_INFO_CONFIG).subscribe((res) => {\r\n if (\r\n (!res || res[\"value\"] !== \"true\") &&\r\n (!localStorage.getItem(\"OB3_Info_shown\") || localStorage.getItem(\"OB3_Info_shown\") === \"false\")\r\n ) {\r\n // show modal\r\n this.openInfoDialog();\r\n this.showHideInfo = true;\r\n localStorage.setItem(\"OB3_Info_shown\", \"true\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n openInfoDialog() {\r\n this.showHideInfo = false;\r\n this.hideInfo = false;\r\n this.modalService\r\n .open(this.infoPopupContent, { windowClass: \"info-modal\" })\r\n .result.then((result) => {\r\n // if checkbox true then save, else do nothing, just stay on page\r\n if (this.hideInfo) {\r\n this.subscriptions.add(\r\n this.loginService.saveSettings(this.USER_INFO_CONFIG, \"true\").subscribe((res) => {\r\n this.showHideInfo = false;\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n navigateTo(path: string) {\r\n this.router.navigate([\r\n \"/dashboard\",\r\n { outlets: { left: [\"board\"], right: [IntegrityBoxComponent.PATH_PREFIX, path] } },\r\n ]);\r\n }\r\n\r\n get PATH_BUILDINGS_NO_EQUIPMENT(): string {\r\n return IntegrityBoxComponent.PATH_BUILDINGS_NO_EQUIPMENT;\r\n }\r\n get PATH_BUILDINGS_NO_USAGE(): string {\r\n return IntegrityBoxComponent.PATH_BUILDINGS_NO_USAGE;\r\n }\r\n get PATH_EQUIPMENTS_NO_CONTRACT(): string {\r\n return IntegrityBoxComponent.PATH_EQUIPMENTS_NO_CONTRACT;\r\n }\r\n get PATH_EQUIPMENTS_CONTRACT_NOT_SCHEDULED(): string {\r\n return IntegrityBoxComponent.PATH_EQUIPMENTS_CONTRACT_NOT_SCHEDULED;\r\n }\r\n get PATH_EQUIPMENTS_NO_INSPECTION_DUTIES(): string {\r\n return IntegrityBoxComponent.PATH_EQUIPMENTS_NO_INSPECTION_DUTIES;\r\n }\r\n get PATH_EQUIPMENTS_NOT_SCHEDULED_INSPECTION_DUTIES(): string {\r\n return IntegrityBoxComponent.PATH_EQUIPMENTS_NOT_SCHEDULED_INSPECTION_DUTIES;\r\n }\r\n get PATH_BUILDINGS_MISSING_DOCUMENTS(): string {\r\n return IntegrityBoxComponent.PATH_BUILDINGS_MISSING_DOCUMENTS;\r\n }\r\n get PATH_BUILDINGS_MISSING_DOCUMENTS_ONLY(): string {\r\n return IntegrityBoxComponent.PATH_BUILDINGS_MISSING_DOCUMENTS_ONLY;\r\n }\r\n get PATH_EQUIPMENTS_MISSING_DOCUMENTS(): string {\r\n return IntegrityBoxComponent.PATH_EQUIPMENTS_MISSING_DOCUMENTS;\r\n }\r\n}\r\n","import { animate, AnimationMetadata, group, query, style, transition, trigger } from '@angular/animations';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\nimport { ODataCoreService } from '../core/odata-services/odata.coreapi.service';\r\n\r\nconst leftContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ 'z-index': 2, transform: 'translate3d(100%,0,0)' }), { optional: true }), // entering panel must be over the leaving from right side in order to routerLinkActive to work\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) // 'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst leftContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nconst rightContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(100%,0,0)' }), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) // 'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst rightContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nexport const leftPanelSideAnimations: AnimationMetadata = trigger('leftAnimations', [\r\n transition('init => *', []), // denies any animation from 'init' state\r\n transition('void => *', []), // denies animation from 'null' state\r\n transition('1-dashboard => *', leftContentMoveToLeft),\r\n transition('2-level-list => 1-dashboard', leftContentMoveToRight),\r\n transition('2-level-list => 3-level-detail', leftContentMoveToLeft),\r\n transition('3-level-detail => 2-level-list', leftContentMoveToRight)\r\n]);\r\n\r\n\r\n/**\r\n * xyz => * : when moving forward to the right side: use rightContentMoveToLeft\r\n * abc => xyz : when moving backwards (close button) from abc to xyz: use rightContentMoveToRight\r\n */\r\nexport const rightPanelSideAnimations: AnimationMetadata = trigger('rightAnimations', [\r\n transition('init => *', []), // denies any animation from 'init' state\r\n transition('* => init', []), // denies any animation to 'init' state\r\n transition('void => *', []), // denies animation from 'null' state\r\n transition('2-level-detail => 1-level-list', rightContentMoveToRight),\r\n transition('1-level-list => 2-level-detail', rightContentMoveToLeft),\r\n transition('3-level-setcontract => 2-level-detail', rightContentMoveToRight),\r\n transition('2-level-detail => 3-level-setcontract', rightContentMoveToLeft)\r\n\r\n]);\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n animations: [leftPanelSideAnimations, rightPanelSideAnimations]\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n constructor(private odataCoreApi: ODataCoreService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public prepareRouteTransition(outlet: RouterOutlet) {\r\n const result = outlet.activatedRouteData['animation'] || 'init';\r\n return result;\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\nimport { BuildingModule } from \"./../building/building.module\";\r\nimport { AuthGuard } from \"./../core/auth/auth-guard.service\";\r\nimport { CoreModule } from \"./../core/core.module\";\r\nimport { ConformityDetailComponent } from \"./conformity/conformity-detail/conformity-detail.component\";\r\nimport { ConformityListComponent } from \"./conformity/conformity-list/conformity-list.component\";\r\nimport { ConformityBoxComponent } from \"./dashboard-boxes/conformity-box/conformity-box.component\";\r\nimport { DashboardBoxesComponent } from \"./dashboard-boxes/dashboard-boxes.component\";\r\nimport { EconomyBoxComponent } from \"./dashboard-boxes/economy-box/economy-box.component\";\r\nimport { IntegrityBoxComponent } from \"./dashboard-boxes/integrity-box/integrity-box.component\";\r\nimport { DashboardComponent } from \"./dashboard.component\";\r\nimport { BuildingsMissingDocumentsComponent } from \"./integrity/buildings-missing-documents/buildings-missing-documents.component\";\r\nimport { BuildingsMissingDocumentsOnlyComponent } from \"./integrity/buildings-missing-documents-only/buildings-missing-documents-only.component\";\r\nimport { BuildingsNoEquipmentComponent } from \"./integrity/buildings-no-equipment/buildings-no-equipment.component\";\r\nimport { BuildingEditUsagesComponent } from \"./integrity/buildings-no-usage/building-edit-usages/building-edit-usages.component\";\r\nimport { BuildingNoUsageState } from \"./integrity/buildings-no-usage/building-no-usage-state.service\";\r\nimport { BuildingsNoUsageComponent } from \"./integrity/buildings-no-usage/buildings-no-usage.component\";\r\nimport { EquipmentsContractNotScheduledComponent } from \"./integrity/equipments-contract-not-scheduled/equipments-contract-not-scheduled.component\";\r\nimport { EquipmentsContractsSetTerminationComponent } from \"./integrity/equipments-contract-not-scheduled/equipments-contracts-set-termination/equipments-contracts-set-termination.component\";\r\nimport { EquipmentsMissingDocumentsComponent } from \"./integrity/equipments-missing-documents/equipments-missing-documents.component\";\r\nimport { EquipmentChooseContractActionComponent } from \"./integrity/equipments-no-contract/equipment-choose-contract-action/equipment-choose-contract-action.component\";\r\nimport { EquipmentSetContractComponent } from \"./integrity/equipments-no-contract/equipment-set-contract/equipment-set-contract.component\";\r\nimport { EquipmentsNoContractState } from \"./integrity/equipments-no-contract/equipments-no-contract-state.service\";\r\nimport { EquipmentsNoContractComponent } from \"./integrity/equipments-no-contract/equipments-no-contract.component\";\r\nimport { EquipmentNoInspectionDutiesState } from \"./integrity/equipments-no-inspection-duties/equipment-no-inspection-duties-state.service\";\r\nimport { EquipmentSetInspectionDutiesComponent } from \"./integrity/equipments-no-inspection-duties/equipment-set-inspection-duties/equipment-set-inspection-duties.component\";\r\nimport { EquipmentsNoInspectionDutiesComponent } from \"./integrity/equipments-no-inspection-duties/equipments-no-inspection-duties.component\";\r\nimport { EquipmentNotScheduledInspectionDutiesState } from \"./integrity/equipments-not-scheduled-inspection-duties/equipment-not-scheduled-inspection-duties-state.service\";\r\nimport { EquipmentTerminateInspectionDutiesComponent } from \"./integrity/equipments-not-scheduled-inspection-duties/equipment-terminate-inspection-duties/equipment-terminate-inspection-duties.component\";\r\nimport { EquipmentsNotScheduledInspectionDutiesComponent } from \"./integrity/equipments-not-scheduled-inspection-duties/equipments-not-scheduled-inspection-duties.component\";\r\nimport { MissingDocumentState } from \"./integrity/missing-document-upload/missing-document-state.service\";\r\nimport { MissingDocumentUploadComponent } from \"./integrity/missing-document-upload/missing-document-upload.component\";\r\nimport { EquipmentsContractHandlingComponent } from \"./integrity/shared/equipments-contract-handling/equipments-contract-handling.component\";\r\nimport { RangeOfServicesComponent } from \"./range-of-services/range-of-services.component\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"dashboard\",\r\n component: DashboardComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n // 1st level\r\n {\r\n outlet: \"left\",\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: DashboardBoxesComponent,\r\n data: {\r\n animation: \"1-dashboard\",\r\n },\r\n },\r\n {\r\n outlet: \"left\",\r\n path: \"board\",\r\n component: DashboardBoxesComponent,\r\n data: {\r\n animation: \"1-dashboard\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"rangeOfServices\",\r\n component: RangeOfServicesComponent,\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: RangeOfServicesComponent,\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"conformity/list\",\r\n component: ConformityListComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/buildings-no-equipment\",\r\n component: BuildingsNoEquipmentComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/buildings-no-usage\",\r\n component: BuildingsNoUsageComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/equipments-no-contract\",\r\n component: EquipmentsNoContractComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/equipments-contract-not-scheduled\",\r\n component: EquipmentsContractNotScheduledComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/equipments-no-inspection-duties\",\r\n component: EquipmentsNoInspectionDutiesComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/equipments-not-scheduled-inspection-duties\",\r\n component: EquipmentsNotScheduledInspectionDutiesComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/buildings-missing-documents\",\r\n component: BuildingsMissingDocumentsComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/buildings-missing-documents-only\",\r\n component: BuildingsMissingDocumentsOnlyComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"integrity/equipments-missing-documents\",\r\n component: EquipmentsMissingDocumentsComponent,\r\n data: {\r\n animation: \"1-level-list\",\r\n },\r\n },\r\n\r\n // 2nd level\r\n //\r\n // gebäude ohne anlagen\r\n\r\n {\r\n outlet: \"left\",\r\n path: \"conformity/list\",\r\n component: ConformityListComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"conformity/detail/:incidentId\",\r\n component: ConformityDetailComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"incident/:incidentId/document-upload\",\r\n component: MissingDocumentUploadComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n // gebäude ohne nutzungsarten\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/buildings-no-usage\",\r\n component: BuildingsNoUsageComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"building/:id/edit/usages\",\r\n component: BuildingEditUsagesComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n // anlagen ohne vertrag\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/equipments-no-contract\",\r\n component: EquipmentsNoContractComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/:id/contract/choose\",\r\n component: EquipmentChooseContractActionComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"set-contract/:id\",\r\n component: EquipmentSetContractComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n\r\n // Wartungstermine zu Anlage festlegen\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/equipments-contract-not-scheduled\",\r\n component: EquipmentsContractNotScheduledComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/:id/contract/terminate\",\r\n component: EquipmentsContractsSetTerminationComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n // Prüfpflichten zu Anlagen aktivieren\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/equipments-no-inspection-duties\",\r\n component: EquipmentsNoInspectionDutiesComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/:id/inspection-duties/set\",\r\n component: EquipmentSetInspectionDutiesComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n\r\n // Nicht terminierte Prüfpflichten von Anlagen\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/equipments-not-scheduled-inspection-duties\",\r\n component: EquipmentsNotScheduledInspectionDutiesComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/:id/inspection-duties/terminate\",\r\n component: EquipmentTerminateInspectionDutiesComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n\r\n // Fehlende Gebäudedokumentation\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/buildings-missing-documents\",\r\n component: BuildingsMissingDocumentsComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n\r\n // Fehlende Gebäudedokumentation\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/buildings-missing-documents-only\",\r\n component: BuildingsMissingDocumentsOnlyComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n\r\n {\r\n outlet: \"right\",\r\n path: \"building/:id/document-upload/:documentTypeId\",\r\n component: MissingDocumentUploadComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n\r\n // Fehlende Anlagendokumentation\r\n {\r\n outlet: \"left\",\r\n path: \"integrity/equipments-missing-documents\",\r\n component: EquipmentsMissingDocumentsComponent,\r\n data: {\r\n animation: \"2-level-list\",\r\n },\r\n },\r\n {\r\n outlet: \"right\",\r\n path: \"equipment/:id/document-upload/:documentTypeId\",\r\n component: MissingDocumentUploadComponent,\r\n data: {\r\n animation: \"2-level-detail\",\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CoreModule,\r\n RouterModule.forChild(routes),\r\n BuildingModule,\r\n FormsModule,\r\n ],\r\n exports: [RouterModule],\r\n declarations: [\r\n DashboardComponent,\r\n DashboardBoxesComponent,\r\n ConformityBoxComponent,\r\n EconomyBoxComponent,\r\n IntegrityBoxComponent,\r\n ConformityListComponent,\r\n ConformityDetailComponent,\r\n BuildingsNoEquipmentComponent,\r\n EquipmentsNoContractComponent,\r\n EquipmentsContractNotScheduledComponent,\r\n EquipmentsNoInspectionDutiesComponent,\r\n EquipmentsNotScheduledInspectionDutiesComponent,\r\n BuildingsNoUsageComponent,\r\n EquipmentChooseContractActionComponent,\r\n BuildingEditUsagesComponent,\r\n EquipmentSetContractComponent,\r\n EquipmentsContractHandlingComponent,\r\n EquipmentsContractsSetTerminationComponent,\r\n EquipmentSetInspectionDutiesComponent,\r\n EquipmentTerminateInspectionDutiesComponent,\r\n BuildingsMissingDocumentsComponent,\r\n BuildingsMissingDocumentsOnlyComponent,\r\n EquipmentsMissingDocumentsComponent,\r\n MissingDocumentUploadComponent,\r\n RangeOfServicesComponent,\r\n ],\r\n providers: [\r\n EquipmentsNoContractState,\r\n EquipmentNoInspectionDutiesState,\r\n EquipmentNotScheduledInspectionDutiesState,\r\n BuildingNoUsageState,\r\n MissingDocumentState,\r\n ],\r\n})\r\nexport class DashboardModule {}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { of, Subject, Subscription, from } from 'rxjs';\r\nimport { filter, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { BuildingDocumentsInputData } from './../../../core/components/building/building-documents-input-data';\r\nimport { IntegrityBoxComponent } from './../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport { MissingDocumentState } from './../missing-document-upload/missing-document-state.service';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-buildings-missing-documents-only',\r\n templateUrl: './buildings-missing-documents-only.component.html',\r\n styleUrls: ['./buildings-missing-documents-only.component.scss']\r\n})\r\nexport class BuildingsMissingDocumentsOnlyComponent implements OnInit, OnDestroy {\r\n\r\n buildingDocumentsInputData: BuildingDocumentsInputData = new BuildingDocumentsInputData();\r\n\r\n _searchFilter: string = '';\r\n searchFilterSubject = new Subject();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: MissingDocumentState,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => { this.searchFilter = params['search'] || ''; }));\r\n\r\n this.buildingDocumentsInputData.navigateToFirstListItem = false;\r\n this.buildingDocumentsInputData.buildingDocument$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return from(this.odataCoreService.Building.Query()\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypeMarkers\",\r\n y => {\r\n y.Expand(\"DocumentType\")\r\n y.Filter(z => z\r\n .EqualsField(\"IsRequired\", true).And\r\n .EqualsField(\"IsMissing\", true))\r\n })\r\n x.Expand(\"Documents\",\r\n y => {\r\n y.Expand(\"DocumentType\")\r\n })\r\n })\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"HasDocumentation\"), false))\r\n .Exec().then(x => x.value));\r\n }));\r\n\r\n this.buildingDocumentsInputData.searchFilter$ = this.searchFilterSubject.asObservable().pipe(startWith(this.searchFilter));\r\n this.buildingDocumentsInputData.showBuildingData = true;\r\n\r\n this.buildingDocumentsInputData.currentBuildingUT$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === MissingDocumentState.ACTION_UPLOAD_DOCUMENT) {\r\n this.buildingDocumentsInputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.parent.children[1].paramMap.pipe(map( (params: ParamMap) => params.get('id')));\r\n }));\r\n this.buildingDocumentsInputData.currentDocumentTypeId$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === MissingDocumentState.ACTION_UPLOAD_DOCUMENT) {\r\n this.buildingDocumentsInputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.parent.children[1].paramMap.pipe(map( (params: ParamMap) => +params.get('documentTypeId')));\r\n }));\r\n\r\n this.buildingDocumentsInputData.showsAsCallToAction = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n get searchFilter(): string {\r\n return this._searchFilter;\r\n }\r\n\r\n set searchFilter(searchFilter: string) {\r\n this._searchFilter = searchFilter;\r\n this.searchFilterSubject.next(searchFilter);\r\n\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { search: this.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n documentWizard(buildingUT: string, documentType: number) {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_BUILDINGS_MISSING_DOCUMENTS_ONLY],\r\n right: ['building', buildingUT, 'document-upload', documentType]\r\n }\r\n }\r\n ], { queryParams: { search: this.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { of, Subject, Subscription, from } from 'rxjs';\r\nimport { filter, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { BuildingDocumentsInputData } from './../../../core/components/building/building-documents-input-data';\r\nimport { IntegrityBoxComponent } from './../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport { MissingDocumentState } from './../missing-document-upload/missing-document-state.service';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-buildings-missing-documents',\r\n templateUrl: './buildings-missing-documents.component.html',\r\n styleUrls: ['./buildings-missing-documents.component.scss']\r\n})\r\nexport class BuildingsMissingDocumentsComponent implements OnInit, OnDestroy {\r\n\r\n buildingDocumentsInputData: BuildingDocumentsInputData = new BuildingDocumentsInputData();\r\n\r\n _searchFilter: string = '';\r\n searchFilterSubject = new Subject();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: MissingDocumentState,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => { this.searchFilter = params['search'] || ''; }));\r\n\r\n this.buildingDocumentsInputData.navigateToFirstListItem = false;\r\n this.buildingDocumentsInputData.buildingDocument$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return from(this.odataCoreService.Building.Query()\r\n .Expand(x => {\r\n x.Expand(\"DocumentTypeMarkers\",\r\n y => {\r\n y.Expand(\"DocumentType\")\r\n y.Filter(z => z\r\n .EqualsField(\"IsRequired\", true).And\r\n .EqualsField(\"IsMissing\", true))\r\n })\r\n x.Expand(\"Documents\",\r\n y => {\r\n y.Expand(\"DocumentType\")\r\n })\r\n })\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"HasDocumentation\"), false))\r\n .Exec().then(x => x.value));\r\n }));\r\n\r\n this.buildingDocumentsInputData.searchFilter$ = this.searchFilterSubject.asObservable().pipe(startWith(this.searchFilter));\r\n this.buildingDocumentsInputData.showBuildingData = true;\r\n\r\n this.buildingDocumentsInputData.currentBuildingUT$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === MissingDocumentState.ACTION_UPLOAD_DOCUMENT) {\r\n this.buildingDocumentsInputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.parent.children[1].paramMap.pipe(map( (params: ParamMap) => params.get('id')));\r\n }));\r\n this.buildingDocumentsInputData.currentDocumentTypeId$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === MissingDocumentState.ACTION_UPLOAD_DOCUMENT) {\r\n this.buildingDocumentsInputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.parent.children[1].paramMap.pipe(map( (params: ParamMap) => +params.get('documentTypeId')));\r\n }));\r\n\r\n this.buildingDocumentsInputData.showsAsCallToAction = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n get searchFilter(): string {\r\n return this._searchFilter;\r\n }\r\n\r\n set searchFilter(searchFilter: string) {\r\n this._searchFilter = searchFilter;\r\n this.searchFilterSubject.next(searchFilter);\r\n\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { search: this.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n documentWizard(buildingUT: string, documentType: number) {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_BUILDINGS_MISSING_DOCUMENTS],\r\n right: ['building', buildingUT, 'document-upload', documentType]\r\n }\r\n }\r\n ], { queryParams: { search: this.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { of, Subscription, from } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { BuildingListInputData } from './../../../core/components/building/building-list-input-data';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-buildings-no-equipment',\r\n templateUrl: './buildings-no-equipment.component.html',\r\n styleUrls: ['./buildings-no-equipment.component.scss']\r\n})\r\nexport class BuildingsNoEquipmentComponent implements OnInit, OnDestroy {\r\n\r\n inputData: BuildingListInputData = new BuildingListInputData();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.inputData.translatedListTitle = 'DashboardIntegrityBuildingsNoEquipment._h1_buildingOverview';\r\n this.inputData.currentBuildingUT$ = of(null);\r\n this.inputData.showGroupingWizardRow = false;\r\n this.inputData.showMap = false;\r\n this.inputData.showItemLinkButton = true;\r\n\r\n this.inputData.buildings$ = \r\n from(this.odataCoreService.Building.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"HasEquipment\"), false))\r\n .Exec()\r\n .then(x => {\r\n return x.value\r\n }));\r\n\r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => { this.inputData.searchFilter = params['search'] || ''; }));\r\n this.inputData.onSearchFilterChange = (newValue) => {\r\n this.inputData.searchFilter = newValue;\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { search: this.inputData.searchFilter }, queryParamsHandling: 'merge' });\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleDetailPageRequest(building: PropertyCore.Building): void {\r\n this.router.navigate(['/building', building.Identity, { outlets: { left: ['list'], right: ['building'] } }],\r\n { queryParams: { search: this.inputData.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from } from 'rxjs';\r\nimport { flatMap, switchMap } from 'rxjs/operators';\r\n\r\nimport { BuildingEditUsagesInputData } from './../../../../core/components/building/building-edit-usages-input-data';\r\nimport { ConfirmationModal } from './../../../../core/popup/confirmation.modal';\r\nimport { IntegrityBoxComponent } from './../../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport { BuildingNoUsageState } from './../building-no-usage-state.service';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { PropertyCore } from '../../../../core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-building-edit-usages',\r\n templateUrl: './building-edit-usages.component.html',\r\n styleUrls: ['./building-edit-usages.component.scss']\r\n})\r\nexport class BuildingEditUsagesComponent implements OnInit, OnDestroy {\r\n inputData: BuildingEditUsagesInputData = new BuildingEditUsagesInputData();\r\n\r\n buildingUT: string;\r\n subscriptions: Subscription = new Subscription();\r\n building: PropertyCore.Building;\r\n constructor(\r\n private translateService: TranslateService,\r\n private modalService: NgbModal,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private state: BuildingNoUsageState,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.inputData.building$ = this.route.paramMap.pipe(switchMap((params: ParamMap) => {\r\n this.buildingUT = params.get('id');\r\n\r\n this.subscriptions.add(from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0]))).subscribe(res => {\r\n this.building = res;\r\n }));\r\n\r\n return from(this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }));\r\n\r\n this.inputData.buildingUsageTypes$ = this.inputData.building$\r\n .pipe(flatMap(b =>\r\n from(this.odataCoreService.UsageType.Query()\r\n .Filter(x =>\r\n x.Any(\"Regions\", \"r: r/Id eq \" + b.Address.RegionInfo.Id + \"\"))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n ));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(isDirty: boolean): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('BuildingDetailEditUsage._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('BuildingDetailEditUsage._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('BuildingDetailEditUsage._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('BuildingDetailEditUsage._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate(['/dashboard', { outlets: { left: ['board'], right: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_BUILDINGS_NO_USAGE] } }],\r\n { queryParamsHandling: 'merge' });\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate(['/dashboard', { outlets: { left: ['board'], right: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_BUILDINGS_NO_USAGE] } }],\r\n { queryParamsHandling: 'merge' });\r\n }\r\n }\r\n\r\n async handleSaveRequest(btIds: number[]): Promise {\r\n let x: number = 0;\r\n \r\n while (btIds.length > x) {\r\n var existingUsageType = this.building.UsageTypes.filter(function(usageTypeId){\r\n return usageTypeId.Id == btIds[x];\r\n });\r\n \r\n // Add UsageType that is newly selected by the user, and ignore the current select usagetype\r\n if(existingUsageType.length == 0){\r\n await this.odataCoreService.Building.Link().Key(Guid.parse(this.buildingUT))\r\n .Value(\"UsageTypes\", this.odataCoreService.UsageType.Get().Key(btIds[x]).Bind())\r\n .Post()\r\n }\r\n x++;\r\n }\r\n\r\n let y: number = 0;\r\n while (this.building.UsageTypes.length > y) {\r\n var buildingUsageTypes = this.building.UsageTypes;\r\n var selectedUsageType = btIds.filter(function(usageTypeId){\r\n return usageTypeId == buildingUsageTypes[y].Id;\r\n });\r\n\r\n if(selectedUsageType.length == 0){\r\n await this.odataCoreService.Building.Link().Key(Guid.parse(this.buildingUT))\r\n .Value(\"UsageTypes\", this.odataCoreService.UsageType.Get().Key(buildingUsageTypes[y].Id).Bind())\r\n .Delete()\r\n }\r\n y++;\r\n }\r\n\r\n this.state.notify(BuildingNoUsageState.ACTION_SET_USAGE);\r\n this.toasterService.pop('success', '', this.translateService.instant('DashboardIntegrityBuildingsNoUsage._toastr_setUsageSuccess'));\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class BuildingNoUsageState {\r\n\r\n public static readonly ACTION_SET_USAGE = 'action_set_usage';\r\n\r\n private subject: Subject = new Subject();\r\n\r\n constructor() { }\r\n\r\n notify(notificationtext: string) {\r\n this.subject.next(notificationtext);\r\n }\r\n\r\n registerForNotification(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { of, Subscription, from } from 'rxjs';\r\nimport { filter, map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { BuildingListInputData } from './../../../core/components/building/building-list-input-data';\r\nimport { IntegrityBoxComponent } from './../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport { BuildingNoUsageState } from './building-no-usage-state.service';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-buildings-no-usage',\r\n templateUrl: './buildings-no-usage.component.html',\r\n styleUrls: ['./buildings-no-usage.component.scss']\r\n})\r\nexport class BuildingsNoUsageComponent implements OnInit, OnDestroy {\r\n\r\n inputData: BuildingListInputData = new BuildingListInputData();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: BuildingNoUsageState,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.inputData.navigateToFirstListItem = false;\r\n\r\n this.inputData.translatedListTitle = 'DashboardIntegrityBuildingsNoUsage._h1_buildingOverview';\r\n this.inputData.currentBuildingUT$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === BuildingNoUsageState.ACTION_SET_USAGE) {\r\n this.inputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.root.firstChild.children[1].paramMap.pipe(map(p => p.get('id')));\r\n }));\r\n\r\n this.inputData.showGroupingWizardRow = false;\r\n this.inputData.showMap = false;\r\n this.inputData.scrollStyle = { 'max-height': 'calc(100vh - 240px)' };\r\n\r\n this.inputData.buildings$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(() => {\r\n return this.inputData.buildings$ =\r\n from(this.odataCoreService.Building.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"KpiMarker\", \"HasUsageTypes\"), false))\r\n .Exec()\r\n .then(x => {\r\n return x.value\r\n }));\r\n }));\r\n \r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => { this.inputData.searchFilter = params['search'] || ''; }));\r\n this.inputData.onSearchFilterChange = (newValue) => {\r\n this.inputData.searchFilter = newValue;\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { search: this.inputData.searchFilter }, queryParamsHandling: 'merge' });\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleDetailPageRequest(building: PropertyCore.Building): void {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_BUILDINGS_NO_USAGE],\r\n right: ['building', building.Identity, 'edit', 'usages']\r\n }\r\n }\r\n ], { queryParams: { search: this.inputData.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n handleListEmpty(): void {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {filter, map, startWith, switchMap} from 'rxjs/operators';\r\n\r\nimport {InstallEquipmentService} from '../../../building/installEquipment.service';\r\nimport {InstallEquipmentKpiFilter} from '../../../building/kpiFilter.enum';\r\nimport {EquipmentListInputData} from '../../../core/components/equipment/equipment-list-input-data';\r\nimport {IntegrityBoxComponent} from '../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport {EquipmentsNoContractState} from '../equipments-no-contract/equipments-no-contract-state.service';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-equipments-contract-not-scheduled',\r\n templateUrl: './equipments-contract-not-scheduled.component.html',\r\n styleUrls: ['./equipments-contract-not-scheduled.component.scss']\r\n})\r\nexport class EquipmentsContractNotScheduledComponent implements OnInit, OnDestroy {\r\n\r\n inputData: EquipmentListInputData = new EquipmentListInputData();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private installEquipmentService: InstallEquipmentService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private state: EquipmentsNoContractState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.showBuilding = true;\r\n this.inputData.showGroupingWizardRow = false;\r\n this.inputData.equipments$ = from(this.odataCoreService.EquipmentType.Query().Exec().then(x => x.value));\r\n\r\n\r\n this.inputData.installEquipments$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return from(this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"KpiMarker\", \"IsMaintained\"), false).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true))\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))));\r\n }));\r\n this.inputData.currentInstallEquipmentUT$ = this.route.root.firstChild.children[1].paramMap.pipe(map(p => p.get('id')));\r\n this.inputData.scrollStyle = {height: 'calc(100vh - 250px)'};\r\n\r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => {\r\n this.inputData.searchFilter = params['search'] || '';\r\n }));\r\n this.inputData.onSearchFilterChange = (newValue) => {\r\n this.inputData.searchFilter = newValue;\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {search: this.inputData.searchFilter},\r\n queryParamsHandling: 'merge'\r\n });\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleDetailPageRequest(installEquipmentUT: string) {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_CONTRACT_NOT_SCHEDULED],\r\n right: ['equipment', installEquipmentUT, 'contract', 'terminate']\r\n }\r\n }\r\n ], {queryParams: {search: this.inputData.searchFilter}, queryParamsHandling: 'merge'});\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {map, switchMap} from 'rxjs/operators';\r\nimport {IntegrityBoxComponent} from '../../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport {ContractHandlingInputData} from '../../shared/equipments-contract-handling/contract-handling-input-data';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipments-contracts-set-termination',\r\n templateUrl: './equipments-contracts-set-termination.component.html',\r\n styleUrls: ['./equipments-contracts-set-termination.component.scss']\r\n})\r\nexport class EquipmentsContractsSetTerminationComponent implements OnInit, OnDestroy {\r\n\r\n inputData = new ContractHandlingInputData();\r\n\r\n private subscriptions = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.inputData.contracts$ = this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.MaintenanceJob.Query()\r\n .Filter(x => x.Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(params.get('id'))))\r\n .Expand(x => {\r\n x.Expand(\"Contract\", y => {\r\n y.Expand(\"ServiceProvider\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i.Contract))));\r\n }),\r\n map(cs => {\r\n return cs.filter(c => !c.StartDate);\r\n }));\r\n\r\n this.inputData.installEquipment$ = this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n ));\r\n\r\n this.inputData.navigateBackUrlTree = this.router.createUrlTree([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: ['board'],\r\n right: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_CONTRACT_NOT_SCHEDULED]\r\n }\r\n }\r\n ], {queryParamsHandling: 'merge'});\r\n\r\n this.inputData.contractTerminationMandatory = true;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { of, Subject, Subscription, from } from 'rxjs';\r\nimport { filter, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { EquipmentDocumentsInputData } from './../../../core/components/equipment/equipment-documents-input-data';\r\nimport { IntegrityBoxComponent } from './../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport { MissingDocumentState } from './../missing-document-upload/missing-document-state.service';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-equipments-missing-documents',\r\n templateUrl: './equipments-missing-documents.component.html',\r\n styleUrls: ['./equipments-missing-documents.component.scss']\r\n})\r\nexport class EquipmentsMissingDocumentsComponent implements OnInit, OnDestroy {\r\n\r\n equipmentDocumentsInputData: EquipmentDocumentsInputData = new EquipmentDocumentsInputData();\r\n\r\n _searchFilter: string = '';\r\n searchFilterSubject = new Subject();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private state: MissingDocumentState,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => { this.searchFilter = params['search'] || ''; }));\r\n\r\n this.equipmentDocumentsInputData.navigateToFirstListItem = false;\r\n this.equipmentDocumentsInputData.buildingEquipmentDocument$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return from(this.odataCoreService.Building.Query()\r\n .Expand(x => {\r\n x.Expand(\"Equipments\",\r\n y => {\r\n y.Expand(\"DocumentTypeMarkers\", z => {\r\n z.Expand(\"DocumentType\")\r\n z.Filter(a => a\r\n .EqualsField(\"IsRequired\", true).And\r\n .EqualsField(\"IsMissing\", true))\r\n y.Expand(\"Room\", z => {\r\n z.Expand(\"Floor\", a => {\r\n a.Select(\"Name\")\r\n })\r\n z.Select(\"Name\")\r\n })\r\n })\r\n y.Expand(\"KpiMarker\")\r\n y.Filter(z => z\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true).And\r\n .EqualsField(\"IsRenterResponsibility\", false).Or\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsDocumented\"), false).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), false).And\r\n .EqualsField(\"IsRenterResponsibility\", false).And\r\n .EqualsField(\"IsNoMaintenanceDesired\",true)\r\n )\r\n y.Select(\"Id\")\r\n y.Select(\"Identity\")\r\n y.Select(\"Name\")\r\n y.Select(\"CustomId\")\r\n y.Select(\"IsNoMaintenanceDesired\")\r\n })\r\n })\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value));\r\n }));\r\n\r\n this.equipmentDocumentsInputData.searchFilter$ = this.searchFilterSubject.asObservable().pipe(startWith(this.searchFilter));\r\n this.equipmentDocumentsInputData.showBuildingData = true;\r\n this.equipmentDocumentsInputData.showEquipmentData = true;\r\n\r\n this.equipmentDocumentsInputData.currentEquipmentUT$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === MissingDocumentState.ACTION_UPLOAD_DOCUMENT) {\r\n this.equipmentDocumentsInputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.parent.children[1].paramMap.pipe(map( (params: ParamMap) => params.get('id')));\r\n }));\r\n this.equipmentDocumentsInputData.currentDocumentTypeId$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === MissingDocumentState.ACTION_UPLOAD_DOCUMENT) {\r\n this.equipmentDocumentsInputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.parent.children[1].paramMap.pipe(map( (params: ParamMap) => +params.get('documentTypeId')));\r\n }));\r\n\r\n this.equipmentDocumentsInputData.showsAsCallToAction = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n get searchFilter(): string {\r\n return this._searchFilter;\r\n }\r\n\r\n set searchFilter(searchFilter: string) {\r\n this._searchFilter = searchFilter;\r\n this.searchFilterSubject.next(searchFilter);\r\n\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { search: this.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n documentWizard(ieUT: string, documentType: number) {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_MISSING_DOCUMENTS],\r\n right: ['equipment', ieUT, 'document-upload', documentType]\r\n }\r\n }\r\n ], { queryParams: { search: this.searchFilter }, queryParamsHandling: 'merge' });\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\n\r\nimport {PropertyCore} from '../../../../core/odata/odata.coreapi';\r\nimport {InstallEquipmentService} from '../../../../building/installEquipment.service';\r\nimport {IntegrityBoxComponent} from '../../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport {EquipmentsNoContractState} from '../equipments-no-contract-state.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\n\r\n@Component({\r\n selector: 'app-equipment-choose-contract-action',\r\n templateUrl: './equipment-choose-contract-action.component.html',\r\n styleUrls: ['./equipment-choose-contract-action.component.scss']\r\n})\r\nexport class EquipmentChooseContractActionComponent implements OnInit, OnDestroy {\r\n\r\n\r\n installEquipment: PropertyCore.Equipment;\r\n\r\n private subscriptions = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private installEquipmentService: InstallEquipmentService,\r\n private toasterService: ToasterService,\r\n private state: EquipmentsNoContractState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(switchMap(params => {\r\n return from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n }))\r\n .subscribe(res => {\r\n this.installEquipment = res;\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n setNoContract(): void {\r\n\r\n if (this.installEquipment.Room == null) {\r\n this.installEquipment.IsNoMaintenanceDesired = true;\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.installEquipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.installEquipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.installEquipment.Comment)\r\n .ValueProperty(\"IsRenterResponsibility\", this.installEquipment.IsRenterResponsibility)\r\n .ValueProperty(\"IsNoMaintenanceDesired\", this.installEquipment.IsNoMaintenanceDesired)\r\n .ValueProperty(\"CustomId\", this.installEquipment.CustomId)\r\n .ValuePropertyBinding(\"EquipmentType\", this.odataCoreService.EquipmentType.Get().Key(this.installEquipment.EquipmentType.Code).Bind())\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.installEquipment.Building.Identity)).Bind())\r\n .Exec()).subscribe(res => {\r\n this.state.notify(EquipmentsNoContractState.ACTION_SET_NO_CONTRACT);\r\n this.toasterService.pop('success', '', this.translateService.instant('DashboardIntegrityEquipmentsNoContract._toastr_setNoContractSuccess'));\r\n })\r\n );\r\n\r\n } else {\r\n this.installEquipment.IsNoMaintenanceDesired = true;\r\n this.subscriptions.add(from(this.odataCoreService.Equipment.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Equipment())\r\n .Key(Guid.parse(this.installEquipment.Identity))\r\n .ValueProperty(\"TuevNo\", this.installEquipment.TuevNo)\r\n .ValueProperty(\"Comment\", this.installEquipment.Comment)\r\n .ValueProperty(\"IsRenterResponsibility\", this.installEquipment.IsRenterResponsibility)\r\n .ValueProperty(\"IsNoMaintenanceDesired\", this.installEquipment.IsNoMaintenanceDesired)\r\n .ValueProperty(\"CustomId\", this.installEquipment.CustomId)\r\n .ValuePropertyBinding(\"Room\", this.odataCoreService.Room.Get().Key(Guid.parse(this.installEquipment.Room.Identity)).Bind())\r\n .ValuePropertyBinding(\"EquipmentType\", this.odataCoreService.EquipmentType.Get().Key(this.installEquipment.EquipmentType.Code).Bind())\r\n .ValuePropertyBinding(\"Building\", this.odataCoreService.Building.Get().Key(Guid.parse(this.installEquipment.Building.Identity)).Bind())\r\n .Exec()).subscribe(res => {\r\n this.state.notify(EquipmentsNoContractState.ACTION_SET_NO_CONTRACT);\r\n this.toasterService.pop('success', '', this.translateService.instant('DashboardIntegrityEquipmentsNoContract._toastr_setNoContractSuccess'));\r\n })\r\n );\r\n\r\n\r\n }\r\n \r\n }\r\n\r\n setToExistingContract(): void {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NO_CONTRACT],\r\n right: ['set-contract', this.installEquipment.Identity]\r\n }\r\n }\r\n ], {queryParamsHandling: 'merge'});\r\n }\r\n\r\n setNewContract(): void {\r\n this.router.navigate(['contract', 'wizard', 'set-equipment', this.installEquipment.Identity]);\r\n }\r\n\r\n close() {\r\n this.router.navigate(['/dashboard', {\r\n outlets: {\r\n left: ['board'],\r\n right: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NO_CONTRACT]\r\n }\r\n }],\r\n {queryParamsHandling: 'merge'});\r\n }\r\n}\r\n\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\nimport {IntegrityBoxComponent} from '../../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport {ContractHandlingInputData} from '../../shared/equipments-contract-handling/contract-handling-input-data';\r\nimport {EquipmentsNoContractState} from '../equipments-no-contract-state.service';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-set-contract',\r\n templateUrl: './equipment-set-contract.component.html',\r\n styleUrls: ['./equipment-set-contract.component.scss']\r\n})\r\nexport class EquipmentSetContractComponent implements OnInit, OnDestroy {\r\n inputData = new ContractHandlingInputData();\r\n\r\n private subscriptions = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private state: EquipmentsNoContractState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.contracts$ = from(this.odataCoreService.MaintenanceContract.Query()\r\n .Expand(x => {\r\n x.Expand(\"ServiceProvider\")\r\n })\r\n .OrderBy(\"Title\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))));\r\n\r\n // this.inputData.installEquipment$ = this.route.parent.firstChild.paramMap.switchMap((params: ParamMap) =>\r\n this.inputData.installEquipment$ = this.route.paramMap.pipe(switchMap((params: ParamMap) =>\r\n from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n ));\r\n\r\n this.inputData.navigateBackUrlTree = this.router.createUrlTree([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NO_CONTRACT],\r\n right: ['equipment', this.route.snapshot.paramMap.get('id'), 'contract', 'choose']\r\n }\r\n }\r\n ], {queryParamsHandling: 'merge'});\r\n\r\n this.inputData.contractTerminationMandatory = true;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleSaveRequest() {\r\n this.state.notify(EquipmentsNoContractState.ACTION_SET_CONTRACT);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class EquipmentsNoContractState {\r\n\r\n public static readonly ACTION_SET_NO_CONTRACT = 'action_set_no_contract';\r\n public static readonly ACTION_SET_CONTRACT = 'action_set_contract';\r\n\r\n private subject: Subject = new Subject();\r\n\r\n constructor() { }\r\n\r\n notify(notificationtext: string) {\r\n this.subject.next(notificationtext);\r\n }\r\n\r\n registerForNotification(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {of, Subscription, from} from 'rxjs';\r\nimport {filter, map, startWith, switchMap} from 'rxjs/operators';\r\n\r\nimport {InstallEquipmentService} from './../../../building/installEquipment.service';\r\nimport {InstallEquipmentKpiFilter} from './../../../building/kpiFilter.enum';\r\nimport {EquipmentListInputData} from './../../../core/components/equipment/equipment-list-input-data';\r\nimport {IntegrityBoxComponent} from './../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport {EquipmentsNoContractState} from './equipments-no-contract-state.service';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\nimport { Utils } from '../../../core/tools/utils';\r\n\r\n@Component({\r\n selector: 'app-equipments-no-contract',\r\n templateUrl: './equipments-no-contract.component.html',\r\n styleUrls: ['./equipments-no-contract.component.scss']\r\n})\r\nexport class EquipmentsNoContractComponent implements OnInit, OnDestroy {\r\n\r\n inputData: EquipmentListInputData = new EquipmentListInputData();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private installEquipmentService: InstallEquipmentService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private state: EquipmentsNoContractState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.navigateToFirstListItem = false;\r\n this.inputData.showBuilding = true;\r\n this.inputData.showGroupingWizardRow = false;\r\n this.inputData.equipments$ = from(this.odataCoreService.EquipmentType.Query().Exec().then(x => x.value));\r\n\r\n this.inputData.currentInstallEquipmentUT$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === EquipmentsNoContractState.ACTION_SET_NO_CONTRACT || action === EquipmentsNoContractState.ACTION_SET_CONTRACT) {\r\n this.inputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.root.firstChild.children[1].paramMap.pipe(map(p => p.get('id')));\r\n }));\r\n\r\n this.inputData.installEquipments$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return from(this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"KpiMarker\", \"IsMaintained\"), false).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true))\r\n\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))));\r\n }));\r\n this.inputData.scrollStyle = {height: 'calc(100vh - 235px)'};\r\n\r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => {\r\n this.inputData.searchFilter = params['search'] || '';\r\n }));\r\n this.inputData.onSearchFilterChange = (newValue) => {\r\n this.inputData.searchFilter = newValue;\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {search: this.inputData.searchFilter},\r\n queryParamsHandling: 'merge'\r\n });\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleDetailPageRequest(installEquipmentUT: string) {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NO_CONTRACT],\r\n right: ['equipment', installEquipmentUT, 'contract', 'choose']\r\n }\r\n }\r\n ], {queryParams: {search: this.inputData.searchFilter}, queryParamsHandling: 'merge'});\r\n }\r\n\r\n handleListEmpty(): void {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class EquipmentNoInspectionDutiesState {\r\n\r\n public static readonly ACTION_SET_INSPECTION_DUTY = 'action_set_inspection_duty';\r\n\r\n private subject: Subject = new Subject();\r\n\r\n constructor() { }\r\n\r\n notify(notificationtext: string) {\r\n this.subject.next(notificationtext);\r\n }\r\n\r\n registerForNotification(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from, Observable } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { InstallEquipmentService } from './../../../../building/installEquipment.service';\r\nimport { EditInspectionDutyGroup } from './../../../../core/components/equipment/edit-inspection-duties/editInspectionDutyGroup';\r\nimport { EquipmentEditInspectionDutiesInputData } from './../../../../core/components/equipment/equipment-edit-inspection-duties-input-data';\r\nimport { EquipmentEditInspectionDutiesSaveOutputData } from './../../../../core/components/equipment/equipment-edit-inspection-duties-save-output-data';\r\nimport { IntegrityBoxComponent } from './../../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport { EquipmentNoInspectionDutiesState } from './../equipment-no-inspection-duties-state.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { InspectionDuty } from '../../../../core/model/inspectionDuty';\r\nimport { PropertyCore, Common } from '../../../../core/odata/odata.coreapi';\r\nimport { EditOperatorTask } from 'app/core/components/equipment/edit-inspection-duties/editOperatorTask';\r\nimport { InspectiondutyWizardComponent } from 'app/building/wizard/inspectionduty/inspectionduty-wizard.component';\r\n\r\n@Component({\r\n selector: 'app-equipment-set-inspection-duties',\r\n templateUrl: './equipment-set-inspection-duties.component.html',\r\n styleUrls: ['./equipment-set-inspection-duties.component.scss']\r\n})\r\nexport class EquipmentSetInspectionDutiesComponent implements OnInit, OnDestroy {\r\n\r\n inputData = new EquipmentEditInspectionDutiesInputData();\r\n\r\n installEquipmentUT: string;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private installEquipmentService: InstallEquipmentService,\r\n private translateService: TranslateService,\r\n private state: EquipmentNoInspectionDutiesState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(): void {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: ['board'],\r\n right: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NO_INSPECTION_DUTIES]\r\n }\r\n }\r\n ], { queryParamsHandling: 'merge' });\r\n }\r\n\r\n handleSaveRequest(): void {\r\n this.state.notify(EquipmentNoInspectionDutiesState.ACTION_SET_INSPECTION_DUTY);\r\n this.toasterService.pop('success', '', this.translateService.instant('DashboardIntegrityEquipmentsNoInspectionDuties._toastr_setInspectionDutySuccess'));\r\n }\r\n\r\n getInspectionDuties(UT: string): Observable {\r\n return from(this.odataCoreService.InspectionDuty.Query()\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"Equipment\", \"Identity\"), Guid.parse(UT)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(idArray => idArray.map(idData => this.mapInspectionDutiesListAPIintoInspectionDuties(idData))));\r\n }\r\n\r\n\r\n private mapInspectionDutiesListAPIintoInspectionDuties(data: any): InspectionDuty {\r\n const id: InspectionDuty = new InspectionDuty();\r\n\r\n id.Identity = data.UniqToken;\r\n id.Id = data.Id;\r\n id.IsDisabled = data.IsDisabled;\r\n if (data.InstallModuleId) {\r\n id.Module = { Id: data.InstallModuleId, CustomId: data.IMCustomId, Name: data.IMLongName };\r\n }\r\n id.OperatorTask = {\r\n Id: data.OperatorTaskId,\r\n Guidelines: data.OperatorTaskGuidelines,\r\n Deadline: data.OperatorTaskDeadline,\r\n Qualification: data.OperatorTaskQualification,\r\n Subject: data.OperatorTaskSubject,\r\n Type: data.OperatorTaskType,\r\n BuildingType: data.OperatorTaskBuildingType,\r\n Cycle: data.OperatorTaskCycle,\r\n CycleUnit: this.mapCycleUnit(data.OperatorTaskCycleUnitDescription)\r\n };\r\n if (data.InstallEquipmentId) {\r\n id.Equipment = {\r\n Id: data.InstallEquipmentId,\r\n CustomId: data.IECustomId,\r\n Name: data.IELongName,\r\n HasInspectionDutiesActivated: data.IEHasInspectionDutiesActivated\r\n };\r\n }\r\n id.Schedule = {\r\n Cycle: data.Cycle,\r\n CycleUnit: this.mapCycleUnit(data.CycleUnit),\r\n CycleStart: Utils.jsonToDate(data.SeriesStart)\r\n };\r\n\r\n return id;\r\n }\r\n\r\n private mapCycleUnit(data: number): Common.IntervalUnits {\r\n let cycleUnit: Common.IntervalUnits;\r\n switch (data) {\r\n case 0:\r\n cycleUnit = Common.IntervalUnits.Undefined;\r\n break;\r\n case 1:\r\n cycleUnit = Common.IntervalUnits.Year;\r\n break;\r\n case 2:\r\n cycleUnit = Common.IntervalUnits.Month;\r\n break;\r\n case 3:\r\n cycleUnit = Common.IntervalUnits.Week;\r\n break;\r\n }\r\n return cycleUnit;\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { of, Subscription, from, Subject } from \"rxjs\";\r\nimport { filter, map, startWith, switchMap } from \"rxjs/operators\";\r\n\r\nimport { InstallEquipmentService } from \"../../../building/installEquipment.service\";\r\nimport { InstallEquipmentKpiFilter } from \"../../../building/kpiFilter.enum\";\r\nimport { EquipmentListInputData } from \"../../../core/components/equipment/equipment-list-input-data\";\r\nimport { IntegrityBoxComponent } from \"../../dashboard-boxes/integrity-box/integrity-box.component\";\r\nimport { EquipmentNoInspectionDutiesState } from \"./equipment-no-inspection-duties-state.service\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from \"../../../core/odata/odataclient\";\r\nimport { Utils } from \"../../../core/tools/utils\";\r\n\r\n@Component({\r\n selector: \"app-equipments-no-inspection-duties\",\r\n templateUrl: \"./equipments-no-inspection-duties.component.html\",\r\n styleUrls: [\"./equipments-no-inspection-duties.component.scss\"],\r\n})\r\nexport class EquipmentsNoInspectionDutiesComponent\r\n implements OnInit, OnDestroy {\r\n inputData: EquipmentListInputData = new EquipmentListInputData();\r\n\r\n _searchFilter: string = \"\";\r\n searchFilterSubject = new Subject();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private installEquipmentService: InstallEquipmentService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private state: EquipmentNoInspectionDutiesState,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.inputData.navigateToFirstListItem = false;\r\n this.inputData.showBuilding = true;\r\n this.inputData.showGroupingWizardRow = false;\r\n this.inputData.equipments$ = from(\r\n this.odataCoreService.EquipmentType.Query()\r\n .Exec()\r\n .then((x) => x.value)\r\n );\r\n this.inputData.currentInstallEquipmentUT$ = this.state\r\n .registerForNotification()\r\n .pipe(startWith(\"init call\"))\r\n .pipe(\r\n switchMap((action) => {\r\n if (\r\n action ===\r\n EquipmentNoInspectionDutiesState.ACTION_SET_INSPECTION_DUTY\r\n ) {\r\n this.inputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.root.firstChild.children[1].paramMap.pipe(\r\n map((p) => p.get(\"id\"))\r\n );\r\n })\r\n );\r\n\r\n this.inputData.scrollStyle = { height: \"calc(100vh - 235px)\" };\r\n\r\n this.inputData.installEquipments$ = this.state\r\n .registerForNotification()\r\n .pipe(startWith(\"init call\"))\r\n .pipe(\r\n switchMap((v) => {\r\n return from(\r\n this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"Building/Name\", \"asc\")\r\n .Filter((x) =>\r\n x\r\n .Equals(\r\n ODataPath.For(\"KpiMarker\", \"IsInspectionDutiesAssigned\"),\r\n false\r\n )\r\n .And.Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true)\r\n )\r\n .Expand((x) => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", (y) => {\r\n y.Expand(\"Floor\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => res.map((i) => Utils.mapAllJSONDatesToDates(i))));\r\n })\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.queryParams\r\n .pipe(filter((params) => params.search))\r\n .subscribe((params) => {\r\n this.inputData.searchFilter = params[\"search\"] || \"\";\r\n })\r\n );\r\n this.inputData.onSearchFilterChange = (newValue) => {\r\n this.inputData.searchFilter = newValue;\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: { search: this.inputData.searchFilter },\r\n queryParamsHandling: \"merge\",\r\n });\r\n };\r\n\r\n this.inputData.onSearchFilterChange = (newValue) => {\r\n this.inputData.searchFilter = newValue;\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: { search: this.inputData.searchFilter },\r\n queryParamsHandling: \"merge\",\r\n });\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleDetailPageRequest(installEquipmentUT: string) {\r\n this.router.navigate(\r\n [\r\n \"/building\",\r\n \"wizard\",\r\n \"equipment\",\r\n installEquipmentUT,\r\n \"inspectionduty\",\r\n ],\r\n {\r\n queryParams: { search: this.inputData.searchFilter },\r\n queryParamsHandling: \"merge\",\r\n }\r\n );\r\n }\r\n\r\n handleListEmpty(): void {\r\n this.router.navigate([\"/dashboard\"]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class EquipmentNotScheduledInspectionDutiesState {\r\n\r\n public static readonly ACTION_SCHEDULED_INSPECTION_DUTY = 'action_scheduled_inspection_duty';\r\n\r\n private subject: Subject = new Subject();\r\n\r\n constructor() { }\r\n\r\n notify(notificationtext: string) {\r\n this.subject.next(notificationtext);\r\n }\r\n\r\n registerForNotification(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {map, switchMap} from 'rxjs/operators';\r\nimport {EquipmentEditInspectionDutiesInputData} from '../../../../core/components/equipment/equipment-edit-inspection-duties-input-data';\r\nimport {IntegrityBoxComponent} from '../../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport {EquipmentNotScheduledInspectionDutiesState} from '../equipment-not-scheduled-inspection-duties-state.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { EditOperatorTask } from 'app/core/components/equipment/edit-inspection-duties/editOperatorTask';\r\nimport { ODataPath } from 'app/core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipment-terminate-inspection-duties',\r\n templateUrl: './equipment-terminate-inspection-duties.component.html',\r\n styleUrls: ['./equipment-terminate-inspection-duties.component.scss']\r\n})\r\nexport class EquipmentTerminateInspectionDutiesComponent implements OnInit, OnDestroy {\r\n inputData = new EquipmentEditInspectionDutiesInputData();\r\n\r\n installEquipmentUT: string;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private state: EquipmentNotScheduledInspectionDutiesState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.installEquipment$ = this.route.paramMap.pipe(switchMap((params: ParamMap) => \r\n from(this.odataCoreService.Equipment.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y =>\r\n y.Expand(\"Floor\"))\r\n })\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n ));\r\n\r\n this.inputData.equipmentOperatorTaskMarkers$ = this.route.paramMap.pipe(switchMap((params: ParamMap) => \r\n from(this.odataCoreService.Equipment.Get()\r\n .Key(Guid.parse(params.get('id')))\r\n .Expand(x => {\r\n x.Expand(\"OperatorTaskMarkers\", y => {\r\n y.Expand(\"OperatorTask\", z => {\r\n z.Select(\"Id\")\r\n z.Select(\"Identity\")\r\n z.Select(\"Guidelines\")\r\n z.Select(\"Subject\")\r\n z.Select(\"Deadline\")\r\n z.Select(\"Qualification\")\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n z.Select(\"IsRelevant\")\r\n })\r\n y.Filter(z => z\r\n .Equals(ODataPath.For(\"OperatorTask\", \"IsRelevant\"), true).Or\r\n .EqualsField(\"IsMissing\", false))\r\n }),\r\n x.Expand(\"InspectionDuties\", y => {\r\n y.Expand(\"Schedule\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n z.Select(\"CycleStart\")\r\n }),\r\n y.Expand(\"OperatorTask\", z=> {\r\n z.Select(\"Identity\")\r\n z.Select(\"Id\")\r\n })\r\n y.Filter(z => z\r\n .EqualsField(\"IsDisabled\", false))\r\n })\r\n })\r\n .Select(\"Identity\")\r\n .Exec()\r\n .then(x => x.value))) \r\n , map(id => {\r\n const activatedInspectionDuties = id[0].InspectionDuties;\r\n const idg: EditOperatorTask[] = []\r\n id.forEach(x => {\r\n let a: number = 0;\r\n while (a < x.OperatorTaskMarkers.length) {\r\n\r\n let activatedOperatorTaskId = x.OperatorTaskMarkers[a].OperatorTask.Id;\r\n\r\n let activatedInspectionDutyItem = \r\n activatedInspectionDuties.filter(x => x.OperatorTask.Id == activatedOperatorTaskId).length != 0 ? \r\n activatedInspectionDuties.filter(x => x.OperatorTask.Id == activatedOperatorTaskId)[0] : null;\r\n \r\n let idgItem; \r\n idgItem = new EditOperatorTask();\r\n idgItem.guideline = x.OperatorTaskMarkers[a].OperatorTask.Guidelines;\r\n idgItem.deadline = x.OperatorTaskMarkers[a].OperatorTask.Deadline;\r\n idgItem.subject = x.OperatorTaskMarkers[a].OperatorTask.Subject;\r\n idgItem.qualification = x.OperatorTaskMarkers[a].OperatorTask.Qualification;\r\n idgItem.operatortaskId = x.OperatorTaskMarkers[a].OperatorTask.Id;\r\n idgItem.operatortaskIdentity = x.OperatorTaskMarkers[a].OperatorTask.Identity;\r\n idgItem.cycle = x.OperatorTaskMarkers[a].OperatorTask.Cycle;\r\n idgItem.cycleUnit = x.OperatorTaskMarkers[a].OperatorTask.CycleUnit;\r\n idgItem.isMissing = x.OperatorTaskMarkers[a].IsMissing;\r\n\r\n if (activatedInspectionDutyItem != null){\r\n idgItem.aCycle = activatedInspectionDutyItem.Schedule.Cycle;\r\n idgItem.aCycleUnit = activatedInspectionDutyItem.Schedule.CycleUnit;\r\n if(activatedInspectionDutyItem.Schedule.CycleStart == null){\r\n idgItem.aCycleStart = null;\r\n idgItem.aCycleStartIsNotEmpty = false;\r\n } else {\r\n idgItem.aCycleStart = new Date(activatedInspectionDutyItem.Schedule.CycleStart);\r\n idgItem.aCycleStartIsNotEmpty = true;\r\n } \r\n idgItem.aInspectionDutyIdentity = activatedInspectionDutyItem.Identity;\r\n } else{\r\n idgItem.aCycle = null;\r\n idgItem.aCycleUnit = null;\r\n idgItem.aCycleStart = null;\r\n idgItem.aCycleStartIsNotEmpty = false;\r\n idgItem.aInspectionDutyIdentity = null;\r\n }\r\n\r\n idg.push(idgItem) \r\n a++;\r\n }\r\n });\r\n idg.sort((a, b) => {\r\n const imNameCompare = a.imName ? a.imName.localeCompare(b.imName) : (b.imName ? -b.imName.localeCompare(a.imName) : 0);\r\n return imNameCompare ? imNameCompare : (a.guideline ? a.guideline.localeCompare(b.guideline) : (b.guideline ? -b.guideline.localeCompare(a.guideline) : 0));\r\n });\r\n return idg;\r\n }));\r\n\r\n this.inputData.showClose = true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleCloseRequest(): void {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: ['board'],\r\n right: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NOT_SCHEDULED_INSPECTION_DUTIES]\r\n }\r\n }\r\n ], {queryParamsHandling: 'merge'});\r\n }\r\n\r\n handleSaveRequest(): void {\r\n this.state.notify(EquipmentNotScheduledInspectionDutiesState.ACTION_SCHEDULED_INSPECTION_DUTY);\r\n this.toasterService.pop('success', '', this.translateService.instant('DashboardIntegrityEquipmentsNotScheduledInspectionDuties._toastr_setInspectionDutySuccess'));\r\n }\r\n\r\n handleListEmpty(): void {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {of, Subscription, from} from 'rxjs';\r\nimport {filter, map, startWith, switchMap} from 'rxjs/operators';\r\n\r\nimport {InstallEquipmentService} from '../../../building/installEquipment.service';\r\nimport {InstallEquipmentKpiFilter} from '../../../building/kpiFilter.enum';\r\nimport {EquipmentListInputData} from '../../../core/components/equipment/equipment-list-input-data';\r\nimport {IntegrityBoxComponent} from '../../dashboard-boxes/integrity-box/integrity-box.component';\r\nimport {EquipmentNotScheduledInspectionDutiesState} from './equipment-not-scheduled-inspection-duties-state.service';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\nimport { Utils } from '../../../core/tools/utils';\r\n\r\n@Component({\r\n selector: 'app-equipments-not-scheduled-inspection-duties',\r\n templateUrl: './equipments-not-scheduled-inspection-duties.component.html',\r\n styleUrls: ['./equipments-not-scheduled-inspection-duties.component.scss']\r\n})\r\nexport class EquipmentsNotScheduledInspectionDutiesComponent implements OnInit, OnDestroy {\r\n\r\n inputData: EquipmentListInputData = new EquipmentListInputData();\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private installEquipmentService: InstallEquipmentService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private state: EquipmentNotScheduledInspectionDutiesState,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.inputData.navigateToFirstListItem = false;\r\n this.inputData.showBuilding = true;\r\n this.inputData.showGroupingWizardRow = false;\r\n this.inputData.equipments$ = from(this.odataCoreService.EquipmentType.Query().Exec().then(x => x.value));\r\n\r\n\r\n this.inputData.currentInstallEquipmentUT$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(action => {\r\n if (action === EquipmentNotScheduledInspectionDutiesState.ACTION_SCHEDULED_INSPECTION_DUTY) {\r\n this.inputData.navigateToFirstListItem = true;\r\n return of(null);\r\n }\r\n return this.route.root.firstChild.children[1].paramMap.pipe(map(p => p.get('id')));\r\n }));\r\n\r\n this.inputData.scrollStyle = {height: 'calc(100vh - 235px)'};\r\n\r\n this.inputData.installEquipments$ = this.state.registerForNotification()\r\n .pipe(startWith('init call'))\r\n .pipe(switchMap(v => {\r\n return from(this.odataCoreService.Equipment.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"KpiMarker\", \"HasInspectionDutyUnterminated\"), true).And\r\n .Equals(ODataPath.For(\"KpiMarker\", \"IsActive\"), true))\r\n\r\n .Expand(x => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", y => {\r\n y.Expand(\"Floor\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))));\r\n }));\r\n\r\n this.subscriptions.add(this.route.queryParams.pipe(filter(params => params.search)).subscribe(params => {\r\n this.inputData.searchFilter = params['search'] || '';\r\n }));\r\n this.inputData.onSearchFilterChange = (newValue) => {\r\n this.inputData.searchFilter = newValue;\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {search: this.inputData.searchFilter},\r\n queryParamsHandling: 'merge'\r\n });\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleDetailPageRequest(installEquipmentUT: string) {\r\n this.router.navigate([\r\n '/dashboard',\r\n {\r\n outlets: {\r\n left: [IntegrityBoxComponent.PATH_PREFIX, IntegrityBoxComponent.PATH_EQUIPMENTS_NOT_SCHEDULED_INSPECTION_DUTIES],\r\n right: ['equipment', installEquipmentUT, 'inspection-duties', 'terminate']\r\n }\r\n }\r\n ], {queryParams: {search: this.inputData.searchFilter}, queryParamsHandling: 'merge'});\r\n }\r\n\r\n handleListEmpty(): void {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MissingDocumentState {\r\n\r\n public static readonly ACTION_UPLOAD_DOCUMENT = 'action_upload_document';\r\n\r\n private subject: Subject = new Subject();\r\n\r\n constructor() { }\r\n\r\n notify(notificationtext: string) {\r\n this.subject.next(notificationtext);\r\n }\r\n\r\n registerForNotification(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n\r\n}\r\n","import { DocumentStatus, Incident } from \"./../../../core/model/incident\";\r\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap, Router } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { FileItem } from \"ng2-file-upload\";\r\nimport { Subscription, from, Observable } from \"rxjs\";\r\nimport { PropertyCore } from \"../../../core/odata/odata.coreapi\";\r\nimport { IncidentState } from \"./../../../building/building-incident/incident-state.service\";\r\nimport { ConfirmationModal } from \"./../../../core/popup/confirmation.modal\";\r\nimport { IntegrityBoxComponent } from \"./../../dashboard-boxes/integrity-box/integrity-box.component\";\r\nimport { MissingDocumentState } from \"./missing-document-state.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { Utils } from \"../../../core/tools/utils\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"app-missing-document-upload\",\r\n templateUrl: \"./missing-document-upload.component.html\",\r\n styleUrls: [\"./missing-document-upload.component.scss\"],\r\n})\r\nexport class MissingDocumentUploadComponent implements OnInit, OnDestroy {\r\n type: string;\r\n UT: string;\r\n id: number;\r\n documentTypeId: number;\r\n virtual: boolean;\r\n file: FileItem;\r\n name: string;\r\n\r\n documentTypes: PropertyCore.DocumentType[];\r\n requiredDocumentTypeId: number;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private missingDocumentState: MissingDocumentState,\r\n private incidentState: IncidentState,\r\n private odataCoreService: ODataCoreService,\r\n private httpClient: HttpClient\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.type = this.route.snapshot.url[0].path;\r\n this.subscriptions.add(\r\n this.route.paramMap.subscribe((params: ParamMap) => {\r\n this.resetForm();\r\n\r\n this.UT = params.get(\"id\") || params.get(\"incidentId\");\r\n this.documentTypeId = +params.get(\"documentTypeId\");\r\n\r\n // get id from detail data by UT\r\n switch (this.type) {\r\n case \"building\":\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Get()\r\n .Key(Guid.parse(this.UT))\r\n .Expand((x) => {\r\n x.Expand(\"UsageTypes\");\r\n x.Expand(\"Statistics\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe((res) => (this.id = res.Id))\r\n );\r\n break;\r\n case \"equipment\":\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Equipment.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Building\"),\r\n x.Expand(\"EquipmentType\"),\r\n x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n })\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(this.UT)))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe((res) => (this.id = res.Id))\r\n );\r\n break;\r\n case \"incident\":\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Event.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Response\"),\r\n x.Expand(\"Schedule\", (xa) => {\r\n xa.Expand(\"InspectionDuty\", (xaa) => {\r\n xaa.Select(\"Id\"),\r\n xaa.Expand(\"OperatorTask\", (xaaa) => {\r\n xaaa.Select(\"Guidelines\"),\r\n xaaa.Select(\"Qualification\");\r\n });\r\n }),\r\n xa.Expand(\"MaintenanceContract\", (xab) => {\r\n xab.Select(\"StartDate\"),\r\n xab.Expand(\"ServiceProvider\", (xabb) => {\r\n xabb.Select(\"Name\");\r\n });\r\n });\r\n }),\r\n x.Expand(\"Building\", (xb) => {\r\n xb.Select(\"Name\"),\r\n xb.Select(\"Id\"),\r\n xb.Select(\"Identity\");\r\n }),\r\n x.Expand(\"Equipment\", (xc) => {\r\n xc.Select(\"Name\"),\r\n xc.Select(\"Id\"),\r\n xc.Select(\"Identity\"),\r\n xc.Select(\"CustomId\"),\r\n xc.Expand(\"Room\", (xcc) => {\r\n xcc.Select(\"Name\"),\r\n xcc.Select(\"Id\"),\r\n xcc.Select(\"Identity\");\r\n xcc.Expand(\"Floor\", (xccc) => {\r\n xccc.Select(\"Id\"), xccc.Select(\"Name\");\r\n });\r\n });\r\n }),\r\n x.Expand(\"ServiceProvider\", (xd) => {\r\n xd.Select(\"Name\"),\r\n xd.Select(\"Id\"),\r\n xd.Select(\"Identity\");\r\n }),\r\n x.Expand(\"Module\", (xe) => {\r\n xe.Select(\"Name\"),\r\n xe.Select(\"Id\"),\r\n xe.Select(\"Identity\"),\r\n xe.Expand(\"ModuleType\", (xee) => {\r\n xee.Select(\"Code\"),\r\n xee.Select(\"Id\"),\r\n xee.Select(\"Name\");\r\n });\r\n }),\r\n x.Expand(\"Documents\", (y) => {\r\n y.Select(\"DocumentType\"),\r\n y.Expand(\"DocumentType\", (z) => {\r\n z.Select(\"Id\"), z.Select(\"Name\");\r\n });\r\n }),\r\n x.Expand(\"KpiMarker\");\r\n })\r\n .Filter((x) => x.EqualsField(\"Id\", +this.UT))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Incident(), res[0]);\r\n })\r\n )\r\n .subscribe((res) => {\r\n this.UT = res.Identity;\r\n this.id = res.Id;\r\n\r\n if (\r\n res.documentOfferStatus === DocumentStatus.MissingRequired\r\n ) {\r\n this.requiredDocumentTypeId = 1; // Angebot\r\n this.documentTypeId = 1;\r\n } else if (\r\n res.documentCommissionStatus ===\r\n DocumentStatus.MissingRequired\r\n ) {\r\n this.requiredDocumentTypeId = 2; // Beauftragung\r\n this.documentTypeId = 2;\r\n } else if (\r\n res.documentReportStatus === DocumentStatus.MissingRequired\r\n ) {\r\n this.requiredDocumentTypeId = 4; // Regiebericht\r\n this.documentTypeId = 4;\r\n } else if (\r\n res.documentProtocolStatus ===\r\n DocumentStatus.MissingRequired\r\n ) {\r\n this.requiredDocumentTypeId = 3; // Protokoll\r\n this.documentTypeId = 3;\r\n } else if (\r\n res.documentInvoiceStatus === DocumentStatus.MissingRequired\r\n ) {\r\n this.requiredDocumentTypeId = 5; // Rechnung\r\n this.documentTypeId = 5;\r\n }\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.DocumentTypeGroup.Query()\r\n .Filter((x) => x.EqualsField(\"Id\", 1))\r\n .Expand((x) => {\r\n x.Expand(\"DocumentTypes\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res[0].DocumentTypes.map((i) =>\r\n Utils.mapAllJSONDatesToDates(i)\r\n )\r\n )\r\n )\r\n .subscribe((res2) => {\r\n this.documentTypes = res2;\r\n })\r\n );\r\n })\r\n );\r\n break;\r\n }\r\n })\r\n );\r\n }\r\n\r\n get documentTypeIdString() {\r\n return this.documentTypeId.toString();\r\n }\r\n\r\n onDocumentTypeChange(typeId: string): void {\r\n this.documentTypeId = +typeId;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onVirtualChange(virtual: boolean): void {\r\n this.virtual = virtual;\r\n\r\n // reset data which depends on virtual\r\n this.file = null;\r\n this.name = null;\r\n\r\n this.formSubmitted = false;\r\n }\r\n\r\n onAddFile(file: FileItem): void {\r\n this.file = file;\r\n }\r\n\r\n onRemoveFile(): void {\r\n this.file = null;\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n if (this.virtual) {\r\n let saveDocument$;\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\r\n \"DocumentType\",\r\n this.odataCoreService.DocumentType.Get()\r\n .Key(this.documentTypeId)\r\n .Bind()\r\n )\r\n .ValueProperty(\"Description\", this.name)\r\n .Exec()\r\n ).subscribe((res) => {\r\n switch (this.type) {\r\n case \"building\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n break;\r\n\r\n case \"equipment\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n break;\r\n\r\n case \"incident\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n break;\r\n }\r\n if (saveDocument$) {\r\n this.subscriptions.add(\r\n saveDocument$.subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"DashboardIntegrityMissingDocumentUpload._upload2_success\"\r\n )\r\n );\r\n this.missingDocumentState.notify(\r\n MissingDocumentState.ACTION_UPLOAD_DOCUMENT\r\n );\r\n this.incidentState.notify(\r\n IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT\r\n );\r\n\r\n this.resetForm();\r\n })\r\n );\r\n } else {\r\n this.exit();\r\n }\r\n })\r\n );\r\n } else {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Document.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Document())\r\n .ValuePropertyBinding(\r\n \"DocumentType\",\r\n this.odataCoreService.DocumentType.Get()\r\n .Key(this.documentTypeId)\r\n .Bind()\r\n )\r\n .ValueProperty(\"Name\", this.file.file.name)\r\n .ValueProperty(\"Description\", this.name)\r\n .Exec()\r\n ).subscribe((res) => {\r\n if (this.file.file.type != \"\") {\r\n var odataDocumentUrl = this.odataCoreService.Document.Get()\r\n .Raw()\r\n .Key(Guid.parse(res.Identity))\r\n .ToUrlString(false);\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.uploadODataDocument(this.file, odataDocumentUrl)\r\n ).subscribe((res1) => {\r\n let saveDocument$;\r\n switch (this.type) {\r\n case \"building\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n\r\n break;\r\n case \"equipment\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n break;\r\n case \"incident\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n break;\r\n }\r\n if (saveDocument$) {\r\n this.subscriptions.add(\r\n saveDocument$.subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"DashboardIntegrityMissingDocumentUpload._upload_success\"\r\n )\r\n );\r\n this.missingDocumentState.notify(\r\n MissingDocumentState.ACTION_UPLOAD_DOCUMENT\r\n );\r\n this.incidentState.notify(\r\n IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT\r\n );\r\n\r\n this.resetForm();\r\n })\r\n );\r\n } else {\r\n this.exit();\r\n }\r\n })\r\n );\r\n } else {\r\n this.uploadDocumentNoContentType(res.Identity);\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n uploadODataDocument(file: FileItem, url: string): Observable {\r\n return this.httpClient.put(url, file._file);\r\n }\r\n\r\n uploadODataDocumentNoCT(file: Blob, url: string): Observable {\r\n return this.httpClient.put(url, file);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"DashboardIntegrityMissingDocumentUpload._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"DashboardIntegrityMissingDocumentUpload._modal_message\"\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"DashboardIntegrityMissingDocumentUpload._modal_yes\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"DashboardIntegrityMissingDocumentUpload._modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.exit();\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.exit();\r\n }\r\n }\r\n\r\n private exit() {\r\n switch (this.type) {\r\n case \"building\":\r\n this.router.navigate(\r\n [\r\n \"/dashboard\",\r\n {\r\n outlets: {\r\n left: [\"board\"],\r\n right: [\r\n IntegrityBoxComponent.PATH_PREFIX,\r\n IntegrityBoxComponent.PATH_BUILDINGS_MISSING_DOCUMENTS,\r\n ],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n break;\r\n case \"equipment\":\r\n this.router.navigate(\r\n [\r\n \"/dashboard\",\r\n {\r\n outlets: {\r\n left: [\"board\"],\r\n right: [\r\n IntegrityBoxComponent.PATH_PREFIX,\r\n IntegrityBoxComponent.PATH_EQUIPMENTS_MISSING_DOCUMENTS,\r\n ],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n break;\r\n case \"incident\":\r\n this.router.navigate(\r\n [\r\n \"/dashboard\",\r\n {\r\n outlets: {\r\n left: [\"board\"],\r\n right: [\"conformity\", \"list\", { tab: \"missingDocument\" }],\r\n },\r\n },\r\n ],\r\n { queryParamsHandling: \"merge\" }\r\n );\r\n break;\r\n default:\r\n this.router.navigate([\"/dashboard\"]);\r\n break;\r\n }\r\n }\r\n\r\n uploadDocumentNoContentType(documentIdentity: string): void {\r\n let fileExtensionIndex = this.file.file.name.lastIndexOf(\".\");\r\n let fileExtension = this.file.file.name.substring(fileExtensionIndex);\r\n let blobFile;\r\n\r\n switch (fileExtension) {\r\n case \".pdf\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/pdf\"\r\n );\r\n break;\r\n\r\n case \".png\":\r\n blobFile = this.file._file.slice(0, this.file.file.size, \"image/png\");\r\n break;\r\n\r\n case \".jpg\":\r\n case \".jpeg\":\r\n blobFile = this.file._file.slice(0, this.file.file.size, \"image/jpeg\");\r\n break;\r\n\r\n case \".tif\":\r\n case \".tiff\":\r\n blobFile = this.file._file.slice(0, this.file.file.size, \"image/tiff\");\r\n break;\r\n\r\n case \".doc\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/msword\"\r\n );\r\n break;\r\n\r\n case \".docx\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n );\r\n break;\r\n\r\n case \".xls\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/vnd.ms-excel\"\r\n );\r\n break;\r\n\r\n case \".xlsx\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n );\r\n break;\r\n\r\n case \".ppt\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/vnd.ms-powerpoint\"\r\n );\r\n break;\r\n\r\n case \".pptx\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\"\r\n );\r\n break;\r\n\r\n case \".dwg\":\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"image/vnd.dwg\"\r\n );\r\n break;\r\n\r\n default:\r\n blobFile = this.file._file.slice(\r\n 0,\r\n this.file.file.size,\r\n \"application/octet-stream\"\r\n );\r\n break;\r\n }\r\n\r\n var odataDocumentUrl = this.odataCoreService.Document.Get()\r\n .Raw()\r\n .Key(Guid.parse(documentIdentity))\r\n .ToUrlString(false);\r\n\r\n this.subscriptions.add(\r\n from(this.uploadODataDocumentNoCT(blobFile, odataDocumentUrl)).subscribe(\r\n (res1) => {\r\n let saveDocument$;\r\n switch (this.type) {\r\n case \"building\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(documentIdentity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n\r\n break;\r\n case \"equipment\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Equipment.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(documentIdentity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n break;\r\n case \"incident\":\r\n saveDocument$ = from(\r\n this.odataCoreService.Event.Link()\r\n .Key(Guid.parse(this.UT))\r\n .Value(\r\n \"Documents\",\r\n this.odataCoreService.Document.Get()\r\n .Key(Guid.parse(documentIdentity))\r\n .Bind()\r\n )\r\n .Post()\r\n );\r\n break;\r\n }\r\n if (saveDocument$) {\r\n this.subscriptions.add(\r\n saveDocument$.subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"DashboardIntegrityMissingDocumentUpload._upload_success\"\r\n )\r\n );\r\n this.missingDocumentState.notify(\r\n MissingDocumentState.ACTION_UPLOAD_DOCUMENT\r\n );\r\n this.incidentState.notify(\r\n IncidentState.NAVIGATION_ACTION_NEXT_INCIDENT\r\n );\r\n })\r\n );\r\n } else {\r\n this.exit();\r\n }\r\n }\r\n )\r\n );\r\n }\r\n\r\n private resetForm(): void {\r\n this.virtual = false;\r\n this.file = null;\r\n this.name = null;\r\n this.formSubmitted = false;\r\n }\r\n}\r\n","import { UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../../../core/odata/odata.coreapi';\r\n\r\nexport class ContractHandlingInputData {\r\n contracts$: Observable;\r\n navigateBackUrlTree: UrlTree;\r\n installEquipment$: Observable;\r\n contractTerminationMandatory: boolean = false;\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { of, Subscription, from } from 'rxjs';\r\n\r\nimport { Common, PropertyCore } from '../../../../core/odata/odata.coreapi';\r\nimport { ContractListInputdata } from '../../../../core/components/contract/contract-list-input-data';\r\nimport { ExtendedMaintenanceContractMapping } from '../../../../core/model/extendedMaintenanceContractMapping';\r\nimport { ConfirmationModal } from '../../../../core/popup/confirmation.modal';\r\nimport { ContractHandlingInputData } from './contract-handling-input-data';\r\nimport { map } from 'rxjs/operators';\r\nimport { Utils } from '../../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataPath } from '../../../../core/odata/odataclient';\r\nimport { ODataCoreService } from '../../../../core/odata-services/odata.coreapi.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-equipments-contract-handling',\r\n templateUrl: './equipments-contract-handling.component.html',\r\n styleUrls: ['./equipments-contract-handling.component.scss']\r\n})\r\nexport class EquipmentsContractHandlingComponent implements OnInit, OnDestroy {\r\n\r\n @Input() contractHandlingInputData = new ContractHandlingInputData();\r\n @Output() saveRequest: EventEmitter = new EventEmitter();\r\n\r\n inputData = new ContractListInputdata();\r\n\r\n selectedContract: PropertyCore.MaintenanceContract;\r\n\r\n cycleUnits: string[] = Object.keys(Common.IntervalUnits).filter(x => x !== Common.IntervalUnits.Undefined);\r\n\r\n cycleUnit: Common.IntervalUnits;\r\n\r\n validFromDate: Date;\r\n\r\n cycle: number;\r\n\r\n w: number = 0;\r\n\r\n formSubmitted: boolean;\r\n\r\n installEquipment: PropertyCore.Equipment;\r\n\r\n private subscriptions = new Subscription();\r\n\r\n constructor(\r\n private odataCoreService: ODataCoreService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private router: Router\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.inputData.contracts$ = this.contractHandlingInputData.contracts$;\r\n\r\n this.inputData.contractUT$ = of(null);\r\n this.inputData.showSearch = false;\r\n this.inputData.showWizardButton = false;\r\n this.inputData.scrollStyle = { height: 'calc(100vh - 470px)' };\r\n\r\n this.subscriptions.add(this.contractHandlingInputData.installEquipment$.subscribe(ie => this.installEquipment = ie));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n handleContractListItemClick(contract: PropertyCore.MaintenanceContract) {\r\n this.selectedContract = contract;\r\n }\r\n\r\n compareId(val1: { Id: number }, val2: { Id: number }): boolean {\r\n return val1 === val2 || (val1 && val2 && val1.Id === val2.Id);\r\n }\r\n\r\n save(form: NgForm): void {\r\n\r\n // if required is mandatory the form must be valid, otherwise the termination fields must only be filled when at least one of them is not empty\r\n if ((this.contractHandlingInputData.contractTerminationMandatory && form.form.invalid) ||\r\n (!this.contractHandlingInputData.contractTerminationMandatory &&\r\n (((form.value.cycle || form.value.cycle === 0) || form.value.cycleUnit || form.value.validFromDate) && (!(form.value.cycle && form.value.cycleUnit && form.value.validFromDate))))) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n const contractInstallEquipment: ExtendedMaintenanceContractMapping = ExtendedMaintenanceContractMapping.createFromEquipment(this.installEquipment);\r\n contractInstallEquipment.Schedule.Cycle = this.cycle;\r\n contractInstallEquipment.Schedule.CycleUnit = this.cycleUnit;\r\n contractInstallEquipment.Schedule.CycleStart = this.validFromDate;\r\n\r\n from(this.odataCoreService.MaintenanceJob.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().MaintenanceJob())\r\n .ValueProperty(\"Identity\", Utils.guid())\r\n .ValuePropertyBinding(\"Equipment\", this.odataCoreService.Equipment.Get().Key(Guid.parse(contractInstallEquipment.Equipment.Identity)).Bind())\r\n .ValuePropertyBinding(\"Contract\", this.odataCoreService.MaintenanceContract.Get().Key(Guid.parse(this.selectedContract.Identity)).Bind())\r\n .Exec().then(x => {\r\n from(this.odataCoreService.MaintenanceJob.Query()\r\n .Filter(xb => xb.EqualsField(\"Identity\", Guid.parse(x.Identity)))\r\n .Expand(xb => {\r\n xb.Expand(\"Schedule\")\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new ExtendedMaintenanceContractMapping(), i);\r\n }))).subscribe(i => {\r\n from(this.odataCoreService.Schedule.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().Schedule())\r\n .Key(Guid.parse(i[0].Schedule.Identity))\r\n .ValueProperty(\"Cycle\", contractInstallEquipment.Schedule.Cycle)\r\n .ValueProperty(\"CycleUnit\", contractInstallEquipment.Schedule.CycleUnit)\r\n .ValueProperty(\"CycleStart\", contractInstallEquipment.Schedule.CycleStart)\r\n .Exec());\r\n\r\n })\r\n })).subscribe(res2 => {\r\n this.saveRequest.emit();\r\n this.toasterService.pop('success', '', this.translateService.instant('DashboardIntegrityEquipmentsNoContract._toastr_setContractSuccess'));\r\n });\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n return this.cancel(isDirty);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('DashboardIntegrityEquipmentsNoContract._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('DashboardIntegrityEquipmentsNoContract._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('DashboardIntegrityEquipmentsNoContract._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('DashboardIntegrityEquipmentsNoContract._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigateByUrl(this.contractHandlingInputData.navigateBackUrlTree);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigateByUrl(this.contractHandlingInputData.navigateBackUrlTree);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, from } from 'rxjs';\r\n\r\nimport { PropertyCore, Operations } from '../../core/odata/odata.coreapi';\r\nimport { AuthService } from './../../core/auth/auth.service';\r\nimport { Selectable } from './../../core/model/common';\r\nimport { ConfirmationModal } from './../../core/popup/confirmation.modal';\r\nimport { GlobalService } from './../../core/shared/global.service';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n@Component({\r\n selector: 'app-range-of-services',\r\n templateUrl: './range-of-services.component.html',\r\n styleUrls: ['./range-of-services.component.scss']\r\n})\r\nexport class RangeOfServicesComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('helpPopupContent', { static: true })\r\n helpPopupContent: any;\r\n\r\n modalTitle: string;\r\n isOther: boolean;\r\n formSubmitted: boolean;\r\n invalid: boolean;\r\n\r\n buildings: Selectable[];\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private globalService: GlobalService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n help1() {\r\n this.isOther = false;\r\n this.help(1);\r\n }\r\n\r\n help2() {\r\n this.isOther = false;\r\n this.help(2);\r\n }\r\n\r\n help3() {\r\n this.isOther = true;\r\n this.help(3);\r\n }\r\n\r\n private help(idx: number) {\r\n if (!this.isOther) {\r\n if (!this.buildings) {\r\n this.subscriptions.add(from(this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n .subscribe(res => this.buildings = res));\r\n } else {\r\n this.selectAll(false);\r\n }\r\n }\r\n\r\n this.modalTitle = this.translateService.instant('RangeOfServices._modal_title' + idx);\r\n this.modalService.open(this.helpPopupContent, { windowClass: 'help-modal' }).result\r\n .then(val => {\r\n const buildingIds = !this.isOther ? this.buildings.filter(b => b.selected).map(b => b.Identity) : null;\r\n let service;\r\n switch (idx) {\r\n case 1:\r\n service = this.odataCoreService.Account.Get().Key(Guid.parse(localStorage.getItem('mandator'))).Actions().SendServiceRequestInOperationsOnAccountInOperations().Parameters(Operations.ServiceRequestTypes.InstallEquipmentDocumentation, buildingIds).Execute();\r\n break;\r\n case 2:\r\n service = this.odataCoreService.Account.Get().Key(Guid.parse(localStorage.getItem('mandator'))).Actions().SendServiceRequestInOperationsOnAccountInOperations().Parameters(Operations.ServiceRequestTypes.InspectionDutyAnalysis, buildingIds).Execute();\r\n break;\r\n case 3:\r\n service = this.odataCoreService.Account.Get().Key(Guid.parse(localStorage.getItem('mandator'))).Actions().SendServiceRequestInOperationsOnAccountInOperations().Parameters(Operations.ServiceRequestTypes.Training).Execute();\r\n break;\r\n }\r\n this.subscriptions.add(service.subscribe(res => {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('RangeOfServices._modal2_title');\r\n modalRef.componentInstance.message = this.translateService.instant('RangeOfServices._modal2_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('RangeOfServices._modal2_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }));\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n selectAll(all: boolean): void {\r\n this.buildings.forEach(b => {\r\n b.selected = all;\r\n });\r\n }\r\n\r\n validate(closeModal: () => void): void {\r\n this.invalid = !this.isOther ? !this.buildings.filter(b => b.selected).length : false;\r\n if (this.invalid) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n closeModal();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { Subscription, timer, from } from \"rxjs\";\r\nimport { take, map } from \"rxjs/operators\";\r\n\r\nimport { AuthService } from \"./../../core/auth/auth.service\";\r\nimport { ConfirmationModal } from \"./../../core/popup/confirmation.modal\";\r\nimport { GlobalService } from \"./../../core/shared/global.service\";\r\nimport { Utils } from \"../../core/tools/utils\";\r\nimport { ODataCoreService } from \"./../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\n\r\n@Component({\r\n selector: \"app-change-password\",\r\n templateUrl: \"./change-password.component.html\",\r\n styleUrls: [\"./change-password.component.scss\"],\r\n})\r\nexport class ChangePasswordComponent implements OnInit, OnDestroy {\r\n isFirstLogin: boolean;\r\n agreeChecked: boolean;\r\n isCompany: boolean;\r\n agree2Checked: boolean;\r\n\r\n email: string;\r\n password: string;\r\n encrypted: boolean = true;\r\n newPassword: string;\r\n newPasswordRepeat: string;\r\n\r\n accessCode: string;\r\n invitation: string;\r\n\r\n errors: string[];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private toasterService: ToasterService,\r\n private globalService: GlobalService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private odataCoreService: ODataCoreService,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.queryParamMap.subscribe((params) => {\r\n this.email = params.get(\"username\");\r\n this.password = params.get(\"password\");\r\n this.encrypted = params.get(\"encrypted\") === \"true\";\r\n this.accessCode = params.get(\"accessCode\");\r\n this.invitation = params.get(\"invitation\");\r\n\r\n this.subscriptions.add(\r\n this.authService.isLoggedIn().subscribe((isLoggedIn) => {\r\n if (isLoggedIn && !this.isFirstLogin) {\r\n // when username and password in url, then initial password change - logout previous user and hard reload page\r\n if (this.email && this.password) {\r\n // use timer to not conflict with existing isLoggedIn value in appComponent\r\n timer(1)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.authService.logout();\r\n // hard reload\r\n const url = this.router\r\n .createUrlTree([\"/global/change-password\"], {\r\n queryParams: {\r\n username: this.email,\r\n password: this.password,\r\n encrypted: this.encrypted,\r\n accessCode: this.accessCode,\r\n invitation: this.invitation,\r\n },\r\n })\r\n .toString();\r\n this.router\r\n .navigateByUrl(\"/skipThisPage\", {\r\n skipLocationChange: true,\r\n })\r\n .then(() => this.router.navigateByUrl(url));\r\n });\r\n } else {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.User.Query()\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(localStorage.getItem(\"infoUserIdentity\"))))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe((profile) => {\r\n this.email = profile.Email;\r\n\r\n this.subscriptions.add(\r\n this.globalService.isUserValid(this.email, false).subscribe((isPwUnchanged) => {\r\n this.isFirstLogin = isPwUnchanged;\r\n })\r\n );\r\n })\r\n );\r\n }\r\n } else {\r\n this.subscriptions.add(\r\n this.globalService.isUserValid(this.email, this.encrypted).subscribe((isPwUnchanged) => {\r\n this.isFirstLogin = isPwUnchanged;\r\n })\r\n );\r\n }\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onInputChange() {\r\n if (!this.password || this.password.length < 3 || !this.newPassword || this.newPassword.length < 3) {\r\n return;\r\n }\r\n this.subscriptions.add(\r\n this.globalService.checkPassword(this.email, this.newPassword, this.encrypted).subscribe((response) => {\r\n this.errors = response;\r\n if (this.newPassword !== this.newPasswordRepeat) {\r\n this.errors.push(\"identicalPassword\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n getPasswordDescription() {\r\n if (this.errors && this.errors.indexOf(\"passwordDescription\") === -1) {\r\n switch (this.errors.length) {\r\n case 6:\r\n return this.translateService.instant(\"ChangePassword._h3_state_short\");\r\n case 5:\r\n case 4:\r\n case 3:\r\n return this.translateService.instant(\"ChangePassword._h3_state_weak\");\r\n case 2:\r\n return this.translateService.instant(\"ChangePassword._h3_state_good\");\r\n case 1:\r\n return this.translateService.instant(\"ChangePassword._h3_state_strong\");\r\n case 0:\r\n return this.translateService.instant(\"ChangePassword._h3_state_super\");\r\n }\r\n }\r\n return this.translateService.instant(\"ChangePassword._h3_state_newPw\");\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (\r\n !validForm ||\r\n (this.errors && this.errors.length) ||\r\n (this.isFirstLogin && (!this.agreeChecked || (!this.isCompany && !this.agree2Checked)))\r\n ) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.subscriptions.add(\r\n this.globalService.changePassword(this.password, this.newPassword, this.email, this.encrypted).subscribe(\r\n (res) => {\r\n this.toasterService.pop(\"success\", \"\", this.translateService.instant(\"ChangePassword.save_success\"));\r\n\r\n // re-login\r\n this.subscriptions.add(\r\n this.authService.login(this.email, this.newPassword).subscribe((loggedIn) => {\r\n if (loggedIn && loggedIn.length && loggedIn[0]) {\r\n loggedIn = loggedIn[0];\r\n if (loggedIn.error) {\r\n this.toasterService.pop(\"error\", \"\", this.translateService.instant(\"ChangePassword.relogin_error\"));\r\n } else {\r\n if (this.isFirstLogin) {\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(localStorage.getItem(\"infoUserIdentity\")))\r\n .Actions()\r\n .AcceptUsageTermsInOperationsOnUserInOperations()\r\n .Parameters(this.agreeChecked, this.isCompany, this.agree2Checked)\r\n .Execute()\r\n .then((res) => {\r\n this.router.navigate([\"/global/profile\"], {\r\n queryParams: {\r\n isNewUser: true,\r\n accessCode: this.accessCode,\r\n invitation: this.invitation,\r\n },\r\n });\r\n });\r\n } else {\r\n timer(1)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.authService.logout();\r\n });\r\n }\r\n }\r\n }\r\n })\r\n );\r\n },\r\n (err) => {\r\n this.toasterService.pop(\"error\", \"\", this.translateService.instant(\"ChangePassword.save_error\"));\r\n }\r\n )\r\n );\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"ChangePassword._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"ChangePassword._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"ChangePassword._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"ChangePassword._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate([\"/dashboard\"]);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate([\"/dashboard\"]);\r\n }\r\n }\r\n\r\n changeIsCompany(value: boolean) {\r\n this.isCompany = value;\r\n this.agree2Checked = false;\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\nimport {MandatorWizardModel} from './../../mandator/wizard/mandator-wizard-model';\r\n\r\n@Component({\r\n selector: 'app-contract-data-processing-article',\r\n templateUrl: './contract-data-processing-article.component.html',\r\n styleUrls: ['./contract-data-processing-article.component.scss']\r\n})\r\nexport class ContractDataProcessingArticleComponent {\r\n\r\n @Input()\r\n model: MandatorWizardModel;\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap} from '@angular/router';\r\nimport {of, Subscription, Observable, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\nimport {Mandator} from './../../core/model/mandator';\r\nimport {MandatorWizardModel} from './../mandator/wizard/mandator-wizard-model';\r\nimport {MandatorWizardService} from './../mandator/wizard/mandator-wizard.service';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n\r\n@Component({\r\n selector: 'app-contract-data-processing',\r\n templateUrl: './contract-data-processing.component.html',\r\n styleUrls: ['./contract-data-processing.component.scss']\r\n})\r\nexport class ContractDataProcessingComponent implements OnInit, OnDestroy {\r\n\r\n model: MandatorWizardModel;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private mandatorWizardService: MandatorWizardService,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n const history = this.route.snapshot.data.history;\r\n if (history) {\r\n this.subscriptions.add(this.route.paramMap.pipe(switchMap((params: ParamMap) => params.get('id') ? from(this.odataCoreService.Account.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Expand(x => {\r\n x.Expand(\"User\"),\r\n x.Expand(\"Statistics\"),\r\n x.Expand(\"Profile\"),\r\n x.Expand(\"AccountDataProcessingAgreement\", z => {\r\n z.Expand(\"Country\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Mandator(), res[0]);\r\n })) : of(null)))\r\n .subscribe(mandator => {\r\n if (mandator) {\r\n this.mandatorWizardService.startWizard();\r\n this.model = this.mandatorWizardService.getCurrentMandator();\r\n // we need to load countries for country data\r\n this.subscriptions.add(from(this.odataCoreService.Country.Query().OrderBy('Id')\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(countries => {\r\n this.mandatorWizardService.editWizard(mandator, countries.find(c => c.Id === ((history && mandator?.AccountDataProcessingAgreement) ? mandator?.AccountDataProcessingAgreement?.Country.Id : mandator.Profile.Address.CountryInfo.Id)), history);\r\n }));\r\n }\r\n }));\r\n } else {\r\n\r\n this.subscriptions.add(this.route.paramMap.pipe(switchMap((params: ParamMap) => params.get('id') ? from(this.odataCoreService.Account.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Expand(x => {\r\n x.Expand(\"User\"),\r\n x.Expand(\"Statistics\"),\r\n x.Expand(\"Profile\") \r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Mandator(), res[0]);\r\n })) : of(null)))\r\n .subscribe(mandator => {\r\n if (mandator) {\r\n this.mandatorWizardService.startWizard();\r\n this.model = this.mandatorWizardService.getCurrentMandator();\r\n // we need to load countries for country data\r\n this.subscriptions.add(from(this.odataCoreService.Country.Query().OrderBy('Id')\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(countries => {\r\n this.mandatorWizardService.editWizard(mandator, countries.find(c => c.Id === ((history && mandator?.AccountDataProcessingAgreement) ? mandator?.AccountDataProcessingAgreement?.Country.Id : mandator.Profile.Address.CountryInfo.Id)), history);\r\n }));\r\n }\r\n }));\r\n }\r\n \r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-data-protection',\r\n templateUrl: './data-protection.component.html',\r\n styleUrls: ['./data-protection.component.scss']\r\n})\r\nexport class DataProtectionComponent {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { Selectable } from \"app/core/model/common\";\r\nimport { PropertyCore } from \"app/core/odata/odata.coreapi\";\r\nimport { FilterByPipe } from \"app/core/pipes/filter.pipe\";\r\nimport { BuildingService } from \"app/core/shared/services/building.service\";\r\n\r\n@Component({\r\n selector: \"app-export-calculation-buildings\",\r\n templateUrl: \"./export-calculation-buildings.component.html\",\r\n styleUrls: [\"./export-calculation-buildings.component.scss\"],\r\n})\r\nexport class ExportCalculationBuildingsComponent implements OnInit {\r\n @Output() buildingsSelected: EventEmitter<\r\n PropertyCore.Building[]\r\n > = new EventEmitter();\r\n public buildings: Selectable[];\r\n\r\n constructor(private buildingService: BuildingService) { }\r\n\r\n ngOnInit() {\r\n this.buildingService.getBuildings().subscribe((res) => {\r\n this.buildings = res;\r\n });\r\n }\r\n\r\n public onBuildingsSelected(selectedBuildings: PropertyCore.Building[]): void {\r\n this.buildingsSelected.emit(selectedBuildings);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { ODataCoreService } from \"app/core/odata-services/odata.coreapi.service\";\r\nimport { PropertyCore } from \"app/core/odata/odata.coreapi\";\r\nimport { BuildingService } from \"app/core/shared/services/building.service\";\r\nimport { Guid } from \"guid-typescript\";\r\n\r\n@Component({\r\n selector: \"app-export-calculation-inspection-duties\",\r\n templateUrl: \"./export-calculation-inspection-duties.component.html\",\r\n styleUrls: [\"./export-calculation-inspection-duties.component.scss\"],\r\n})\r\nexport class ExportCalculationInspectionDutiesComponent implements OnInit {\r\n private _buildings: PropertyCore.Building[];\r\n @Input() public set buildings(value: PropertyCore.Building[]) {\r\n if (value != this._buildings) {\r\n this._buildings = value;\r\n this.loadInspectionDuties(this._buildings);\r\n }\r\n }\r\n @Output() operatorTasksSelected: EventEmitter<\r\n PropertyCore.OperatorTask[]\r\n > = new EventEmitter();\r\n\r\n public get buildings(): PropertyCore.Building[] {\r\n return this._buildings;\r\n }\r\n\r\n public operatorTasks: PropertyCore.OperatorTask[] = [];\r\n\r\n constructor(private buildingService: BuildingService) {}\r\n\r\n ngOnInit() {}\r\n\r\n public onOperatorTasksSelected(\r\n selectedOperatorTasks: PropertyCore.OperatorTask[]\r\n ): void {\r\n this.operatorTasksSelected.emit(selectedOperatorTasks);\r\n }\r\n\r\n private loadInspectionDuties(buildings: PropertyCore.Building[]): void {\r\n if (!buildings || !buildings.length) return;\r\n\r\n this.buildingService\r\n .getBuildingUniqueInspectionDuties(buildings.map((b) => b.Identity))\r\n .subscribe(\r\n (operatorTasks) =>\r\n (this.operatorTasks = operatorTasks.sort((a, b) => {\r\n if (a.Guidelines < b.Guidelines) {\r\n return -1;\r\n }\r\n if (a.Guidelines > b.Guidelines) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\nimport { PropertyCore } from \"app/core/odata/odata.coreapi\";\r\nimport {\r\n InspectionDutyExtendedWithBuildingAndEquipment,\r\n OperatorTaskExtendedInspectionDuties,\r\n} from \"app/core/shared/services/building.service\";\r\nimport { MandatorService } from \"app/core/shared/services/mandator.service\";\r\nimport { forkJoin } from \"rxjs\";\r\nimport { Mandator } from \"app/core/model/mandator\";\r\nimport {\r\n ExcelService,\r\n SheetInfo,\r\n} from \"app/core/shared/services/shared/excel.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { AttributeValuesService } from \"app/core/shared/services/attribute-values.service\";\r\nimport { AttributeValueData } from \"app/core/model/attributeValueData\";\r\n\r\n@Component({\r\n selector: \"app-export-calculation\",\r\n templateUrl: \"./export-calculation.component.html\",\r\n styleUrls: [\"./export-calculation.component.scss\"],\r\n})\r\nexport class ExportCalculationComponent implements OnInit {\r\n @Input() title: string;\r\n public selectedBuildings: PropertyCore.Building[] = [];\r\n public selectedOperatorTasks: OperatorTaskExtendedInspectionDuties[] = [];\r\n public allAttributeTypes: PropertyCore.AttributeType[] = [];\r\n\r\n constructor(\r\n private mandatorService: MandatorService,\r\n private excelService: ExcelService,\r\n private translateService: TranslateService,\r\n private atiiributeValuesService: AttributeValuesService\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n public onBuildingsSelected(selectedBuildings: PropertyCore.Building[]): void {\r\n this.selectedBuildings = selectedBuildings;\r\n }\r\n\r\n public onOperatorTasksSelected(\r\n selectedOperatorTasks: OperatorTaskExtendedInspectionDuties[]\r\n ): void {\r\n this.selectedOperatorTasks = selectedOperatorTasks;\r\n }\r\n\r\n public export(): void {\r\n var dataObservables$ = [];\r\n let mandator$ = this.mandatorService.getCurrentMandatorWithRights$();\r\n dataObservables$.push(mandator$);\r\n let attributeTypes$ = this.atiiributeValuesService.getAttributeTypes$();\r\n dataObservables$.push(attributeTypes$);\r\n\r\n forkJoin(dataObservables$).subscribe((data: any[]) => {\r\n var mandantExcelData = this.getMandatorExcelData(data[0]);\r\n var buildingsData = this.getBuildingsExcelData();\r\n var documentsData = this.getDocumentsExcelData();\r\n this.allAttributeTypes = data[1];\r\n\r\n var sheets: SheetInfo[] = [];\r\n sheets[0] = { title: \"Firmenkonto\", data: mandantExcelData };\r\n sheets[1] = { title: \"Gebäudeliste\", data: buildingsData };\r\n //sheets[2] = { title: \"Dokumente\", data: documentsData };\r\n\r\n let opTasksSheets = this.getOperatorTasksExcelSheets();\r\n opTasksSheets.sortBy((s) => s.title);\r\n\r\n for (let i = 0; i < opTasksSheets.length; i++) {\r\n sheets[i + 2] = opTasksSheets[i];\r\n }\r\n\r\n this.excelService.saveFile(\"Angebots-/Ausschreibungsexport\", sheets);\r\n });\r\n }\r\n\r\n private getOperatorTasksExcelSheets(): SheetInfo[] {\r\n let sheets: SheetInfo[] = [];\r\n for (let i = 0; i < this.selectedOperatorTasks.length; i++) {\r\n let currOpTask = this.selectedOperatorTasks[i];\r\n let targetName = currOpTask.Guidelines + \"-\" + currOpTask.Id;\r\n if (targetName.length > ExcelService.MAX_ALLOWED_SHEET_LENGTH_NAME) {\r\n let maxLengthGuidlines =\r\n ExcelService.MAX_ALLOWED_SHEET_LENGTH_NAME -\r\n (currOpTask.Id.toString().length + 1); //1 is for -\r\n targetName =\r\n currOpTask.Guidelines.slice(0, maxLengthGuidlines) +\r\n \"-\" +\r\n currOpTask.Id;\r\n }\r\n let currSheet = {\r\n //Es gibt Prüfpflichten, die dieselbe Name haben, aber die verschieden sind (auch verschiedene Ids)\r\n title: targetName,\r\n data: this.getOperatorTaskExcelData(currOpTask),\r\n };\r\n\r\n sheets.push(currSheet);\r\n }\r\n\r\n return sheets;\r\n }\r\n\r\n private getEquipmentAttributesDict(\r\n equipment: PropertyCore.Equipment\r\n ): { [key: string]: string } {\r\n var attributesData = this.atiiributeValuesService.getEquipmentAttributesData(\r\n equipment,\r\n this.allAttributeTypes\r\n );\r\n let result = {};\r\n attributesData.forEach((attr) => {\r\n result[attr.Name] = attr.Value;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n private getOperatorTaskExcelData(\r\n opTask: OperatorTaskExtendedInspectionDuties\r\n ): any[][] {\r\n let data: any[][] = [[]];\r\n\r\n let headers: (string | AttributeValueData)[] = [\r\n \"Gebäude ID\",\r\n \"Gebäude\",\r\n \"Anlagen ID\",\r\n \"Anlagentyp\",\r\n \"Anlagenname\",\r\n \"Interne Bezeichnung\",\r\n \"Kommentar zur Anlage\",\r\n \"Etage\",\r\n \"Raum\",\r\n \"QR Code\",\r\n \"Equipment Nr.\",\r\n \"Regelwerk\",\r\n \"Prüfobjekt\",\r\n \"Interval\",\r\n \"Qualifikation\",\r\n \"Kommentar\",\r\n ];\r\n\r\n //Add attributes to headers\r\n let processedQquipmentTypeIds = [];\r\n let attributeHeaders: AttributeValueData[] = [];\r\n opTask.InspectionDuties.forEach((id) => {\r\n if (\r\n processedQquipmentTypeIds.indexOf(id.Equipment.EquipmentType.Id) < 0\r\n ) {\r\n processedQquipmentTypeIds.push(id.Equipment.EquipmentType.Id);\r\n\r\n let attributes = this.atiiributeValuesService.getEquipmentAttributesData(\r\n id.Equipment,\r\n this.allAttributeTypes\r\n );\r\n attributes.forEach((a) => {\r\n // The attribute type could be associated to more than one equipment types\r\n let foundAttributeType = attributeHeaders.find(\r\n (h) => h.AttributeTypeId == a.AttributeTypeId\r\n );\r\n if (!foundAttributeType) {\r\n attributeHeaders.push(a);\r\n }\r\n });\r\n }\r\n });\r\n attributeHeaders.forEach((attributeHeader) => {\r\n headers.push(attributeHeader);\r\n });\r\n\r\n // let attrDictForHeaders = this.getEquipmentAttributesDict(\r\n // // Take first equipment as the headers will be the same, but for the data use the specific equipment\r\n // opTask.InspectionDuties[0].Equipment\r\n // );\r\n // Object.keys(attrDictForHeaders).forEach((entry) => {\r\n // headers.push(entry);\r\n // });\r\n\r\n for (let i = 0; i < headers.length; i++) {\r\n let currHeader = headers[i];\r\n let headerDisplayValue = \"\";\r\n if (typeof currHeader !== \"string\") {\r\n headerDisplayValue = currHeader.Name;\r\n } else {\r\n headerDisplayValue = currHeader;\r\n }\r\n\r\n data[0][i] = headerDisplayValue;\r\n }\r\n\r\n for (let i = 0; i < opTask.InspectionDuties.length; i++) {\r\n // let attrDict = this.getEquipmentAttributesDict(\r\n // opTask.InspectionDuties[i].Equipment\r\n // );\r\n let attributes = this.atiiributeValuesService.getEquipmentAttributesData(\r\n opTask.InspectionDuties[i].Equipment,\r\n this.allAttributeTypes\r\n );\r\n data[i + 1] = this.getInspectionDutyRowExcelData(\r\n opTask.InspectionDuties[i],\r\n opTask,\r\n attributes,\r\n headers\r\n );\r\n }\r\n\r\n return data;\r\n }\r\n\r\n private getInspectionDutyRowExcelData(\r\n inspectionDuty: InspectionDutyExtendedWithBuildingAndEquipment,\r\n operatorTask: OperatorTaskExtendedInspectionDuties,\r\n attributes: AttributeValueData[],\r\n headers: (string | AttributeValueData)[]\r\n ): any[] {\r\n let row = [];\r\n row[0] = inspectionDuty.Building.Id; //Gebäude ID\r\n row[1] = inspectionDuty.Building.Name; //\"Gebäude\"\r\n row[2] = inspectionDuty.Equipment.Id; // \"Anlagen ID\"\r\n row[3] = inspectionDuty.Equipment.EquipmentType?.Name; //\"Anlagentyp\"\r\n row[4] = inspectionDuty.Equipment.Name; // Anlagen Name\r\n row[5] = inspectionDuty.Equipment.CustomId; //\"Interne Bezeichnung\"\r\n row[6] = inspectionDuty.Equipment.Comment; //\"Kommentar zur Anlage\"\r\n row[7] = inspectionDuty.Equipment.Room?.Floor?.Name; //\"Etage\"\r\n row[8] = inspectionDuty.Equipment.Room?.Name; //\"Raum\"\r\n row[9] = inspectionDuty.Equipment.QuickResponseCodes?.map(\r\n (qr) => qr.Value\r\n ).join(\";\"); //\"QR Code\"\r\n row[10] = inspectionDuty.Equipment.TuevNo; //\"Equipment Nr.\"\r\n row[11] = operatorTask.Guidelines; //\"Regelwerk\"\r\n row[12] = operatorTask.Subject; //\"Prüfobjekt\"\r\n row[13] =\r\n (inspectionDuty?.Schedule?.Cycle ? inspectionDuty?.Schedule?.Cycle : 0) +\r\n \" \" +\r\n (inspectionDuty?.Schedule?.CycleUnit\r\n ? this.translateService.instant(\r\n \"CycleUnit.\" + inspectionDuty?.Schedule?.CycleUnit\r\n )\r\n : this.translateService.instant(\"CycleUnit.NotSpecified\")); //\"Interval\"\r\n row[14] = operatorTask.Qualification; //\"Qualifikation\"\r\n row[15] = \"\"; //\"Kommentar\"\r\n\r\n attributes.forEach((attr) => {\r\n for (let headerIndex = 0; headerIndex < headers.length; headerIndex++) {\r\n let header = headers[headerIndex];\r\n if (typeof header != \"string\") {\r\n if (header.AttributeTypeId == attr.AttributeTypeId) {\r\n row[headerIndex] = attr.Value;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // Show !! if some attribute type is not assigned to this equipment type\r\n let equipmentAttributeTypeIds = attributes.map((a) => a.AttributeTypeId);\r\n for (let headerIndex = 0; headerIndex < headers.length; headerIndex++) {\r\n let header = headers[headerIndex];\r\n if (typeof header != \"string\") {\r\n let isAttributeTypeAssignedToCurrentEquipment =\r\n equipmentAttributeTypeIds.indexOf(header.AttributeTypeId) > -1;\r\n if (!isAttributeTypeAssignedToCurrentEquipment) {\r\n row[headerIndex] = \"!!\";\r\n }\r\n }\r\n }\r\n\r\n // let attributesStartIndex = 16;\r\n // let attributesCountIndex = 0;\r\n // Object.keys(attributesDict).forEach((entry) => {\r\n // row[attributesStartIndex + attributesCountIndex] = attributesDict[entry];\r\n // attributesCountIndex++;\r\n // });\r\n\r\n return row;\r\n }\r\n\r\n private getDocumentsExcelData(): any[][] {\r\n let data: any[][] = [[]];\r\n let headers = [\r\n \"Gebäude ID\",\r\n \"Gebäudebezeichnung\",\r\n \"zugeordnete Anlagen\",\r\n \"Typ\",\r\n \"Name des Dokuments\",\r\n \"Ablageort\",\r\n ];\r\n\r\n for (let i = 0; i < headers.length; i++) {\r\n data[0][i] = headers[i];\r\n }\r\n\r\n let documentsToBuildings: PropertyCore.Document[] = [];\r\n this.selectedBuildings.forEach((b) => {\r\n b.Documents?.forEach((d) => {\r\n d.Buildings = [b];\r\n documentsToBuildings.push(d);\r\n });\r\n });\r\n\r\n for (let i = 0; i < documentsToBuildings.length; i++) {\r\n data.push([]);\r\n let currDocument = documentsToBuildings[i];\r\n data[i + 1][0] = currDocument.Buildings[0].Id;\r\n data[i + 1][1] = currDocument.Buildings[0].Name;\r\n data[i + 1][2] = \"\";\r\n data[i + 1][3] = currDocument.DocumentType.Name;\r\n let name = currDocument.IsVirtual\r\n ? \"\"\r\n : currDocument.Description\r\n ? currDocument.Description\r\n : currDocument.Name;\r\n data[i + 1][4] = name;\r\n data[i + 1][5] = currDocument.IsVirtual ? currDocument.Description : \"\"; //Wenn es Ablageort gibt, dann ist es Description d.h. Description ist immer da\r\n }\r\n\r\n return data;\r\n }\r\n\r\n private getBuildingsExcelData(): any[][] {\r\n let data: any[][] = [[]];\r\n let headers = [\r\n \"Gebäude ID\",\r\n \"Gebäude\",\r\n \"Land\",\r\n \"Bundesland\",\r\n \"Zip\",\r\n \"Stadt\",\r\n \"Address\",\r\n ];\r\n\r\n for (let i = 0; i < headers.length; i++) {\r\n data[0][i] = headers[i];\r\n }\r\n\r\n for (let i = 0; i < this.selectedBuildings.length; i++) {\r\n data.push([]);\r\n let currBuilding = this.selectedBuildings[i];\r\n data[i + 1][0] = currBuilding.Id;\r\n data[i + 1][1] = currBuilding.Name;\r\n data[i + 1][2] = currBuilding.Address.CountryInfo.Name;\r\n data[i + 1][3] = currBuilding.Address.RegionInfo.Name;\r\n data[i + 1][4] = currBuilding.Address.PostCode;\r\n data[i + 1][5] = currBuilding.Address.City;\r\n data[i + 1][6] = currBuilding.Address.Street.concat(\" \").concat(\r\n currBuilding.Address.No\r\n );\r\n }\r\n\r\n return data;\r\n }\r\n\r\n private getMandatorExcelData(mandant: Mandator): any[][] {\r\n let data: any[][] = [];\r\n for (let i = 0; i < 12; i++) {\r\n data.push(new Array(2));\r\n }\r\n\r\n //row 1\r\n data[0][0] = \"Firmenkonto\";\r\n data[0][1] = mandant.Name;\r\n\r\n //row 2\r\n data[1][0] = \"Firmenbezeichnung\";\r\n data[1][1] = mandant.Profile?.Name;\r\n\r\n //row 3\r\n data[2][0] = \"Straße\";\r\n data[2][1] = mandant.Profile?.Address?.Street;\r\n\r\n //row 4\r\n data[3][0] = \"Hausnummer\";\r\n data[3][1] = mandant.Profile?.Address?.No;\r\n\r\n //row 5\r\n data[4][0] = \"Postleitzahl\";\r\n data[4][1] = mandant.Profile?.Address?.PostCode;\r\n\r\n //row 6\r\n data[5][0] = \"Stadt\";\r\n data[5][1] = mandant.Profile?.Address?.City;\r\n\r\n //row 7\r\n data[6][0] = \"Land\";\r\n data[6][1] = mandant.Profile?.Address?.Country;\r\n\r\n //row 8\r\n data[7][0] = \"Adress Zusatz\";\r\n data[7][1] = mandant.Profile?.AddressAddition;\r\n\r\n //row 9\r\n data[8][0] = \"Ansprechpartner\";\r\n data[8][1] = mandant.Profile?.Contact;\r\n\r\n //row\r\n data[9][0] = \"Telefon\";\r\n data[9][1] = mandant.Profile?.ContactPhone;\r\n\r\n //row\r\n data[10][0] = \"E-Mail\";\r\n data[10][1] = mandant.Profile?.ContactMail;\r\n\r\n return data;\r\n }\r\n}\r\n","export enum ExportNavigationPaths {\r\n\r\n PORTFOLIO = 'portfolio',\r\n INCIDENTS = 'incidents',\r\n GAEB = 'gaeb',\r\n INSPECTION_DUTY = 'inspection-duty',\r\n MAINTENANCE_CONTRACT = 'maintenance-contract',\r\n CALCULATION = \"calculation\"\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {Subscription} from 'rxjs';\r\n\r\nimport {AuthService} from './../../core/auth/auth.service';\r\nimport {ExportNavigationPaths} from './export-navigation-paths.enum';\r\n\r\n@Component({\r\n selector: 'app-export',\r\n templateUrl: './export.component.html',\r\n styleUrls: ['./export.component.scss']\r\n})\r\nexport class ExportComponent implements OnInit, OnDestroy {\r\n\r\n currentPage: ExportNavigationPaths;\r\n\r\n ExportNavigationPaths = ExportNavigationPaths;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Subscription, from } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { AppConfig } from './../../../core/bootstrap/app.config';\r\nimport { Selectable } from './../../../core/model/common';\r\nimport { GaebExport, GaebExportLog } from './../../../core/model/gaeb';\r\nimport { IdName } from './../../../core/model/idName';\r\nimport { GlobalService } from './../../../core/shared/global.service';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { map } from 'rxjs/internal/operators/map';\r\n\r\n@Component({\r\n selector: 'app-export-gaeb',\r\n templateUrl: './export-gaeb.component.html',\r\n styleUrls: ['./export-gaeb.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ExportGaebComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('negativeReportPopupContent', { static: true })\r\n negativeReportPopupContent: any;\r\n\r\n @ViewChild('exportLogPopupContent', { static: true })\r\n exportLogPopupContent: any;\r\n\r\n @Input()\r\n title: string;\r\n\r\n buildings: Selectable[];\r\n tenderObjectGroups: IdName[];\r\n\r\n selectedTenderObjectGroupId: number;\r\n zeroPosition: boolean;\r\n\r\n lastGaebExport: GaebExport;\r\n gaebExportLogs: GaebExportLog[];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private config: AppConfig,\r\n private globalService: GlobalService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n get selectedCount(): number {\r\n return this.buildings ? this.buildings.filter(x => x.selected).length : 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n .subscribe(res => this.buildings = res));\r\n\r\n this.subscriptions.add(this.globalService.getTenderObjectGroups().subscribe(res => {\r\n this.tenderObjectGroups = res.sort((a, b) => a.Name.toLowerCase().localeCompare(b.Name.toLowerCase()));\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n selectAll(selectAll: boolean): void {\r\n this.buildings.forEach(building => building.selected = selectAll);\r\n }\r\n\r\n export(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n const ids = this.buildings.filter(x => x.selected).map(x => x.Identity);\r\n this.subscriptions.add(this.globalService.gaebExport(ids, this.selectedTenderObjectGroupId, this.zeroPosition).subscribe(gaebExport => {\r\n this.toasterService.pop('info', '', this.translateService.instant('Export._export_success'));\r\n\r\n this.lastGaebExport = gaebExport;\r\n\r\n this.showLastGaebExport();\r\n\r\n // download\r\n this.downloadGaebExport(gaebExport.fileKey);\r\n }));\r\n }\r\n\r\n showLastGaebExport(): void {\r\n this.modalService.open(this.negativeReportPopupContent, { windowClass: 'negativeReport-modal' });\r\n }\r\n\r\n showGaebLogFile(): void {\r\n this.subscriptions.add(this.globalService.gaebExportLog().subscribe(gaebExportLogs => {\r\n this.gaebExportLogs = gaebExportLogs;\r\n\r\n this.modalService.open(this.exportLogPopupContent, { windowClass: 'negativeReport-modal' });\r\n }));\r\n }\r\n\r\n downloadGaebExport(UT: string): void {\r\n const iframe = document.createElement('iframe');\r\n iframe.setAttribute('src', this.config.getBaseUrl() + 'WebClient/GaebService/GetFile/' + encodeURIComponent(UT));\r\n iframe.style.display = 'none';\r\n document.body.appendChild(iframe);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest, Subscription, from } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { Selectable } from '../../../core/model/common';\r\nimport { InvoiceDocumentTypeName } from '../../../core/model/incident';\r\nimport { FilterByPipe } from '../../../core/pipes/filter.pipe';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Building } from 'app/core/model/building';\r\nimport { InspectionDuty } from 'app/core/model/inspectionDuty';\r\n\r\n\r\n@Component({\r\n selector: 'app-export-incidents',\r\n templateUrl: './export-incidents.component.html',\r\n styleUrls: ['./export-incidents.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ExportIncidentsComponent implements OnInit, OnDestroy {\r\n @Input()\r\n title: string;\r\n buildings: Selectable[];\r\n filteredBuildings: Selectable[];\r\n searchFilter: string = '';\r\n formSubmitted: boolean;\r\n subscriptions: Subscription = new Subscription();\r\n private COL_DELIMITER = ';';\r\n private LINE_DELIMITER = '\\r\\n';\r\n\r\n constructor(\r\n private filterByPipe: FilterByPipe,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n get selectedCount(): number {\r\n return this.filteredBuildings ? this.filteredBuildings.filter(x => x.selected).length : 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })))\r\n .subscribe(res => {\r\n this.buildings = res;\r\n this.filteredBuildings = this.buildings;\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onSearchFilterChange(newValue: string) {\r\n this.searchFilter = newValue;\r\n this.filteredBuildings = this.filterByPipe.transform(this.buildings, this.searchFilter, ['Name', 'Address.Street', 'Address.PostCode', 'Address.City']);\r\n }\r\n\r\n selectAll(selectAll: boolean): void {\r\n this.filteredBuildings.forEach(building => building.selected = selectAll);\r\n }\r\n\r\n export(validForm: boolean) {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n const ids = this.filteredBuildings.filter(x => x.selected).map(x => x.Identity);\r\n const observables = [];\r\n ids.forEach(id => observables.push(from(this.odataCoreService.Building\r\n .Get()\r\n .Key(Guid.parse((id)))\r\n .Select(\"Identity\", \"Name\")\r\n .Expand(x => {\r\n x.Expand(\"Equipments\", y => {\r\n y.Select(\"CustomId\")\r\n y.Select(\"Id\")\r\n y.Expand(\"Events\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Guidelines\")\r\n z.Select(\"Qualification\")\r\n z.Select(\"RefDate\")\r\n z.Select(\"DueDate\")\r\n z.Select(\"IsSkipped\")\r\n z.Select(\"Type\")\r\n z.Expand(\"Schedule\", a => {\r\n a.Select(\"Identity\")\r\n a.Select(\"Cycle\")\r\n a.Select(\"CycleUnit\")\r\n a.Expand(\"InspectionDuty\", b => {\r\n b.Expand(\"OperatorTask\")\r\n })\r\n })\r\n z.Expand(\"Response\", a => {\r\n a.Select(\"Identity\")\r\n a.Select(\"DefectRating\")\r\n a.Select(\"IsDefectProcessed\")\r\n a.Select(\"Comment\")\r\n a.Select(\"IsServiceComplete\")\r\n a.Select(\"Created\")\r\n a.Expand(\"User\", b => {\r\n b.Select(\"Identity\")\r\n b.Select(\"Email\")\r\n })\r\n })\r\n z.Expand(\"Module\", a => {\r\n a.Select(\"Identity\")\r\n a.Select(\"Name\")\r\n a.Select(\"Id\")\r\n a.Select(\"CustomId\")\r\n })\r\n z.Expand(\"ServiceProvider\", a => {\r\n a.Select(\"Identity\")\r\n a.Select(\"Name\")\r\n })\r\n z.Expand(\"Documents\", a => {\r\n a.Expand(\"DocumentType\", b => {\r\n b.Select(\"Name\")\r\n })\r\n a.Select(\"Identity\")\r\n })\r\n })\r\n y.Expand(\"QuickResponseCodes\", z => {\r\n z.Select(\"Id\")\r\n })\r\n y.Select(\"TuevNo\", \"Name\")\r\n })\r\n x.Expand(\"Events\", y => {\r\n y.Select(\"Identity\")\r\n y.Select(\"Guidelines\")\r\n y.Select(\"Qualification\")\r\n y.Select(\"RefDate\")\r\n y.Select(\"DueDate\")\r\n y.Select(\"IsSkipped\")\r\n y.Select(\"Type\")\r\n y.Expand(\"Schedule\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n })\r\n y.Expand(\"Response\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"DefectRating\")\r\n z.Select(\"IsDefectProcessed\")\r\n z.Select(\"Comment\")\r\n z.Select(\"IsServiceComplete\")\r\n z.Select(\"Created\")\r\n z.Expand(\"User\", a => {\r\n a.Select(\"Identity\")\r\n a.Select(\"Email\")\r\n })\r\n })\r\n y.Expand(\"Module\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Name\")\r\n z.Select(\"CustomId\")\r\n })\r\n y.Expand(\"ServiceProvider\", z => {\r\n z.Select(\"Identity\")\r\n z.Select(\"Name\")\r\n })\r\n y.Expand(\"Documents\", z => {\r\n z.Expand(\"DocumentType\", a => {\r\n a.Select(\"Name\")\r\n })\r\n z.Select(\"Identity\")\r\n })\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Building(), i);\r\n })))));\r\n this.subscriptions.add(combineLatest(...observables).subscribe((...res) => {\r\n let csv = this.generateCSVHeader();\r\n res[0].forEach((buildingEvents: Building[]) => {\r\n csv += this.generateCSV(buildingEvents);\r\n });\r\n this.downloadCSV(csv);\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n private generateCSVHeader(): string {\r\n let result = '';\r\n\r\n // header row\r\n result += 'Gebäude' + this.COL_DELIMITER;\r\n result += 'Bauteil' + this.COL_DELIMITER;\r\n result += 'EQ Nummer' + this.COL_DELIMITER;\r\n result += 'QR Code' + this.COL_DELIMITER;\r\n result += 'Anlagen ID' + this.COL_DELIMITER;\r\n result += 'Name' + this.COL_DELIMITER;\r\n result += 'Individuelle Bez.' + this.COL_DELIMITER;\r\n result += 'Tätigkeitstyp' + this.COL_DELIMITER;\r\n result += 'Grundlage' + this.COL_DELIMITER;\r\n result += 'Intervall' + this.COL_DELIMITER;\r\n result += 'Qualifikation' + this.COL_DELIMITER;\r\n result += 'Firma' + this.COL_DELIMITER;\r\n result += 'Durchgeführt' + this.COL_DELIMITER;\r\n result += 'Fälligkeit' + this.COL_DELIMITER;\r\n result += 'Angebot' + this.COL_DELIMITER;\r\n result += 'Beauftragung' + this.COL_DELIMITER;\r\n result += 'Protokoll' + this.COL_DELIMITER;\r\n result += 'Regiebericht' + this.COL_DELIMITER;\r\n result += 'Rechnung' + this.COL_DELIMITER;\r\n result += 'Mängel vorhanden' + this.COL_DELIMITER;\r\n result += 'Mängel bearbeitet' + this.COL_DELIMITER;\r\n result += 'Bemerkung' + this.COL_DELIMITER;\r\n result += 'Leistung vollständig' + this.COL_DELIMITER;\r\n result += 'Datum Rückmeldung' + this.COL_DELIMITER;\r\n result += 'Benutzer Rückmeldung' + this.COL_DELIMITER;\r\n result += 'Status';\r\n result += this.LINE_DELIMITER;\r\n\r\n return result;\r\n }\r\n\r\n private generateCSV(building: Building[]): string {\r\n let result = '';\r\n\r\n // data rows\r\n let x = 0;\r\n while (building[0]?.Events?.length > x) {\r\n result += building[0].Name + this.COL_DELIMITER; // Gebäude\r\n result += '' + this.COL_DELIMITER // Bauteil\r\n result += '' + this.COL_DELIMITER // EQ Nummer\r\n result += '' + this.COL_DELIMITER; // QR Code\r\n result += '' + this.COL_DELIMITER; // Anlagen ID\r\n result += '' + this.COL_DELIMITER; // Name\r\n result += '' + this.COL_DELIMITER; // Individuelle Bez.\r\n result += this.translateService.instant('EventType.' + building[0]?.Events[x]?.Type) + this.COL_DELIMITER; // Tätigkeitstyp\r\n result += (building[0]?.Events[x]?.Guidelines ? building[0]?.Events[x]?.Guidelines : '') + this.COL_DELIMITER; // Grundlage\r\n result += (building[0]?.Events[x]?.Schedule ? (building[0]?.Events[x]?.Schedule.Cycle + ' ' + this.translateService.instant('CycleUnit2.' + building[0]?.Events[x]?.Schedule.CycleUnit)) : this.translateService.instant('CycleUnit2.NotSpecified')) + this.COL_DELIMITER; // Intervall\r\n result += (building[0]?.Events[x]?.Qualification ? building[0]?.Events[x]?.Qualification : '') + this.COL_DELIMITER; // Qualifikation\r\n result += (building[0]?.Events[x]?.ServiceProvider ? building[0]?.Events[x]?.ServiceProvider.Name : '') + this.COL_DELIMITER; // Firma\r\n result += (building[0]?.Events[x]?.RefDate ? Utils.performPipeOperation('dateFormat', building[0]?.Events[x]?.RefDate) : '') + this.COL_DELIMITER; // Durchgeführt\r\n result += (building[0]?.Events[x]?.DueDate ? Utils.performPipeOperation('dateFormat', building[0]?.Events[x]?.DueDate) : '') + this.COL_DELIMITER; // Fälligkeit\r\n result += (building[0]?.Events[x]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Offer) ? 'x' : '') + this.COL_DELIMITER; // Angebot\r\n result += (building[0]?.Events[x]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Commission) ? 'x' : '') + this.COL_DELIMITER; // Beauftragung\r\n result += (building[0]?.Events[x]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Protocol) ? 'x' : '') + this.COL_DELIMITER; // Protokoll\r\n result += (building[0]?.Events[x]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Report) ? 'x' : '') + this.COL_DELIMITER; // Regiebericht\r\n result += (building[0]?.Events[x]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Invoice) ? 'x' : '') + this.COL_DELIMITER; // Rechnung\r\n result += (building[0]?.Events[x]?.Response && DefectShort(building[0]?.Events[x]?.Response?.DefectRating) ? 'Ja' : 'Nein') + this.COL_DELIMITER; // Mängel vorhanden\r\n result += (building[0]?.Events[x]?.Response && building[0]?.Events[x]?.Response?.IsDefectProcessed ? 'Ja' : 'Nein') + this.COL_DELIMITER; // Mängel bearbeitet\r\n result += (building[0]?.Events[x]?.Response && building[0]?.Events[x]?.Response?.Comment ? building[0]?.Events[x]?.Response?.Comment : '') + this.COL_DELIMITER; // Bemerkung\r\n result += (building[0]?.Events[x]?.Response && building[0]?.Events[x]?.Response?.IsServiceComplete ? 'Ja' : 'Nein') + this.COL_DELIMITER; // Leistung vollständig\r\n result += (building[0]?.Events[x]?.Response ? Utils.performPipeOperation('dateFormat', building[0]?.Events[x]?.Response?.Created) : '') + this.COL_DELIMITER; // Datum Rückmeldung\r\n result += (building[0]?.Events[x]?.Response && building[0]?.Events[x]?.Response?.User ? building[0]?.Events[x]?.Response?.User?.Email : '') + this.COL_DELIMITER; // Benutzer Rückmeldung\r\n result += this.translateService.instant('IncidentStatus.' + building[0].Status(x)); // Status\r\n result += this.LINE_DELIMITER;\r\n x++;\r\n }\r\n\r\n let y = 0;\r\n while (building[0]?.Equipments?.length > y) {\r\n\r\n let z = 0;\r\n while (building[0]?.Equipments[y]?.Events?.length > z) {\r\n result += building[0].Name + this.COL_DELIMITER; // Gebäude\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Module ? 'Baugruppe' : (building[0].Equipments[y] ? 'Anlage' : '')) + this.COL_DELIMITER; // Bauteil\r\n result += (building[0]?.Equipments[y] ? building[0]?.Equipments[y]?.TuevNo : '') + this.COL_DELIMITER; // EQ Nummer\r\n result += (building[0].Equipments[y] ? ((building[0]?.Equipments[y]?.QuickResponseCodes && building[0]?.Equipments[y]?.QuickResponseCodes.length) ? building[0]?.Equipments[y]?.QuickResponseCodes[0].Id : '') : '') + this.COL_DELIMITER; // QR Code\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Module ? building[0]?.Equipments[y]?.Events[z]?.Module.Id : (building[0].Equipments[y] ? building[0]?.Equipments[y]?.Id : '')) + this.COL_DELIMITER; // Anlagen ID\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Module ? building[0]?.Equipments[y]?.Events[z]?.Module.Name : (building[0].Equipments[y] ? building[0]?.Equipments[y]?.Name.trim() : '')) + this.COL_DELIMITER; // Name\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Module ? building[0]?.Equipments[y]?.Events[z]?.Module.CustomId : (building[0].Equipments[y] ? building[0]?.Equipments[y]?.CustomId : '')) + this.COL_DELIMITER; // Individuelle Bez.\r\n result += this.translateService.instant('EventType.' + building[0]?.Equipments[y]?.Events[z]?.Type) + this.COL_DELIMITER; // Tätigkeitstyp\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Schedule?.InspectionDuty?.OperatorTask?.Guidelines ? building[0]?.Equipments[y]?.Events[z]?.Schedule?.InspectionDuty?.OperatorTask?.Guidelines : building[0]?.Equipments[y]?.Events[z]?.Guidelines ? building[0]?.Equipments[y]?.Events[z]?.Guidelines : '') + this.COL_DELIMITER; // Grundlage\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Schedule ? (building[0]?.Equipments[y]?.Events[z]?.Schedule.Cycle + ' ' + this.translateService.instant('CycleUnit2.' + building[0]?.Equipments[y]?.Events[z]?.Schedule.CycleUnit)) : this.translateService.instant('CycleUnit2.NotSpecified')) + this.COL_DELIMITER; // Intervall\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Schedule?.InspectionDuty?.OperatorTask?.Qualification ? building[0]?.Equipments[y]?.Events[z]?.Schedule?.InspectionDuty?.OperatorTask?.Qualification : building[0]?.Equipments[y]?.Events[z]?.Qualification ? building[0]?.Equipments[y]?.Events[z]?.Qualification : '') + this.COL_DELIMITER; // Qualifikation\r\n result += (building[0]?.Equipments[y]?.Events[z]?.ServiceProvider ? building[0]?.Equipments[y]?.Events[z]?.ServiceProvider.Name : '') + this.COL_DELIMITER; // Firma\r\n result += (building[0]?.Equipments[y]?.Events[z]?.RefDate ? Utils.performPipeOperation('dateFormat', building[0]?.Equipments[y]?.Events[z]?.RefDate) : '') + this.COL_DELIMITER; // Durchgeführt\r\n result += (building[0]?.Equipments[y]?.Events[z]?.DueDate ? Utils.performPipeOperation('dateFormat', building[0]?.Equipments[y]?.Events[z]?.DueDate) : '') + this.COL_DELIMITER; // Fälligkeit\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Offer) ? 'x' : '') + this.COL_DELIMITER; // Angebot\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Commission) ? 'x' : '') + this.COL_DELIMITER; // Beauftragung\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Protocol) ? 'x' : '') + this.COL_DELIMITER; // Protokoll\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Report) ? 'x' : '') + this.COL_DELIMITER; // Regiebericht\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Documents.find(d => d.DocumentType.Name === InvoiceDocumentTypeName.Invoice) ? 'x' : '') + this.COL_DELIMITER; // Rechnung\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Response && DefectShort(building[0]?.Equipments[y]?.Events[z]?.Response?.DefectRating) ? 'Ja' : 'Nein') + this.COL_DELIMITER; // Mängel vorhanden\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Response && building[0]?.Equipments[y]?.Events[z]?.Response?.IsDefectProcessed ? 'Ja' : 'Nein') + this.COL_DELIMITER; // Mängel bearbeitet\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Response && building[0]?.Equipments[y]?.Events[z]?.Response?.Comment ? building[0]?.Equipments[y]?.Events[z]?.Response?.Comment.split(\"\\n\").join(\"\\\\n\") : '') + this.COL_DELIMITER; // Bemerkung\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Response && building[0]?.Equipments[y]?.Events[z]?.Response?.IsServiceComplete ? 'Ja' : 'Nein') + this.COL_DELIMITER; // Leistung vollständig\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Response ? Utils.performPipeOperation('dateFormat', building[0]?.Equipments[y]?.Events[z]?.Response?.Created) : '') + this.COL_DELIMITER; // Datum Rückmeldung\r\n result += (building[0]?.Equipments[y]?.Events[z]?.Response && building[0]?.Equipments[y]?.Events[z]?.Response?.User ? building[0]?.Equipments[y]?.Events[z]?.Response?.User?.Email : '') + this.COL_DELIMITER; // Benutzer Rückmeldung\r\n result += this.translateService.instant('IncidentStatus.' + building[0].Status(y, z, true)); // Status\r\n result += this.LINE_DELIMITER;\r\n z++;\r\n }\r\n y++;\r\n }\r\n\r\n\r\n return result;\r\n }\r\n\r\n private downloadCSV(csv: string): void {\r\n const filename = 'Tätigkeitsexport.csv';\r\n const blob = new Blob(['\\uFEFF', csv], { type: \"text/csv;charset=UTF-8;\" });\r\n // if (navigator.msSaveBlob) { // IE 10+\r\n // navigator.msSaveBlob(blob, filename);\r\n // } else {\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n // }\r\n }\r\n}\r\n\r\nfunction DefectShort(DefectRating): boolean {\r\n switch (DefectRating) {\r\n case PropertyCore.DefectRatings.Unrated:\r\n case PropertyCore.DefectRatings.Minor:\r\n case PropertyCore.DefectRatings.Major:\r\n case PropertyCore.DefectRatings.Dangerous:\r\n return true;\r\n case PropertyCore.DefectRatings.Undefined:\r\n return false;\r\n }\r\n return false;\r\n};\r\n","import {\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\nimport { PropertyCore } from \"../../../core/odata/odata.coreapi\";\r\nimport { Selectable } from \"./../../../core/model/common\";\r\nimport { InspectionDuty } from \"./../../../core/model/inspectionDuty\";\r\nimport { FilterByPipe } from \"./../../../core/pipes/filter.pipe\";\r\nimport { Utils } from \"./../../../core/tools/utils\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\n\r\n@Component({\r\n selector: \"app-export-inspection-duty\",\r\n templateUrl: \"./export-inspection-duty.component.html\",\r\n styleUrls: [\"./export-inspection-duty.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ExportInspectionDutyComponent implements OnInit, OnDestroy {\r\n @Input()\r\n title: string;\r\n buildings: Selectable[];\r\n filteredBuildings: Selectable[];\r\n searchFilter: string = \"\";\r\n formSubmitted: boolean;\r\n subscriptions: Subscription = new Subscription();\r\n private COL_DELIMITER = \";\";\r\n private LINE_DELIMITER = \"\\r\\n\";\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private filterByPipe: FilterByPipe,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n get selectedCount(): number {\r\n return this.filteredBuildings ? this.filteredBuildings.filter((x) => x.selected).length : 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })\r\n )\r\n )\r\n .subscribe((res) => {\r\n this.buildings = res;\r\n this.filteredBuildings = this.buildings;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onSearchFilterChange(newValue: string) {\r\n this.searchFilter = newValue;\r\n this.filteredBuildings = this.filterByPipe.transform(\r\n this.buildings,\r\n this.searchFilter,\r\n [\"Name\", \"Address.Street\", \"Address.PostCode\", \"Address.City\"]\r\n );\r\n }\r\n\r\n selectAll(selectAll: boolean): void {\r\n // this.filterByPipe\r\n // .transform(this.filteredBuildings, this.searchFilter, [\r\n // \"Name\",\r\n // \"Address.Street\",\r\n // \"Address.PostCode\",\r\n // \"Address.City\",\r\n // ])\r\n // .forEach((building) => (building.selected = selectAll));\r\n this.filteredBuildings.forEach((building) => (building.selected = selectAll));\r\n }\r\n\r\n export(validForm: boolean) {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n const ids = this.filteredBuildings.filter((x) => x.selected).map((x) => x.Identity);\r\n const observables = [];\r\n ids.forEach((id) =>\r\n observables.push(\r\n combineLatest(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Select(\"Identity\", \"Name\", \"Address\")\r\n .Expand((x) => {\r\n x.Expand(\"Equipments\", (y) => {\r\n y.Select(\"Id\");\r\n y.Select(\"Identity\");\r\n y.Select(\"CustomId\");\r\n y.Select(\"Name\");\r\n y.Select(\"HasInspectionDutiesActivated\");\r\n y.Expand(\"OperatorTaskMarkers\", (z) => {\r\n z.Expand(\"OperatorTask\");\r\n });\r\n y.Expand(\"InspectionDuties\", (z) => {\r\n z.Select(\"IsDisabled\");\r\n z.Expand(\"Module\", (a) => {\r\n a.Select(\"Id\");\r\n a.Select(\"CustomId\");\r\n a.Select(\"Name\");\r\n });\r\n z.Expand(\"OperatorTask\", (a) => {\r\n a.Select(\"Guidelines\");\r\n a.Select(\"Subject\");\r\n a.Select(\"Qualification\");\r\n });\r\n z.Expand(\"Schedule\", (a) => {\r\n a.Select(\"Cycle\");\r\n a.Select(\"CycleUnit\");\r\n a.Select(\"CycleStart\");\r\n });\r\n });\r\n });\r\n })\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(id)))\r\n .Exec()\r\n .then((x) => x.value)\r\n ).pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n )\r\n )\r\n );\r\n this.subscriptions.add(\r\n combineLatest(...observables).subscribe((...res) => {\r\n let csv = this.generateCSVHeader();\r\n res[0].forEach((buildingInspectionDuties) => {\r\n csv += this.generateCSV(buildingInspectionDuties[0]);\r\n });\r\n this.downloadCSV(csv);\r\n })\r\n );\r\n }\r\n\r\n private generateCSVHeader(): string {\r\n let result = \"\";\r\n\r\n // header row\r\n result += \"Gebäude\" + this.COL_DELIMITER;\r\n result += \"Land\" + this.COL_DELIMITER;\r\n result += \"Bundesland\" + this.COL_DELIMITER;\r\n result += \"Zip\" + this.COL_DELIMITER;\r\n result += \"Stadt\" + this.COL_DELIMITER;\r\n result += \"Adresse\" + this.COL_DELIMITER;\r\n result += \"Anlage ID\" + this.COL_DELIMITER;\r\n result += \"Name\" + this.COL_DELIMITER;\r\n //result += \"Bauteil\" + this.COL_DELIMITER;\r\n //result += 'Baugruppe ID' + this.COL_DELIMITER;\r\n //result += 'Baugruppe' + this.COL_DELIMITER;\r\n result += \"Regelwerk\" + this.COL_DELIMITER;\r\n result += \"Prüfobjekt\" + this.COL_DELIMITER;\r\n result += \"Qualifikation\" + this.COL_DELIMITER;\r\n result += \"Intervall\" + this.COL_DELIMITER;\r\n result += \"Einheit\" + this.COL_DELIMITER;\r\n result += \"Pflicht aktiv\" + this.COL_DELIMITER;\r\n result += \"Prüfpflichtenaktivierung abgeschlossen\" + this.COL_DELIMITER;\r\n result += \"Serienstart\";\r\n result += this.LINE_DELIMITER;\r\n\r\n return result;\r\n }\r\n\r\n private generateCSV(building: PropertyCore.Building): string {\r\n let result = \"\";\r\n\r\n // data rows\r\n let x = 0;\r\n while (x < building.Equipments.length) {\r\n building.Equipments[x].InspectionDuties.forEach((i) => {\r\n result += building.Name + this.COL_DELIMITER; // Gebäude\r\n result += building.Address.CountryInfo.Name + this.COL_DELIMITER; // Land\r\n result += building.Address.RegionInfo.Name + this.COL_DELIMITER; // Bundesland\r\n result += building.Address.PostCode + this.COL_DELIMITER; // Zip\r\n result += building.Address.City + this.COL_DELIMITER; // Stadt\r\n result +=\r\n building.Address.Street +\r\n \" \" +\r\n building.Address.No +\r\n this.COL_DELIMITER; // Adresse\r\n result +=\r\n (building?.Equipments[x] ? building?.Equipments[x]?.Id : \"\") +\r\n this.COL_DELIMITER; // Anlage ID\r\n result +=\r\n (building?.Equipments[x]\r\n ? building?.Equipments[x]?.CustomId\r\n ? building?.Equipments[x]?.CustomId\r\n : building?.Equipments[x]?.Name\r\n : \"\") + this.COL_DELIMITER; // Name\r\n // Momentan beim Speichern von Inspection Duties wird das Modul gar nicht gesetzt\r\n //result += (i?.Module ? \"Baugruppe\" : \"Anlage\") + this.COL_DELIMITER; // Bauteil\r\n //result += (i?.Module ? i?.Module?.Id : \"\") + this.COL_DELIMITER; // Baugruppe ID\r\n // result +=\r\n // (i?.Module\r\n // ? i?.Module?.CustomId\r\n // ? i?.Module?.CustomId\r\n // : i?.Module?.Name\r\n // : \"\") + this.COL_DELIMITER; // Baugruppe\r\n result += i?.OperatorTask?.Guidelines + this.COL_DELIMITER; // Regelwerk\r\n result += i?.OperatorTask?.Subject + this.COL_DELIMITER; // Prüfobjekt\r\n result += i?.OperatorTask?.Qualification + this.COL_DELIMITER; // Qualifikation\r\n result +=\r\n (i?.Schedule?.Cycle ? i?.Schedule?.Cycle : 0) + this.COL_DELIMITER; // Intervall\r\n result +=\r\n (i?.Schedule?.CycleUnit\r\n ? this.translateService.instant(\r\n \"CycleUnit.\" + i?.Schedule?.CycleUnit\r\n )\r\n : this.translateService.instant(\"CycleUnit.NotSpecified\")) +\r\n this.COL_DELIMITER; // Einheit\r\n result += (i?.IsDisabled ? \"Nein\" : \"Ja\") + this.COL_DELIMITER; // Pflicht aktiv\r\n result +=\r\n (building?.Equipments[x] &&\r\n building?.Equipments[x]?.HasInspectionDutiesActivated\r\n ? \"Ja\"\r\n : \"Nein\") + this.COL_DELIMITER; // Prüfpflichtenaktivierung abgeschlossen\r\n result += i?.Schedule?.CycleStart\r\n ? Utils.performPipeOperation(\"dateFormat\", i?.Schedule?.CycleStart)\r\n : \"\"; // Serienstart\r\n result += this.LINE_DELIMITER;\r\n });\r\n x++;\r\n }\r\n\r\n // data rows\r\n\r\n x = 0;\r\n while (x < building.Equipments.length) {\r\n let y = 0;\r\n while (y < building.Equipments[x].OperatorTaskMarkers.length) {\r\n building.Equipments[x].OperatorTaskMarkers = building.Equipments[\r\n x\r\n ].OperatorTaskMarkers.filter(\r\n (x) => x.IsMissing == true && x.OperatorTask.IsRelevant == true\r\n );\r\n\r\n if (building.Equipments[x].OperatorTaskMarkers.length != 0) {\r\n result += building.Name + this.COL_DELIMITER; // Gebäude\r\n result += building.Address.CountryInfo.Name + this.COL_DELIMITER; // Land\r\n result += building.Address.RegionInfo.Name + this.COL_DELIMITER; // Bundesland\r\n result += building.Address.PostCode + this.COL_DELIMITER; // Zip\r\n result += building.Address.City + this.COL_DELIMITER; // Stadt\r\n result +=\r\n building.Address.Street +\r\n \" \" +\r\n building.Address.No +\r\n this.COL_DELIMITER; // Adresse\r\n result +=\r\n (building?.Equipments[x] ? building?.Equipments[x]?.Id : \"\") +\r\n this.COL_DELIMITER; // Anlage ID\r\n result +=\r\n (building?.Equipments[x]\r\n ? building?.Equipments[x]?.CustomId\r\n ? building?.Equipments[x]?.CustomId\r\n : building?.Equipments[x]?.Name\r\n : \"\") + this.COL_DELIMITER; // Name\r\n // result += \"Anlage\" + this.COL_DELIMITER; // Bauteil\r\n // result += \"\" + this.COL_DELIMITER; // Baugruppe ID\r\n // result += \"\" + this.COL_DELIMITER; // Baugruppe\r\n result +=\r\n building.Equipments[x].OperatorTaskMarkers[y]?.OperatorTask\r\n ?.Guidelines + this.COL_DELIMITER; // Regelwerk\r\n result +=\r\n building?.Equipments[x].OperatorTaskMarkers[y]?.OperatorTask\r\n ?.Subject + this.COL_DELIMITER; // Prüfobjekt\r\n result +=\r\n building.Equipments[x].OperatorTaskMarkers[y]?.OperatorTask\r\n ?.Qualification + this.COL_DELIMITER; // Qualifikation\r\n result +=\r\n (building.Equipments[x].OperatorTaskMarkers[y]?.OperatorTask?.Cycle\r\n ? building.Equipments[x].OperatorTaskMarkers[y]?.OperatorTask\r\n ?.Cycle\r\n : 0) + this.COL_DELIMITER; // Intervall\r\n result +=\r\n (building.Equipments[x].OperatorTaskMarkers[y]?.OperatorTask\r\n ?.CycleUnit\r\n ? this.translateService.instant(\r\n \"CycleUnit.\" +\r\n building.Equipments[x].OperatorTaskMarkers[y]?.OperatorTask\r\n ?.CycleUnit\r\n )\r\n : this.translateService.instant(\"CycleUnit.NotSpecified\")) +\r\n this.COL_DELIMITER; // Einheit\r\n result +=\r\n (building.Equipments[x].OperatorTaskMarkers[y]?.IsMissing\r\n ? \"Nein\"\r\n : \"Ja\") + this.COL_DELIMITER; // Pflicht aktiv\r\n result +=\r\n (building?.Equipments[x] &&\r\n building?.Equipments[x]?.HasInspectionDutiesActivated\r\n ? \"Ja\"\r\n : \"Nein\") + this.COL_DELIMITER; // Prüfpflichtenaktivierung abgeschlossen\r\n result += \"\"; // Serienstart\r\n result += this.LINE_DELIMITER;\r\n }\r\n\r\n y++;\r\n }\r\n x++;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private downloadCSV(csv: string): void {\r\n const filename = \"Pflichtenexport.csv\";\r\n const blob = new Blob([\"\\uFEFF\", csv], { type: \"text/csv;charset=UTF-8;\" });\r\n // if (navigator.msSaveBlob) {\r\n // // IE 10+\r\n // navigator.msSaveBlob(blob, filename);\r\n // } else {\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //}\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { forkJoin, Subscription, from } from 'rxjs';\r\n\r\nimport { ObjektBrief, Common, PropertyCore } from '../../../core/odata/odata.coreapi';\r\nimport { Selectable } from '../../../core/model/common';\r\nimport { ExtendedMaintenanceContractMapping } from '../../../core/model/extendedMaintenanceContractMapping';\r\nimport { FilterByPipe } from '../../../core/pipes/filter.pipe';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { Guid } from 'guid-typescript';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { ODataPath } from '../../../core/odata/odataclient';\r\n\r\n\r\n@Component({\r\n selector: 'app-export-maintenance-contract',\r\n templateUrl: './export-maintenance-contract.component.html',\r\n styleUrls: ['./export-maintenance-contract.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ExportMaintenanceContractComponent implements OnInit, OnDestroy {\r\n @Input()\r\n title: string;\r\n contracts: Selectable[];\r\n filteredContracts: Selectable[];\r\n searchFilter: string = '';\r\n formSubmitted: boolean;\r\n subscriptions: Subscription = new Subscription();\r\n private COL_DELIMITER = ';';\r\n private LINE_DELIMITER = '\\r\\n';\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private filterByPipe: FilterByPipe,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n get selectedCount(): number {\r\n return this.filteredContracts ? this.filteredContracts.filter(x => x.selected).length : 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.MaintenanceContract.Query()\r\n .Expand(x => {\r\n x.Expand(\"ServiceProvider\")\r\n })\r\n .OrderBy(\"Title\", \"asc\")\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => {\r\n this.contracts = res;\r\n this.filteredContracts = this.contracts;\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onSearchFilterChange(newValue: string) {\r\n this.searchFilter = newValue;\r\n this.filteredContracts = this.filterByPipe.transform(this.contracts, this.searchFilter, ['title', 'serviceContact.longName', 'startDate', 'endDate']);\r\n }\r\n\r\n selectAll(selectAll: boolean): void {\r\n this.filterByPipe.transform(this.filteredContracts, this.searchFilter, ['title', 'serviceContact.longName', 'startDate', 'endDate']).forEach(contract => contract.selected = selectAll);\r\n }\r\n\r\n export(validForm: boolean) {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n this.subscriptions.add(forkJoin(...this.filteredContracts.filter(x => x.selected).map(x => forkJoin(\r\n from(this.odataCoreService.MaintenanceContract.Query()\r\n .Select(\"Identity\", \"Title\", \"StartDate\", \"EndDate\", \"CancellationDigit\", \"CancellationUnit\", \"CancellationPeriod\", \"CancellationCalendar\", \"AmountNet\")\r\n .Expand(x => {\r\n x.Expand(\"ServiceProvider\", y => {\r\n y.Select(\"Name\")\r\n })\r\n x.Expand(\"Jobs\", y => {\r\n y.Expand(\"Schedule\", z => {\r\n z.Select(\"Cycle\")\r\n z.Select(\"CycleUnit\")\r\n z.Select(\"CycleStart\")\r\n }),\r\n y.Expand(\"Equipment\", z => {\r\n z.Select(\"Name\")\r\n z.Select(\"CustomId\")\r\n z.Expand(\"Building\", a => {\r\n a.Select(\"Name\")\r\n })\r\n })\r\n })\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(x.Identity)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])))\r\n ))).subscribe((...res) => {\r\n let csv = this.generateCSVHeader();\r\n res[0].forEach(contractInstallEquipments => {\r\n csv += this.generateCSV(contractInstallEquipments[0]);\r\n });\r\n this.downloadCSV(csv);\r\n }));\r\n }\r\n\r\n private generateCSVHeader(): string {\r\n let result = '';\r\n\r\n // header row\r\n result += 'Name' + this.COL_DELIMITER;\r\n result += 'Vertragsbeginn' + this.COL_DELIMITER;\r\n result += 'Vertragsende' + this.COL_DELIMITER;\r\n result += 'Gesamtbetrag in €/Jahr (Netto)' + this.COL_DELIMITER;\r\n result += 'Dienstleister' + this.COL_DELIMITER;\r\n result += 'Gebäude' + this.COL_DELIMITER;\r\n result += 'Anlage - Name' + this.COL_DELIMITER;\r\n result += 'Anlage - Individuelle Bezeichnung' + this.COL_DELIMITER;\r\n result += 'Intervall' + this.COL_DELIMITER;\r\n result += 'Zeiteinheit' + this.COL_DELIMITER;\r\n result += 'Datum nächste Wartung';\r\n result += this.LINE_DELIMITER;\r\n\r\n return result;\r\n }\r\n\r\n private generateCSV(contract: PropertyCore.MaintenanceContract): string {\r\n\r\n let result = '';\r\n\r\n // data rows\r\n let x = 0;\r\n while (x < contract.Jobs.length) {\r\n contract.Jobs.forEach(i => {\r\n result += contract.Title + this.COL_DELIMITER; // Name\r\n result += (contract.StartDate ? Utils.performPipeOperation('dateFormat', contract.StartDate) : '') + this.COL_DELIMITER; // Vertragsbeginn\r\n result += (contract.EndDate ? Utils.performPipeOperation('dateFormat', contract.EndDate) : '') + this.COL_DELIMITER; // Vertragsende\r\n result += (contract.AmountNet ? Utils.performPipeOperation('number', contract.AmountNet) : '') + this.COL_DELIMITER; // Gesamtbetrag in €/Jahr (Netto)\r\n result += (contract.ServiceProvider ? contract.ServiceProvider.Name : '') + this.COL_DELIMITER; // Dienstleister\r\n result += i?.Equipment?.Building?.Name + this.COL_DELIMITER; // Gebäude\r\n result += i?.Equipment?.Name + this.COL_DELIMITER; // Anlage - Name\r\n result += (i?.Equipment?.CustomId ? i?.Equipment?.CustomId : '') + this.COL_DELIMITER; // Anlage - Individuelle Bezeichnung\r\n result += (i?.Schedule?.Cycle ? i?.Schedule?.Cycle : '') + this.COL_DELIMITER; // Intervall\r\n result += (i?.Schedule?.CycleUnit ? this.translateService.instant('CycleUnit.' + i?.Schedule?.CycleUnit) : '') + this.COL_DELIMITER; // Zeiteinheit\r\n result += (i?.Schedule?.CycleStart ? Utils.performPipeOperation('dateFormat', i?.Schedule?.CycleStart) : ''); // Datum nächste Wartung\r\n result += this.LINE_DELIMITER;\r\n });\r\n x++;\r\n return result;\r\n }\r\n }\r\n\r\n private downloadCSV(csv: string): void {\r\n const filename = 'Wartungsvertragsexport.csv';\r\n const blob = new Blob(['\\uFEFF', csv], { type: \"text/csv;charset=UTF-8;\" });\r\n // if (navigator.msSaveBlob) { // IE 10+\r\n // navigator.msSaveBlob(blob, filename);\r\n // } else {\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //}\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { Subscription, from } from \"rxjs\";\r\nimport { PropertyCore } from \"../../../core/odata/odata.coreapi\";\r\nimport { Selectable } from \"./../../../core/model/common\";\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { Utils } from \"../../../core/tools/utils\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport * as XLSX from \"xlsx\";\r\n\r\n@Component({\r\n selector: \"app-export-portfolio\",\r\n templateUrl: \"./export-portfolio.component.html\",\r\n styleUrls: [\"./export-portfolio.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ExportPortfolioComponent implements OnInit, OnDestroy {\r\n @Input()\r\n title: string;\r\n\r\n json_obj: any[];\r\n EXCEL_TYPE =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n EXCEL_EXTENSION = \".xlsx\";\r\n z: number;\r\n a: number;\r\n b: number;\r\n data: Array>;\r\n first_thirty: string[];\r\n first_thirty_units: string[];\r\n\r\n buildings: Selectable[];\r\n attributeCategories: PropertyCore.AttributeType[];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n get selectedCount(): number {\r\n return this.buildings ? this.buildings.filter((x) => x.selected).length : 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })\r\n )\r\n )\r\n .subscribe((res) => (this.buildings = res))\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .OrderBy(\"Id\", \"asc\")\r\n .Expand((x) => {\r\n x.Expand(\"Account\"),\r\n x.Expand(\"Equipments\", (y) => {\r\n y.Expand(\"QuickResponseCodes\", (z) => {\r\n z.Select(\"Value\");\r\n }),\r\n y.Expand(\"Modules\", (z) => {\r\n z.Expand(\"Room\", (t) => {\r\n t.Select(\"Name\"),\r\n t.Expand(\"Floor\", (f) => {\r\n f.Select(\"Name\");\r\n });\r\n });\r\n z.Expand(\"AttributeValues\"),\r\n z.Expand(\"ModuleType\", (t) => {\r\n t.Select(\"Code\");\r\n });\r\n }),\r\n y.Expand(\"Images\", (z) => {\r\n z.Select(\"Id\");\r\n });\r\n y.Expand(\"EquipmentType\", (z) => {\r\n z.Select(\"Code\"),\r\n z.Select(\"SubNo\"),\r\n z.Select(\"Name\"),\r\n z.Expand(\"CostGroup\", (t) => {\r\n t.Select(\"No\");\r\n });\r\n }),\r\n y.Expand(\"Room\", (z) => {\r\n z.Select(\"Name\"),\r\n z.Expand(\"Floor\", (t) => {\r\n t.Select(\"Name\");\r\n });\r\n }),\r\n y.Expand(\"AttributeValues\");\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })\r\n )\r\n )\r\n .subscribe((res) => (this.buildings = res))\r\n );\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.AttributeType.Query()\r\n .Expand((x) => {\r\n x.Expand(\"Set\");\r\n x.Expand(\"MeasurementUnit\");\r\n })\r\n .OrderBy(\"Id\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n ).subscribe((res2) => (this.attributeCategories = res2))\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n selectAll(selectAll: boolean): void {\r\n this.buildings.forEach((building) => (building.selected = selectAll));\r\n }\r\n\r\n export(validForm: boolean) {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n this.data = [[], []];\r\n this.z = 0;\r\n this.a = 0;\r\n this.b = 2;\r\n this.first_thirty = [\r\n \"Gebäude ID\",\r\n \"Gebäude\",\r\n \"Land\",\r\n \"Bundesland\",\r\n \"Zip\",\r\n \"Stadt\",\r\n \"Address\",\r\n \"Typ\",\r\n \"ID ANL\",\r\n \"QR ANL\",\r\n \"ID BGR\",\r\n \"ID Gebäude\",\r\n \"Gebäude\",\r\n \"Nr. KGR\",\r\n \"Nr. KGR (Sub)\",\r\n \"K.bez. ANL\",\r\n \"L.bez. ANL\",\r\n \"Kunden.bez. ANL\",\r\n \"Nr. ANL\",\r\n \"K.bez. BGR\",\r\n \"L.bez. BGR\",\r\n \"Nr. BGR\",\r\n \"Bemerkung\",\r\n \"Anzahl (BGR)\",\r\n \"Raum\",\r\n \"Ebene\",\r\n \"Bearb.-Datum\",\r\n \"TÜV EQ-Nr.\",\r\n \"Bilder\",\r\n ];\r\n\r\n this.first_thirty_units = [\r\n \"\",\r\n \"\",\r\n \"\",\r\n \"\",\r\n \"\",\r\n \"\",\r\n \"\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n \"-\",\r\n ];\r\n\r\n for (let i = 0; i < this.first_thirty.length; i++) {\r\n this.data[0][i] = this.first_thirty[i];\r\n this.data[1][i] = this.first_thirty_units[i];\r\n }\r\n for (let i = 30; i < this.attributeCategories.length + 30; i++) {\r\n this.data[0][i] = this.attributeCategories[this.z].Name;\r\n this.data[1][i] = this.attributeCategories[this.z].MeasurementUnit.Name;\r\n this.z++;\r\n }\r\n this.z = 0;\r\n\r\n this.buildings = this.buildings.filter((x) => x.selected);\r\n\r\n while (this.a < this.buildings.length) {\r\n let c = 0;\r\n while (c < this.buildings[this.a].Equipments.length) {\r\n this.data.push([]);\r\n this.data[this.b][0] = this.buildings[this.a].Id.toString();\r\n this.data[this.b][1] = this.buildings[this.a].Name;\r\n this.data[this.b][2] = this.buildings[this.a].Address.CountryInfo.Name;\r\n this.data[this.b][3] = this.buildings[this.a].Address.RegionInfo.Name;\r\n this.data[this.b][4] = this.buildings[this.a].Address.PostCode;\r\n this.data[this.b][5] = this.buildings[this.a].Address.City;\r\n this.data[this.b][6] = this.buildings[this.a].Address.Street.concat(\r\n \" \"\r\n ).concat(this.buildings[this.a].Address.No);\r\n this.data[this.b][7] = \"ANL\";\r\n this.data[this.b][8] =\r\n this.buildings[this.a].Equipments[c].Id.toString();\r\n this.data[this.b][9] = this.buildings[this.a].Equipments[c]\r\n .QuickResponseCodes.length\r\n ? this.buildings[this.a].Equipments[c].QuickResponseCodes[0].Value\r\n : \"\";\r\n this.data[this.b][10] = \"-\";\r\n this.data[this.b][11] = this.buildings[this.a].Id.toString();\r\n this.data[this.b][12] = this.buildings[this.a].Name;\r\n this.data[this.b][13] =\r\n this.buildings[this.a].Equipments[\r\n c\r\n ].EquipmentType.CostGroup.No.toString();\r\n this.data[this.b][14] =\r\n this.buildings[this.a].Equipments[c].EquipmentType.SubNo.toString();\r\n this.data[this.b][15] =\r\n this.buildings[this.a].Equipments[c].EquipmentType.Code;\r\n this.data[this.b][16] =\r\n this.buildings[this.a].Equipments[c].EquipmentType.Name;\r\n this.data[this.b][17] = this.buildings[this.a].Equipments[c].CustomId;\r\n this.data[this.b][18] =\r\n this.buildings[this.a].Equipments[c].InstallNo.toString();\r\n this.data[this.b][19] = \"-\";\r\n this.data[this.b][20] = \"-\";\r\n this.data[this.b][21] = \"-\";\r\n this.data[this.b][22] = this.buildings[this.a].Equipments[c].Comment;\r\n this.data[this.b][23] = \"-\";\r\n this.data[this.b][24] = this.buildings[this.a].Equipments[c].Room.Name;\r\n this.data[this.b][25] =\r\n this.buildings[this.a].Equipments[c].Room.Floor.Name;\r\n this.data[this.b][26] = this.buildings[this.a].Equipments[\r\n c\r\n ].DataTimestamp.toLocaleString().slice(0, 10);\r\n this.data[this.b][28] = this.buildings[this.a].Equipments[c].TuevNo;\r\n this.data[this.b][29] = this.buildings[this.a].Equipments[c].Images\r\n .length\r\n ? this.buildings[this.a].Equipments[c].Images.length.toString()\r\n : \"-1\";\r\n\r\n for (let i = 30; i < this.data[0].length; i++) {\r\n this.data[this.b][i] = \"!!\";\r\n }\r\n var no_null_values;\r\n\r\n if (this.buildings[this.a].Equipments[c].AttributeValues != null) {\r\n no_null_values = this.buildings[this.a].Equipments[\r\n c\r\n ].AttributeValues.filter((x) => x.Value != null);\r\n } else {\r\n no_null_values = null;\r\n }\r\n\r\n if (no_null_values != null) {\r\n for (let i = 0; i < no_null_values.length; i++) {\r\n let attr = this.attributeCategories.find(\r\n (x) => x.Id == no_null_values[i].Id\r\n );\r\n let attr_index = this.data[0].findIndex((x) => x == attr.Name);\r\n this.data[this.b][attr_index] = no_null_values[i].Value;\r\n }\r\n }\r\n\r\n if (this.buildings[this.a].Equipments[c].Modules.length) {\r\n for (\r\n let i = 0;\r\n i < this.buildings[this.a].Equipments[c].Modules.length;\r\n i++\r\n ) {\r\n this.data.push([]);\r\n this.b++;\r\n this.data[this.b][0] = this.buildings[this.a].Id.toString();\r\n this.data[this.b][1] = this.buildings[this.a].Name;\r\n this.data[this.b][2] =\r\n this.buildings[this.a].Address.CountryInfo.Name;\r\n this.data[this.b][3] =\r\n this.buildings[this.a].Address.RegionInfo.Name;\r\n this.data[this.b][4] = this.buildings[this.a].Address.PostCode;\r\n this.data[this.b][5] = this.buildings[this.a].Address.City;\r\n this.data[this.b][6] = this.buildings[this.a].Address.Street.concat(\r\n \" \"\r\n ).concat(this.buildings[this.a].Address.No);\r\n this.data[this.b][7] = \"BGR\";\r\n this.data[this.b][8] =\r\n this.buildings[this.a].Equipments[c].Id.toString();\r\n this.data[this.b][9] = this.buildings[this.a].Equipments[c]\r\n .QuickResponseCodes.length\r\n ? this.buildings[this.a].Equipments[c].QuickResponseCodes[0].Value\r\n : \"\";\r\n this.data[this.b][10] =\r\n this.buildings[this.a].Equipments[c].Modules[i].Id.toString();\r\n this.data[this.b][11] = this.buildings[this.a].Id.toString();\r\n this.data[this.b][12] = this.buildings[this.a].Name;\r\n this.data[this.b][13] =\r\n this.buildings[this.a].Equipments[\r\n c\r\n ].EquipmentType.CostGroup.No.toString();\r\n this.data[this.b][14] =\r\n this.buildings[this.a].Equipments[\r\n c\r\n ].EquipmentType.SubNo.toString();\r\n this.data[this.b][15] =\r\n this.buildings[this.a].Equipments[c].EquipmentType.Code;\r\n this.data[this.b][16] =\r\n this.buildings[this.a].Equipments[c].EquipmentType.Name;\r\n this.data[this.b][17] =\r\n this.buildings[this.a].Equipments[c].CustomId;\r\n this.data[this.b][18] =\r\n this.buildings[this.a].Equipments[c].InstallNo.toString();\r\n this.data[this.b][19] =\r\n this.buildings[this.a].Equipments[c].Modules[i].ModuleType.Code;\r\n this.data[this.b][20] =\r\n this.buildings[this.a].Equipments[c].Modules[i].Name;\r\n this.data[this.b][21] =\r\n this.buildings[this.a].Equipments[c].Modules[\r\n i\r\n ].InstallNo.toString();\r\n this.data[this.b][22] =\r\n this.buildings[this.a].Equipments[c].Comment;\r\n this.data[this.b][23] =\r\n this.buildings[this.a].Equipments[c].Modules[\r\n i\r\n ].Quantity.toString();\r\n this.data[this.b][24] =\r\n this.buildings[this.a].Equipments[c].Modules[i].Room.Name;\r\n this.data[this.b][25] =\r\n this.buildings[this.a].Equipments[c].Modules[i].Room.Floor.Name;\r\n this.data[this.b][26] = this.buildings[this.a].Equipments[\r\n c\r\n ].Modules[i].DataTimestamp.toLocaleString().slice(0, 10);\r\n this.data[this.b][27] = this.buildings[this.a].Account.Name;\r\n this.data[this.b][28] = this.buildings[this.a].Equipments[c].TuevNo;\r\n this.data[this.b][29] = this.buildings[this.a].Equipments[c].Images\r\n .length\r\n ? this.buildings[this.a].Equipments[c].Images.length.toString()\r\n : \"-1\";\r\n\r\n for (let i = 30; i < this.data[0].length; i++) {\r\n this.data[this.b][i] = \"!!\";\r\n }\r\n var no_null_values_modules;\r\n\r\n if (\r\n this.buildings[this.a].Equipments[c].Modules[i].AttributeValues !=\r\n null\r\n ) {\r\n no_null_values_modules = this.buildings[this.a].Equipments[\r\n c\r\n ].Modules[i].AttributeValues.filter((x) => x.Value != null);\r\n } else {\r\n no_null_values_modules = null;\r\n }\r\n\r\n if (no_null_values_modules != null) {\r\n for (let i = 0; i < no_null_values_modules.length; i++) {\r\n let attr = this.attributeCategories.find(\r\n (x) => x.Id == no_null_values_modules[i].Id\r\n );\r\n let attr_index = this.data[0].findIndex((x) => x == attr.Name);\r\n this.data[this.b][attr_index] = no_null_values_modules[i].Value;\r\n }\r\n }\r\n }\r\n }\r\n this.b++;\r\n c++;\r\n }\r\n this.a++;\r\n }\r\n\r\n this.exportAsExcelFile(this.data, \"Portfolio\");\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"Export._export_success\")\r\n );\r\n }\r\n\r\n private exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(json);\r\n const workbook: XLSX.WorkBook = {\r\n Sheets: { data: worksheet },\r\n SheetNames: [\"data\"],\r\n };\r\n const excelBuffer: any = XLSX.write(workbook, {\r\n bookType: \"xlsx\",\r\n type: \"array\",\r\n });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], { type: this.EXCEL_TYPE });\r\n FileSaver.saveAs(\r\n data,\r\n fileName +\r\n \"_\" +\r\n new Date().toISOString().slice(0, 10) +\r\n \"_\" +\r\n new Date().toTimeString().slice(0, 8).replace(\":\", \"-\") +\r\n this.EXCEL_EXTENSION\r\n );\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { AuthGuard } from \"./../core/auth/auth-guard.service\";\r\nimport { CoreModule } from \"./../core/core.module\";\r\nimport { ChangePasswordComponent } from \"./change-password/change-password.component\";\r\nimport { ContractDataProcessingArticleComponent } from \"./contract-data-processing/article/contract-data-processing-article.component\";\r\nimport { ContractDataProcessingComponent } from \"./contract-data-processing/contract-data-processing.component\";\r\nimport { DataProtectionComponent } from \"./data-protection/data-protection.component\";\r\nimport { ExportComponent } from \"./export/export.component\";\r\nimport { ExportGaebComponent } from \"./export/gaeb/export-gaeb.component\";\r\nimport { ExportIncidentsComponent } from \"./export/incidents/export-incidents.component\";\r\nimport { ExportInspectionDutyComponent } from \"./export/inspection-duty/export-inspection-duty.component\";\r\nimport { ExportMaintenanceContractComponent } from \"./export/maintenance-contract/export-maintenance-contract.component\";\r\nimport { ExportPortfolioComponent } from \"./export/portfolio/export-portfolio.component\";\r\nimport { ManageUsersComponent } from \"./manage-users/manage-users.component\";\r\nimport { MandatorDetailComponent } from \"./mandator/mandator-detail/mandator-detail.component\";\r\nimport { MandatorListComponent } from \"./mandator/mandator-list/mandator-list.component\";\r\nimport { MandatorWizardAgreementComponent } from \"./mandator/wizard/mandator-wizard-agreement/mandator-wizard-agreement.component\";\r\nimport { MandatorWizardConfirmComponent } from \"./mandator/wizard/mandator-wizard-confirm/mandator-wizard-confirm.component\";\r\nimport { MandatorWizardDataComponent } from \"./mandator/wizard/mandator-wizard-data/mandator-wizard-data.component\";\r\nimport { MandatorWizardDoneComponent } from \"./mandator/wizard/mandator-wizard-done/mandator-wizard-done.component\";\r\nimport { MandatorWizardProgressComponent } from \"./mandator/wizard/mandator-wizard-progress/mandator-wizard-progress.component\";\r\nimport { MandatorWizardComponent } from \"./mandator/wizard/mandator-wizard.component\";\r\nimport { MandatorWizardService } from \"./mandator/wizard/mandator-wizard.service\";\r\nimport { AdvancedComponent } from \"./profile/advanced/advanced.component\";\r\nimport { ProfileComponent } from \"./profile/profile.component\";\r\nimport { ServiceProviderComponent } from \"./service-provider/service-provider.component\";\r\nimport { SpecificationOfServicesComponent } from \"./specification-of-services/specification-of-services.component\";\r\nimport { TermsOfUseComponent } from \"./terms-of-use/terms-of-use.component\";\r\nimport { ExportCalculationComponent } from './export/export-calculation/export-calculation.component';\r\nimport { ExportCalculationBuildingsComponent } from './export/export-calculation/export-calculation-buildings/export-calculation-buildings.component';\r\nimport { ExportCalculationInspectionDutiesComponent } from './export/export-calculation/export-calculation-inspection-duties/export-calculation-inspection-duties.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"global\",\r\n children: [\r\n {\r\n path: \"profile\",\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: \"\",\r\n component: ProfileComponent,\r\n },\r\n {\r\n path: \"advanced\",\r\n component: AdvancedComponent,\r\n children: [\r\n {\r\n path: \"\",\r\n component: AdvancedComponent,\r\n },\r\n {\r\n path: \"off\",\r\n component: AdvancedComponent,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n path: \"change-password\",\r\n component: ChangePasswordComponent,\r\n },\r\n {\r\n path: \"mandator\",\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: \"\",\r\n component: MandatorListComponent,\r\n },\r\n {\r\n path: \"wizard\",\r\n children: [\r\n {\r\n path: \":id\",\r\n component: MandatorWizardComponent,\r\n },\r\n {\r\n path: \"\",\r\n pathMatch: \"full\",\r\n component: MandatorWizardComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: \":id\",\r\n pathMatch: \"full\",\r\n component: MandatorDetailComponent,\r\n },\r\n ],\r\n },\r\n {\r\n path: \"service-provider\",\r\n component: ServiceProviderComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"manage-users\",\r\n component: ManageUsersComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"export\",\r\n component: ExportComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"terms-of-use\",\r\n component: TermsOfUseComponent,\r\n },\r\n {\r\n path: \"contract-data-processing\",\r\n children: [\r\n {\r\n path: \"\",\r\n component: ContractDataProcessingComponent,\r\n },\r\n {\r\n path: \":id\",\r\n component: ContractDataProcessingComponent,\r\n },\r\n {\r\n path: \":id/history\",\r\n component: ContractDataProcessingComponent,\r\n data: {\r\n history: true,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: \"specification-of-services\",\r\n component: SpecificationOfServicesComponent,\r\n },\r\n {\r\n path: \"data-protection\",\r\n component: DataProtectionComponent,\r\n },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgbModule,\r\n RouterModule.forChild(routes),\r\n CoreModule,\r\n ],\r\n declarations: [\r\n ProfileComponent,\r\n AdvancedComponent,\r\n ChangePasswordComponent,\r\n MandatorListComponent,\r\n MandatorDetailComponent,\r\n MandatorWizardComponent,\r\n MandatorWizardProgressComponent,\r\n MandatorWizardDataComponent,\r\n MandatorWizardAgreementComponent,\r\n MandatorWizardConfirmComponent,\r\n MandatorWizardDoneComponent,\r\n ServiceProviderComponent,\r\n ManageUsersComponent,\r\n ExportComponent,\r\n ExportPortfolioComponent,\r\n ExportIncidentsComponent,\r\n ExportGaebComponent,\r\n ExportInspectionDutyComponent,\r\n ExportMaintenanceContractComponent,\r\n TermsOfUseComponent,\r\n DataProtectionComponent,\r\n ContractDataProcessingComponent,\r\n ContractDataProcessingArticleComponent,\r\n SpecificationOfServicesComponent,\r\n ExportCalculationComponent,\r\n ExportCalculationBuildingsComponent,\r\n ExportCalculationInspectionDutiesComponent,\r\n ],\r\n exports: [RouterModule, ContractDataProcessingArticleComponent],\r\n providers: [MandatorWizardService],\r\n})\r\nexport class GlobalModule {}\r\n","import {\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { combineLatest, Subscription, from } from \"rxjs\";\r\n\r\nimport {\r\n ObjektBrief,\r\n Operations,\r\n PropertyCore,\r\n} from \"../../core/odata/odata.coreapi\";\r\nimport { AuthService } from \"../../core/auth/auth.service\";\r\nimport { Selectable } from \"../../core/model/common\";\r\nimport {\r\n Mandator,\r\n RoleBuilding,\r\n UserRoleBuildings,\r\n} from \"../../core/model/mandator\";\r\nimport { ConfirmationModal } from \"../../core/popup/confirmation.modal\";\r\nimport { GlobalService } from \"../../core/shared/global.service\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { Utils } from \"../../core/tools/utils\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { MandatorService } from \"app/core/shared/services/mandator.service\";\r\n\r\n@Component({\r\n selector: \"app-manage-users\",\r\n templateUrl: \"./manage-users.component.html\",\r\n styleUrls: [\"./manage-users.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ManageUsersComponent implements OnInit, OnDestroy {\r\n mandator: Mandator;\r\n\r\n loginPermissions: UserRoleBuildings[];\r\n serviceProviderAccounts: PropertyCore.ServiceProvider[];\r\n\r\n searchFilter: string = \"\";\r\n\r\n editMode: boolean;\r\n userEmail: string;\r\n userType: UserType = UserType.MEMBER;\r\n UserType = UserType;\r\n serviceContacts: PropertyCore.ServiceProvider[];\r\n serviceContact: PropertyCore.ServiceProvider;\r\n buildings: Selectable[];\r\n _addedBuildings: PropertyCore.Building[];\r\n _removedBuildings: PropertyCore.Building[];\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private globalService: GlobalService,\r\n private modalService: NgbModal,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService,\r\n private mandatorService: MandatorService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.mandatorService.getCurrentMandatorWithRights$().subscribe((res) => {\r\n this.mandator = res;\r\n if (this.mandator.Rights[0].CanEdit) {\r\n // buildings and users with roles\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Account.Query()\r\n .Filter((x) =>\r\n x.EqualsField(\r\n \"Identity\",\r\n Guid.parse(localStorage.getItem(\"mandator\"))\r\n )\r\n )\r\n .Expand((x) => {\r\n x.Expand(\"Buildings\", (x) => {\r\n x.Expand(\"Roles\", (xa) => {\r\n xa.Expand(\"User\");\r\n });\r\n });\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Mandator(), res[0]);\r\n })\r\n )\r\n .subscribe((res2) => {\r\n this.mandator.Buildings = res2.Buildings;\r\n // create map of user email and UserBuildings[]\r\n const permissions = res2.Buildings.reduce(\r\n (accumulator, building) => {\r\n building.Roles.forEach((role) => {\r\n accumulator[role.User.Email] =\r\n accumulator[role.User.Email] ||\r\n {\r\n User: role.User,\r\n RoleBuildings: [],\r\n };\r\n accumulator[role.User.Email].RoleBuildings.push(<\r\n RoleBuilding\r\n >{ Role: role, Building: building });\r\n });\r\n return accumulator;\r\n },\r\n {}\r\n );\r\n this.loginPermissions = Object.keys(permissions)\r\n .map((key) => {\r\n return {\r\n User: permissions[key].User,\r\n RoleBuildings: permissions[\r\n key\r\n ].RoleBuildings.sort((a, b) =>\r\n a.Building.Name.toLowerCase().localeCompare(\r\n b.Building.Name.toLowerCase()\r\n )\r\n ),\r\n };\r\n })\r\n .sort((a, b) =>\r\n a.User.Email.toLowerCase().localeCompare(\r\n b.User.Email.toLowerCase()\r\n )\r\n );\r\n })\r\n );\r\n\r\n // service providers with service account (To implemented in the future)\r\n /*this.subscriptions.add(this.serviceContactService.getServiceContacts(true).subscribe(res => {\r\n this.serviceProviderAccounts = res;\r\n }));*/\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n removeOwner(owner: Operations.User) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"ManageUsers._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"ManageUsers._modal_message\",\r\n { email: owner.Email }\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"ManageUsers._modal_yes\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"ManageUsers._modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.odataCoreService.Account.Link()\r\n .Key(Guid.parse(this.mandator.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(owner.Identity))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then(async (res) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._deleteOwner_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n editOwner(content, owner: Operations.User) {\r\n this.editUser(content, owner);\r\n }\r\n\r\n removeUserPermissions(userPermissions: UserRoleBuildings) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\r\n \"ManageUsers._modal_title\"\r\n );\r\n modalRef.componentInstance.message = this.translateService.instant(\r\n \"ManageUsers._modal_message\",\r\n { email: userPermissions.User.Email }\r\n );\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\r\n \"ManageUsers._modal_yes\"\r\n );\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\r\n \"ManageUsers._modal_cancel\"\r\n );\r\n\r\n modalRef.result\r\n .then(async (val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n ...userPermissions.RoleBuildings.map((permission) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(permission.Building.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(permission.Role.User.Identity))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"ManageUsers._deleteUser_success\")\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n editUser(\r\n content,\r\n user: Operations.User = null,\r\n permissions: RoleBuilding[] = []\r\n ) {\r\n this.formSubmitted = false;\r\n this._addedBuildings = [];\r\n this._removedBuildings = [];\r\n\r\n if (user) {\r\n this.editMode = true;\r\n this.userEmail = user.Email;\r\n this.userType = !!this.mandator.Roles.find(\r\n (r) =>\r\n r.Role === ObjektBrief.AccountRoles.Administrator &&\r\n r.User.Email === this.userEmail\r\n )\r\n ? UserType.OWNER\r\n : UserType.MEMBER;\r\n } else {\r\n this.editMode = false;\r\n this.userEmail = undefined;\r\n this.userType = UserType.MEMBER;\r\n }\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Expand((x) => x.Expand(\"Users\"))\r\n .OrderBy(\"Name\", \"asc\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n return Utils.mapAllJSONDatesToDates(i);\r\n })\r\n )\r\n )\r\n .subscribe((res) => {\r\n this.buildings = res;\r\n // pre-select\r\n if (permissions.length == 0 && user != null) {\r\n this.buildings.forEach(\r\n (b) => (b.selected = !!b.Users.find((p) => p.Email == user.Email))\r\n );\r\n } else {\r\n this.buildings.forEach(\r\n (b) =>\r\n (b.selected = !!permissions.find(\r\n (p) => p.Building.Identity === b.Identity\r\n ))\r\n );\r\n }\r\n })\r\n );\r\n /*\r\n if (!this.serviceContacts) {\r\n this.subscriptions.add(this.serviceContactService.getServiceContacts(false, true).subscribe(res => this.serviceContacts = res));\r\n } */\r\n this.modalService\r\n .open(content, { windowClass: \"user-modal\" })\r\n .result.then(async (result) => {\r\n // invite user\r\n if (!this.editMode) {\r\n let buildingIds = [];\r\n switch (this.userType) {\r\n case UserType.OWNER:\r\n buildingIds = this.mandator.Buildings.map((b) => b.Identity);\r\n break;\r\n case UserType.MEMBER:\r\n buildingIds = this._addedBuildings.map((b) => b.Identity);\r\n break;\r\n }\r\n if (\r\n this.userType === UserType.OWNER ||\r\n this.userType === UserType.MEMBER\r\n ) {\r\n this.subscriptions.add(\r\n this.globalService\r\n .invite(this.userEmail, buildingIds)\r\n .subscribe(async (res) => {\r\n var userIdentity = res;\r\n if (this.userType === UserType.OWNER) {\r\n this.odataCoreService.Account.Link()\r\n .Key(Guid.parse(this.mandator.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(res))\r\n .Bind()\r\n )\r\n .Post()\r\n .then(async (res) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._inviteOwner_success\"\r\n )\r\n );\r\n\r\n // remove permissions for owner\r\n if (buildingIds.length) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n buildingIds.map((buildingId) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(buildingId))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(userIdentity))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res3) => {\r\n this.ngOnInit();\r\n })\r\n );\r\n }\r\n });\r\n } else {\r\n if (buildingIds.length) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n buildingIds.map((buildingId) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(buildingId))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(res))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then((res) => { })\r\n )\r\n ).subscribe(async (res3) => {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n buildingIds.map((buildingId) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(buildingId))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(res))\r\n .Bind()\r\n )\r\n .Post()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._inviteUser_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n })\r\n );\r\n }\r\n }\r\n })\r\n );\r\n } else if (this.userType === UserType.SERVICE_CONTACT) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Invitation.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Invitation())\r\n .ValueProperty(\"Email\", this.userEmail)\r\n .ValueProperty(\"ServiceProvider\", this.serviceContact)\r\n .Exec()\r\n ).subscribe((res) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._inviteUser_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n }\r\n } else {\r\n // check if isOwner changed\r\n const wasUserOwner = !!this.mandator.Roles.find(\r\n (r) =>\r\n r.Role === ObjektBrief.AccountRoles.Administrator &&\r\n r.User.Email === this.userEmail\r\n )\r\n ? UserType.OWNER\r\n : UserType.MEMBER;\r\n if (wasUserOwner !== this.userType) {\r\n // changed from member to owner\r\n if (\r\n this.mandator.Rights[0].CanEdit &&\r\n this.userType === UserType.OWNER\r\n ) {\r\n this.odataCoreService.Account.Link()\r\n .Key(Guid.parse(this.mandator.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(user.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n .then(async (res) => {\r\n // remove old permissions\r\n if (permissions.length) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n permissions.map((permission) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(permission.Building.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(permission.Role.User.Identity))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._editUser_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n } else {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._editUser_success\"\r\n )\r\n );\r\n }\r\n });\r\n } else if (this.userType === UserType.MEMBER) {\r\n // changed from owner to member\r\n this.odataCoreService.Account.Link()\r\n .Key(Guid.parse(this.mandator.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(user.Identity))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then(async (res) => {\r\n if (this._addedBuildings.length) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n this._addedBuildings.map((building) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(building.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(user.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._editUser_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n }\r\n\r\n if (this._removedBuildings.length) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n this._removedBuildings.map((building) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(building.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(user.Identity))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._editUser_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n }\r\n });\r\n }\r\n } else if (this.userType === UserType.MEMBER) {\r\n // default Manager roleId = 2\r\n if (this._addedBuildings.length) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n this._addedBuildings.map((building) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(building.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(user.Identity))\r\n .Bind()\r\n )\r\n .Post()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._editUser_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n }\r\n\r\n if (this._removedBuildings.length) {\r\n await this.subscriptions.add(\r\n combineLatest(\r\n this._removedBuildings.map((building) =>\r\n this.odataCoreService.Building.Link()\r\n .Key(Guid.parse(building.Identity))\r\n .Value(\r\n \"Users\",\r\n this.odataCoreService.User.Get()\r\n .Key(Guid.parse(user.Identity))\r\n .Bind()\r\n )\r\n .Delete()\r\n .then((res) => { })\r\n )\r\n ).subscribe((res2) => {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\r\n \"ManageUsers._editUser_success\"\r\n )\r\n );\r\n this.ngOnInit();\r\n })\r\n );\r\n }\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n saveUser(validForm: boolean, saveFct: any) {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n saveFct();\r\n }\r\n\r\n selectBuilding(building: PropertyCore.Building, selected: boolean) {\r\n if (selected) {\r\n this._addedBuildings.push(building);\r\n const i = this._removedBuildings.indexOf(building);\r\n if (i !== -1) {\r\n this._removedBuildings.splice(i, 1);\r\n }\r\n } else {\r\n this._removedBuildings.push(building);\r\n const i = this._addedBuildings.indexOf(building);\r\n if (i !== -1) {\r\n this._addedBuildings.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n selectAll(all: boolean): void {\r\n this.buildings.forEach((b) => {\r\n b.selected = all;\r\n this.selectBuilding(b, all);\r\n });\r\n }\r\n\r\n onServiceContactChange(serviceContact: PropertyCore.ServiceProvider): void {\r\n this.serviceContact = serviceContact;\r\n this.userEmail = null;\r\n if (this.serviceContact) {\r\n this.userEmail = this.serviceContact.ContactEmailAdd;\r\n }\r\n }\r\n\r\n editServiceProvider(serviceProvider: PropertyCore.ServiceProvider) {\r\n console.log(\"TODO editServiceProvider\");\r\n alert(\"TODO editServiceProvider\");\r\n }\r\n\r\n removeServiceProvider(serviceProvider: PropertyCore.ServiceProvider) {\r\n console.log(\"TODO removeServiceProvider\");\r\n alert(\"TODO removeServiceProvider\");\r\n }\r\n}\r\n\r\nexport enum UserType {\r\n OWNER,\r\n MEMBER,\r\n SERVICE_CONTACT,\r\n}\r\n","import {Component, OnDestroy, OnInit, Output, EventEmitter} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {Subscription, Observable, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\n\r\nimport {Library, ObjektBrief, Common} from '../../../core/odata/odata.coreapi';\r\nimport {Mandator} from './../../../core/model/mandator';\r\nimport {ConfirmationModal} from './../../../core/popup/confirmation.modal';\r\nimport {GlobalService} from './../../../core/shared/global.service';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n@Component({\r\n selector: 'app-mandator-detail',\r\n templateUrl: './mandator-detail.component.html',\r\n styleUrls: ['./mandator-detail.component.scss']\r\n})\r\nexport class MandatorDetailComponent implements OnInit, OnDestroy {\r\n\r\n mandator: Mandator;\r\n\r\n countries: Library.Country[];\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n accountChangeRequest = new EventEmitter();\r\n\r\n onChange(UpdatedValue: string): void {\r\n\r\n this.mandator.Profile.PartnerNo = UpdatedValue;\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(this.mandator.Identity)).Actions().CheckNameInOperationsOnAccountInOperations()\r\n .Parameters(this.mandator.Name)\r\n .Execute()\r\n .then(x => {\r\n if(x['value'] == true){\r\n this.mandator.doesExists = false;\r\n } else {\r\n this.mandator.doesExists = true;\r\n }\r\n });\r\n this.accountChangeRequest.emit();\r\n }\r\n\r\n constructor(\r\n private globalService: GlobalService,\r\n private toasterService: ToasterService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) => from(this.odataCoreService.Account.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Expand(x => {\r\n x.Expand(\"User\"),\r\n x.Expand(\"Statistics\"),\r\n x.Expand(\"Profile\"),\r\n x.Expand(\"AccountDataProcessingAgreement\", z => {\r\n z.Expand(\"Country\")\r\n })\r\n }) \r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Mandator(), res[0]);\r\n }))))\r\n .subscribe(res1 => {\r\n\r\n this.subscriptions.add(\r\n from(this.odataCoreService.Country.Query()\r\n .OrderBy('Id')\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(res2 => {\r\n\r\n this.mandator = res1;\r\n this.mandator.doesExists = false;\r\n this.countries = res2;\r\n\r\n if (this.mandator.Profile == null) {\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(this.mandator.Identity))\r\n .NavigateToArray(\"Profile\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().AccountProfile())\r\n .Exec()\r\n .then(x => { \r\n this.ngOnInit();\r\n });\r\n } else\r\n {\r\n \r\n const countryId = this.countries.find(c => c.Name === this.mandator.Profile?.Address?.CountryInfo.Name); \r\n this.mandator.Profile.Address.CountryInfo = countryId;\r\n const invoiceCountryId = this.countries.find(c => c.Name === this.mandator.Profile?.InvoiceAddress?.CountryInfo.Name); \r\n this.mandator.Profile.InvoiceAddress.CountryInfo = invoiceCountryId;\r\n\r\n };\r\n \r\n\r\n }));\r\n\r\n })\r\n ); \r\n \r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n // this.subscriptions.add(this.globalService.updateMandator(this.mandator).subscribe(res => {\r\n // this.toasterService.pop('info', '', this.translateService.instant('EditMandator._save_success'));\r\n // this.router.navigate(['/global/mandator']);\r\n // }));\r\n\r\n this.odataCoreService.Account.Patch()\r\n .Key(Guid.parse(this.mandator.Identity))\r\n .ValueType(this.odataCoreService.ODataTypes().Account())\r\n .ValueProperty(\"Name\", this.mandator.Name)\r\n .Exec()\r\n .then(x => {\r\n\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(x.Identity))\r\n .NavigateToArray(\"Profile\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().AccountProfile())\r\n .ValueProperty(\"Name\", this.mandator.Profile.Name)\r\n .ValueProperty(\"PartnerNo\", this.mandator.Profile.PartnerNo)\r\n .ValueProperty(\"VatCode\", this.mandator.Profile.VatCode)\r\n .ValueProperty(\"AddressAddition\", this.mandator.Profile.AddressAddition)\r\n .ValueProperty(\"Address\", this.mapAddress(this.mandator.Profile.Address))\r\n .ValueProperty(\"Contact\", this.mandator.Profile.Contact)\r\n .ValueProperty(\"ContactPhone\", this.mandator.Profile.ContactPhone)\r\n .ValueProperty(\"ContactMail\", this.mandator.Profile.ContactMail)\r\n .ValueProperty(\"InvoiceName\", this.mandator.Profile.InvoiceName)\r\n .ValueProperty(\"InvoicePartnerNo\", this.mandator.Profile.InvoicePartnerNo)\r\n .ValueProperty(\"InvoiceCode\", this.mandator.Profile.InvoiceCode)\r\n .ValueProperty(\"InvoiceAddressAddition\", this.mandator.Profile.InvoiceAddressAddition)\r\n .ValueProperty(\"InvoiceAddress\", this.mapAddress(this.mandator.Profile.InvoiceAddress))\r\n .Exec()\r\n .then(y => {\r\n this.toasterService.pop('info', '', this.translateService.instant('EditMandator._save_success'));\r\n this.router.navigate(['/global/mandator']);\r\n })\r\n\r\n })\r\n\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('EditMandator._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('EditMandator._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('EditMandator._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('EditMandator._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate(['/global/mandator']);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate(['/global/mandator']);\r\n }\r\n }\r\n\r\n/* editSubscriptionPlan() {\r\n this.router.navigate(['/global', 'mandator', 'wizard', this.mandator.Identity]);\r\n } */\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (address.RegionInfo != null && address.RegionInfo.hasOwnProperty('Code')){\r\n entity.Region = address.RegionInfo['Code'];\r\n } \r\n if (address.CountryInfo != null && address.CountryInfo.hasOwnProperty('Code')) {\r\n entity.Country = address.CountryInfo['Code'];\r\n } else {\r\n entity.Country = 'DE';\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {ObjektBrief} from '../../../core/odata/odata.coreapi';\r\nimport {AuthService} from './../../../core/auth/auth.service';\r\nimport {Mandator} from './../../../core/model/mandator';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { ODataCoreService } from '../../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-mandator-list',\r\n templateUrl: './mandator-list.component.html',\r\n styleUrls: ['./mandator-list.component.scss']\r\n})\r\nexport class MandatorListComponent implements OnInit, OnDestroy {\r\n\r\n mandators: Mandator[];\r\n\r\n searchFilter: string = '';\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.Account.Query()\r\n .OrderBy(\"Name\")\r\n .Expand(x => {\r\n x.Expand(\"Rights\", y => {\r\n y.Filter(z => z\r\n .EqualsField(\"Identity\", Guid.parse(localStorage.getItem('infoUserIdentity'))))\r\n })\r\n x.Expand(\"User\"),\r\n x.Expand(\"User\"),\r\n x.Expand(\"Roles\", y => {\r\n y.Expand(\"User\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Mandator(), i);\r\n }))).subscribe(mandators => {\r\n this.mandators = mandators;\r\n this.mandators.forEach(m => m.isOwnerOwner = m.User.Email === this.authService.getUserEmail());\r\n this.mandators.forEach(m => m.isOwner = !!m.Roles.find(r => r.Role === ObjektBrief.AccountRoles.Administrator && r.User.Email === this.authService.getUserEmail()));\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n newMandator() {\r\n this.router.navigate(['wizard'], {relativeTo: this.route});\r\n }\r\n\r\n editMandator(mandator: Mandator) {\r\n this.router.navigate([mandator.Identity], {relativeTo: this.route});\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport * as html2pdf from 'html2pdf.js';\r\nimport * as $ from 'jquery';\r\nimport {Subscription} from 'rxjs';\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {MandatorWizardModel} from './../mandator-wizard-model';\r\nimport {MandatorWizardNavigationPaths} from './../mandator-wizard-navigation-paths.enum';\r\nimport {MandatorWizardService} from './../mandator-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-mandator-wizard-agreement',\r\n templateUrl: './mandator-wizard-agreement.component.html',\r\n styleUrls: ['./mandator-wizard-agreement.component.scss']\r\n})\r\nexport class MandatorWizardAgreementComponent implements OnInit, OnDestroy {\r\n\r\n model: MandatorWizardModel;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: MandatorWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentMandator();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.NEXT);\r\n }\r\n\r\n agreeLater(validForm: boolean): void {\r\n this.model.agreed = false;\r\n this.next(validForm);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('CreateMandator._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('CreateMandator._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('CreateMandator._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('CreateMandator._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentMandator();\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n download(): void {\r\n const elem = $('#app-contract-data-processing-article > article')[0];\r\n const opt = {\r\n margin: 10,\r\n filename: 'Auftragsdatenverarbeitung.pdf',\r\n image: {type: 'jpeg', quality: 0.98},\r\n html2canvas: {scale: 1},\r\n jsPDF: {unit: 'mm', format: 'a4', orientation: 'p'}\r\n };\r\n html2pdf().from(elem).set(opt).save();\r\n }\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription} from 'rxjs';\r\n\r\n\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {MandatorWizardModel} from './../mandator-wizard-model';\r\nimport {MandatorWizardNavigationPaths} from './../mandator-wizard-navigation-paths.enum';\r\nimport {MandatorWizardService} from './../mandator-wizard.service';\r\n//import {AuthService} from 'app/core/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-mandator-wizard-confirm',\r\n templateUrl: './mandator-wizard-confirm.component.html',\r\n styleUrls: ['./mandator-wizard-confirm.component.scss']\r\n})\r\nexport class MandatorWizardConfirmComponent implements OnInit, OnDestroy {\r\n\r\n model: MandatorWizardModel;\r\n\r\n formSubmitted: boolean;\r\n\r\n @ViewChild('advPopupContent', { static: true })\r\n advPopupContent: any;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Output()\r\n saveMandatorRequest = new EventEmitter();\r\n\r\n constructor(\r\n // protected authService: AuthService,\r\n private service: MandatorWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentMandator();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.saveMandatorRequest.emit(this.model);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('CreateMandator._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('CreateMandator._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('CreateMandator._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('CreateMandator._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentMandator();\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n openAdv() {\r\n // open adv popup with mandator data\r\n this.modalService.open(this.advPopupContent, {windowClass: 'adv-modal'}).result.then(result => {\r\n // do nothing, just stay on page\r\n }).catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription, Observable, from} from 'rxjs';\r\n\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {MandatorWizardModel} from './../mandator-wizard-model';\r\nimport {MandatorWizardNavigationPaths} from './../mandator-wizard-navigation-paths.enum';\r\nimport {MandatorWizardService} from './../mandator-wizard.service';\r\nimport { ODataCoreService } from './../../../../core/odata-services/odata.coreapi.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { Utils } from '../../../../core/tools/utils';\r\n\r\n@Component({\r\n selector: 'app-mandator-wizard-data',\r\n templateUrl: './mandator-wizard-data.component.html',\r\n styleUrls: ['./mandator-wizard-data.component.scss']\r\n})\r\nexport class MandatorWizardDataComponent implements OnInit, OnDestroy {\r\n\r\n model: MandatorWizardModel;\r\n\r\n formSubmitted: boolean;\r\n\r\n \r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n \r\n\r\n constructor(\r\n private service: MandatorWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentMandator();\r\n if (!this.model.contact) {\r\n this.model.contact = localStorage.getItem('infoUserName') + ' ' + localStorage.getItem('infoUserSurname');\r\n }\r\n if (!this.model.contactMail) {\r\n this.model.contactMail = localStorage.getItem('infoUserEmail');\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n next(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.NEXT);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('CreateMandator._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('CreateMandator._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('CreateMandator._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('CreateMandator._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentMandator();\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {Subscription} from 'rxjs';\r\n\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {MandatorWizardModel} from './../mandator-wizard-model';\r\nimport {MandatorWizardNavigationPaths} from './../mandator-wizard-navigation-paths.enum';\r\nimport {MandatorWizardService} from './../mandator-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-mandator-wizard-done',\r\n templateUrl: './mandator-wizard-done.component.html',\r\n styleUrls: ['./mandator-wizard-done.component.scss']\r\n})\r\nexport class MandatorWizardDoneComponent implements OnInit, OnDestroy {\r\n\r\n model: MandatorWizardModel;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n constructor(\r\n private service: MandatorWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentMandator();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n previous(): void {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.PREVIOUS);\r\n }\r\n\r\n next(): void {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.NEXT);\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('CreateMandator._modal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('CreateMandator._modal_message');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('CreateMandator._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('CreateMandator._modal_cancel');\r\n\r\n modalRef.result\r\n .then(val => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.service.resetCurrentMandator();\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.pageChangeRequest.emit(MandatorWizardNavigationPaths.EXIT);\r\n }\r\n }\r\n\r\n}\r\n","import {Common, PropertyCore} from '../../../core/odata/odata.coreapi';\r\n\r\nexport class MandatorWizardModel {\r\n\r\n identity: string;\r\n name: string;\r\n mandatorName: string;\r\n address?: Common.Address;\r\n contact: string;\r\n contactPhone: string;\r\n contactMail: string;\r\n oldAgreed: boolean; // on mandator edit\r\n agreed: boolean;\r\n\r\n editMode: boolean;\r\n\r\n}\r\n","export enum MandatorWizardNavigationPaths {\r\n\r\n DATA = 'data',\r\n AGREEMENT = 'agreement',\r\n ABO = 'abo',\r\n CONFIRM = 'confirm',\r\n DONE = 'done',\r\n\r\n NEXT = 'next',\r\n PREVIOUS = 'previous',\r\n START = 'start',\r\n EXIT = 'exit'\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\nimport {ConfirmationModal} from './../../../../core/popup/confirmation.modal';\r\nimport {MandatorWizardModel} from './../mandator-wizard-model';\r\nimport {MandatorWizardNavigationPaths} from './../mandator-wizard-navigation-paths.enum';\r\nimport {MandatorWizardService} from './../mandator-wizard.service';\r\n\r\n@Component({\r\n selector: 'app-mandator-wizard-progress',\r\n templateUrl: './mandator-wizard-progress.component.html',\r\n styleUrls: ['./mandator-wizard-progress.component.scss']\r\n})\r\nexport class MandatorWizardProgressComponent implements OnInit {\r\n\r\n PAGE_DATA = MandatorWizardNavigationPaths.DATA;\r\n PAGE_AGREEMENT = MandatorWizardNavigationPaths.AGREEMENT;\r\n PAGE_CONFIRM = MandatorWizardNavigationPaths.CONFIRM;\r\n PAGE_DONE = MandatorWizardNavigationPaths.DONE;\r\n\r\n model: MandatorWizardModel;\r\n\r\n @Output()\r\n pageChangeRequest = new EventEmitter();\r\n\r\n @Input() currentPage: MandatorWizardNavigationPaths;\r\n\r\n constructor(\r\n private service: MandatorWizardService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.model = this.service.getCurrentMandator();\r\n }\r\n\r\n openInfoDialog() {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant('CreateMandator._infoModal_title');\r\n modalRef.componentInstance.message = this.translateService.instant('ManageMandators._p_hint');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('CreateMandator._infoModal_yes');\r\n modalRef.componentInstance.hideCancelButton = true;\r\n }\r\n\r\n navigate(pageChangeEvent: MandatorWizardNavigationPaths): void {\r\n this.pageChangeRequest.emit(pageChangeEvent);\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {combineLatest, of, Subscription, Observable, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\nimport {AuthService} from './../../../core/auth/auth.service';\r\nimport {Mandator} from './../../../core/model/mandator';\r\nimport {MandatorWizardModel} from './mandator-wizard-model';\r\nimport {MandatorWizardNavigationPaths} from './mandator-wizard-navigation-paths.enum';\r\nimport {MandatorWizardService} from './mandator-wizard.service';\r\nimport { Utils } from '../../../core/tools/utils';\r\nimport { ODataCoreService} from '../../../core/odata-services/odata.coreapi.service'\r\nimport { Guid } from 'guid-typescript';\r\nimport { Common, Operations, ObjektBrief } from '../../../core/odata/odata.coreapi';\r\nimport { LoginService } from 'app/core/shared/login.service';\r\nimport { GlobalService } from 'app/core/shared/global.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-mandator-wizard',\r\n templateUrl: './mandator-wizard.component.html',\r\n styleUrls: ['./mandator-wizard.component.scss']\r\n})\r\nexport class MandatorWizardComponent implements OnInit, OnDestroy {\r\n\r\n currentPage: MandatorWizardNavigationPaths;\r\n\r\n modelReady: boolean;\r\n\r\n PAGE_DATA = MandatorWizardNavigationPaths.DATA;\r\n PAGE_AGREEMENT = MandatorWizardNavigationPaths.AGREEMENT;\r\n PAGE_CONFIRM = MandatorWizardNavigationPaths.CONFIRM;\r\n PAGE_DONE = MandatorWizardNavigationPaths.DONE;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private service: MandatorWizardService,\r\n private authService: AuthService,\r\n private loginService: LoginService,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n // new mandator\r\n this.currentPage = this.PAGE_DATA;\r\n this.service.startWizard();\r\n this.modelReady = true;\r\n\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) => params.get('id') ? from(this.odataCoreService.Account.Query()\r\n .Filter(x =>\r\n x.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Expand(x => {\r\n x.Expand(\"User\"),\r\n x.Expand(\"Statistics\"),\r\n x.Expand(\"Profile\"),\r\n x.Expand(\"AccountDataProcessingAgreement\", z => {\r\n z.Expand(\"Country\")\r\n })\r\n })\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => {\r\n Utils.mapAllJSONDatesToDates(res[0]);\r\n return Object.assign(new Mandator(), res[0]);\r\n })) : of(null)))\r\n .subscribe(mandator => {\r\n // edit mandator\r\n if (mandator) {\r\n // we need to load countries for country data\r\n this.subscriptions.add(from(this.odataCoreService.Country.Query().OrderBy('Id')\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i))))\r\n .subscribe(countries => {\r\n this.service.editWizard(mandator, countries.find(c => c.Id === mandator.Profile.Address.CountryInfo.Id));\r\n }));\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n save(model: MandatorWizardModel): void {\r\n\r\n \r\n this.odataCoreService.Account.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Account())\r\n .ValueProperty(\"Identity\", model.identity)\r\n .ValueProperty(\"Name\", model.name)\r\n .ValueProperty(\"AccountType\", Operations.AccountTypes.FacilityManagement)\r\n .Exec() \r\n .then(res => {\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .NavigateToArray(\"Profile\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().AccountProfile())\r\n .ValueProperty(\"Name\", model.mandatorName)\r\n .ValueProperty(\"Contact\", model.contact)\r\n .ValueProperty(\"ContactPhone\", model.contactPhone)\r\n .ValueProperty(\"ContactMail\", model.contactMail)\r\n .ValueProperty(\"Address\", this.mapAddress(model.address))\r\n .Exec()\r\n .then(x => {\r\n this.toasterService.pop('info', '', this.translateService.instant('CreateMandator._save_success'));\r\n\r\n // change mandator to this new mandator\r\n this.authService.setMandator(model.identity, true);\r\n let doCall = this.loginService.saveSettings(AuthService.USER_MANDATOR_CONFIG, model.identity);\r\n if (model.agreed) {\r\n // set local storage so that the popup doesn't show up\r\n localStorage.setItem('data_processing_agreement', 'true');\r\n // add sign agreement to the call\r\n doCall = combineLatest(doCall, this.odataCoreService.Account.Get().Key(Guid.parse(model.identity)).Actions().SignDataProcessingAgreementInOperationsOnAccountInOperations().Execute());\r\n }\r\n this.subscriptions.add(doCall.subscribe(any => {\r\n this.processPageChangeRequest(MandatorWizardNavigationPaths.NEXT);\r\n }));\r\n })\r\n });\r\n \r\n }\r\n\r\n processPageChangeRequest(pageChangeEvent: MandatorWizardNavigationPaths): void {\r\n switch (pageChangeEvent) {\r\n case MandatorWizardNavigationPaths.START: {\r\n this.currentPage = this.PAGE_DATA;\r\n break;\r\n }\r\n case MandatorWizardNavigationPaths.EXIT: {\r\n this.router.navigate(['/global', 'mandator']);\r\n break;\r\n }\r\n case MandatorWizardNavigationPaths.NEXT: {\r\n if (this.currentPage === this.PAGE_DATA) {\r\n this.currentPage = this.PAGE_AGREEMENT;\r\n } else if (this.currentPage === this.PAGE_AGREEMENT) {\r\n this.currentPage = this.PAGE_CONFIRM;\r\n } else if (this.currentPage === this.PAGE_CONFIRM) {\r\n this.currentPage = this.PAGE_DONE;\r\n } else if (this.currentPage === this.PAGE_DONE) {\r\n this.router.navigate(['/building', 'wizard']);\r\n }\r\n break;\r\n }\r\n case MandatorWizardNavigationPaths.PREVIOUS: {\r\n if (this.currentPage === this.PAGE_CONFIRM) {\r\n this.currentPage = this.PAGE_AGREEMENT;\r\n } else if (this.currentPage === this.PAGE_AGREEMENT) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case MandatorWizardNavigationPaths.DATA: {\r\n if (this.currentPage === this.PAGE_DATA || this.currentPage === this.PAGE_AGREEMENT || this.currentPage === this.PAGE_CONFIRM) {\r\n this.currentPage = this.PAGE_DATA;\r\n }\r\n break;\r\n }\r\n case MandatorWizardNavigationPaths.AGREEMENT: {\r\n if (this.currentPage === this.PAGE_AGREEMENT || this.currentPage === this.PAGE_CONFIRM) {\r\n this.currentPage = this.PAGE_AGREEMENT;\r\n }\r\n break;\r\n }\r\n case MandatorWizardNavigationPaths.CONFIRM: {\r\n if (this.currentPage === this.PAGE_CONFIRM) {\r\n this.currentPage = this.PAGE_CONFIRM;\r\n }\r\n break;\r\n }\r\n case MandatorWizardNavigationPaths.DONE: {\r\n if (this.currentPage === this.PAGE_DONE) {\r\n this.currentPage = this.PAGE_DONE;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (address.RegionInfo != null && address.RegionInfo.hasOwnProperty('Code')){\r\n entity.Region = address.RegionInfo['Code'];\r\n } \r\n if (address.CountryInfo != null && address.CountryInfo.hasOwnProperty('Code')) {\r\n entity.Country = address.CountryInfo['Code'];\r\n } else {\r\n entity.Country = 'DE';\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n}\r\n\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {Mandator} from './../../../core/model/mandator';\r\nimport {Common, Library} from './../../../core/odata/odata.coreapi';\r\nimport {Utils} from './../../../core/tools/utils';\r\nimport {MandatorWizardModel} from './mandator-wizard-model';\r\n\r\n@Injectable()\r\nexport class MandatorWizardService {\r\n\r\n private model: MandatorWizardModel;\r\n\r\n constructor() {\r\n }\r\n\r\n getCurrentMandator(): MandatorWizardModel {\r\n return this.model;\r\n }\r\n\r\n startWizard(): void {\r\n this.resetCurrentMandator();\r\n }\r\n\r\n resetCurrentMandator(): void {\r\n this.model = new MandatorWizardModel();\r\n this.model.identity = Utils.guid();\r\n this.model.address = {};\r\n this.model.address.CountryInfo = { Id: 1, Name: 'Deutschland' };\r\n }\r\n\r\n editWizard(mandator: Mandator, country: Library.Country, history: boolean = false): void {\r\n this.model.identity = mandator.Identity;\r\n this.model.name = mandator.Name;\r\n if (history && mandator?.AccountDataProcessingAgreement) {\r\n this.model.mandatorName = mandator?.AccountDataProcessingAgreement.Name;\r\n this.model.address.Street = mandator?.AccountDataProcessingAgreement.Street;\r\n this.model.address.No = mandator?.AccountDataProcessingAgreement.HouseNo;\r\n this.model.address.PostCode = mandator?.AccountDataProcessingAgreement.ZipCode;\r\n this.model.address.City = mandator?.AccountDataProcessingAgreement.City;\r\n this.model.address.CountryInfo = mandator?.AccountDataProcessingAgreement.Country;\r\n } else {\r\n this.model.mandatorName = mandator.Profile.Name;\r\n this.model.address.Street = mandator.Profile.Address.Street;\r\n this.model.address.No = mandator.Profile.Address.No;\r\n this.model.address.PostCode = mandator.Profile.Address.PostCode;\r\n this.model.address.City = mandator.Profile.Address.City;\r\n this.model.address.CountryInfo = mandator.Profile.Address.CountryInfo;\r\n }\r\n this.model.contact = mandator.Profile.Contact;\r\n this.model.contactPhone = mandator.Profile.ContactPhone;\r\n this.model.contactMail = mandator.Profile.ContactMail;\r\n this.model.agreed = !!(mandator?.AccountDataProcessingAgreement);\r\n this.model.oldAgreed = !!(mandator?.AccountDataProcessingAgreement);\r\n this.model.editMode = true;\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Subscription, timer} from 'rxjs';\r\nimport {take} from 'rxjs/operators';\r\n\r\nimport {AuthService} from './../../../core/auth/auth.service';\r\n\r\n@Component({\r\n selector: 'app-advanced',\r\n templateUrl: './advanced.component.html',\r\n styleUrls: ['./advanced.component.scss']\r\n})\r\nexport class AdvancedComponent implements OnInit, OnDestroy {\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n timer(1).pipe(take(1)).subscribe(res => {\r\n // unsubscribe from advanced mode has an additional url segment\r\n const additionalUrl = this.route.snapshot.firstChild.url;\r\n this.authService.advancedMode = !(additionalUrl && additionalUrl.length);\r\n this.router.navigate(['/dashboard']);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { Subscription, Observable, from } from \"rxjs\";\r\nimport { Common, Operations, PropertyCore, ObjektBrief } from \"../../core/odata/odata.coreapi\";\r\nimport { AuthService } from \"./../../core/auth/auth.service\";\r\nimport { ConfirmationModal } from \"./../../core/popup/confirmation.modal\";\r\nimport { Utils } from \"./../../core/tools/utils\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { Mandator } from \"../../core/model/mandator\";\r\nimport { LoginService } from \"app/core/shared/login.service\";\r\nimport { GlobalService } from \"app/core/shared/global.service\";\r\n\r\n@Component({\r\n selector: \"app-profile\",\r\n templateUrl: \"./profile.component.html\",\r\n styleUrls: [\"./profile.component.scss\"],\r\n})\r\nexport class ProfileComponent implements OnInit, OnDestroy {\r\n isNewUser: boolean;\r\n accessCode: string;\r\n invitation: string;\r\n\r\n hasMandators: boolean;\r\n mandatorName: string;\r\n mandatorAddress: Common.Address = { CountryInfo: { Id: 1, Name: \"Deutschland\" } };\r\n\r\n model: Operations.User;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private toasterService: ToasterService,\r\n private loginService: LoginService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService,\r\n private globalService: GlobalService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.queryParamMap.subscribe((params) => {\r\n this.isNewUser = params.get(\"isNewUser\") ? params.get(\"isNewUser\") === \"true\" : false;\r\n this.accessCode = params.get(\"accessCode\");\r\n this.invitation = params.get(\"invitation\");\r\n\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.User.Query()\r\n .Filter((x) => x.EqualsField(\"Identity\", Guid.parse(localStorage.getItem(\"infoUserIdentity\"))))\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(map((res) => Utils.mapAllJSONDatesToDates(res[0])))\r\n .subscribe((profile) => {\r\n this.model = profile;\r\n })\r\n );\r\n\r\n if (this.isNewUser) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Account.Query()\r\n .OrderBy(\"Name\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Mandator(), i);\r\n })\r\n )\r\n )\r\n .subscribe((mandators) => {\r\n if (\r\n mandators &&\r\n mandators.length &&\r\n ((!this.accessCode && !this.invitation) ||\r\n (this.accessCode &&\r\n this.invitation &&\r\n mandators.filter((m) => m.AccountType === Operations.AccountTypes.ServiceProvider).length))\r\n ) {\r\n this.hasMandators = true;\r\n }\r\n })\r\n );\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n\r\n this.odataCoreService.User.Patch()\r\n .Key(Guid.parse(this.model.Identity))\r\n .ValueType(this.odataCoreService.ODataTypes().User())\r\n .ValueProperty(\"Email\", this.model.Email)\r\n .ValueProperty(\"FirstName\", this.model.FirstName)\r\n .ValueProperty(\"LastName\", this.model.LastName)\r\n .ValueProperty(\"IsMale\", this.model.IsMale)\r\n .ValueProperty(\"IsReportSubscribed\", this.model.IsReportSubscribed)\r\n .Exec()\r\n .then((x) => {\r\n this.toasterService.pop(\"success\", \"\", this.translateService.instant(\"Profile.save_success\"));\r\n localStorage.setItem(\"infoUserName\", this.model.FirstName);\r\n localStorage.setItem(\"infoUserSurname\", this.model.LastName);\r\n localStorage.setItem(\"infoUserEmail\", this.model.Email);\r\n\r\n if (this.isNewUser) {\r\n if (!this.hasMandators) {\r\n // create mandator\r\n const guid = Utils.guid();\r\n\r\n this.odataCoreService.Account.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Account())\r\n .ValueProperty(\"Identity\", guid)\r\n .ValueProperty(\"Name\", this.mandatorName)\r\n .ValueProperty(\r\n \"AccountType\",\r\n this.accessCode && this.invitation\r\n ? Operations.AccountTypes.ServiceProvider\r\n : Operations.AccountTypes.FacilityManagement\r\n )\r\n .Exec()\r\n .then((res) => {\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .NavigateToArray(\"Profile\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().AccountProfile())\r\n .ValueProperty(\"Name\", this.mandatorName)\r\n .ValueProperty(\"Contact\", this.model.FirstName + \" \" + this.model.LastName)\r\n .ValueProperty(\"ContactMail\", this.model.Email)\r\n .ValueProperty(\"Address\", this.mapAddress(this.mandatorAddress))\r\n .Exec()\r\n .then((x) => {\r\n // change mandator to this new mandator\r\n this.authService.setMandator(guid, true);\r\n this.subscriptions.add(\r\n this.loginService.saveSettings(AuthService.USER_MANDATOR_CONFIG, guid).subscribe((any) => {\r\n // do not show adv until next login\r\n localStorage.setItem(\"data_processing_agreement\", \"true\");\r\n\r\n // service provider mandator does not have building wizard, instead accept invitation\r\n if (this.accessCode && this.invitation) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(guid))\r\n .Actions()\r\n .AcceptInvitationInOperationsOnAccountInOperations()\r\n .Parameters(this.invitation, this.accessCode)\r\n .Execute()\r\n ).subscribe(() => {\r\n this.router.navigate([\"/dashboard\"]);\r\n })\r\n );\r\n } else {\r\n // user has mandator but no building\r\n this.router.navigate([\"/building\", \"wizard\"]);\r\n }\r\n })\r\n );\r\n });\r\n });\r\n } else {\r\n // service provider mandator does not have building wizard, redirect to page where user can select service provider account\r\n if (this.accessCode && this.invitation) {\r\n this.router.navigate([\"/global/service-provider\"], {\r\n queryParams: {\r\n accessCode: this.accessCode,\r\n invitation: this.invitation,\r\n },\r\n });\r\n } else {\r\n // check building count\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Count()\r\n .then((count) => {\r\n if (count) {\r\n this.router.navigate([\"/dashboard\"]);\r\n } else {\r\n // user has mandator but no building\r\n this.router.navigate([\"/building\", \"wizard\"]);\r\n }\r\n })\r\n ).subscribe()\r\n );\r\n }\r\n }\r\n } else {\r\n this.router.navigate([\"/dashboard\"]);\r\n }\r\n });\r\n }\r\n\r\n cancel(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.title = this.translateService.instant(\"Profile._modal_title\");\r\n modalRef.componentInstance.message = this.translateService.instant(\"Profile._modal_message\");\r\n modalRef.componentInstance.yesButton = this.translateService.instant(\"Profile._modal_yes\");\r\n modalRef.componentInstance.cancelButton = this.translateService.instant(\"Profile._modal_cancel\");\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n this.router.navigate([\"/dashboard\"]);\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n } else {\r\n this.router.navigate([\"/dashboard\"]);\r\n }\r\n }\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (address?.RegionInfo != null && address.RegionInfo.hasOwnProperty(\"Code\")) {\r\n entity.Region = address.RegionInfo[\"Code\"];\r\n }\r\n if (address?.CountryInfo != null && address.CountryInfo.hasOwnProperty(\"Code\")) {\r\n entity.Country = address.CountryInfo[\"Code\"];\r\n } else {\r\n entity.Country = \"DE\";\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {ToasterService} from 'angular2-toaster';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {AuthService} from './../../core/auth/auth.service';\r\nimport {Common, Operations, ObjektBrief} from './../../core/odata/odata.coreapi';\r\nimport {Utils} from './../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataCoreService } from './../../core/odata-services/odata.coreapi.service';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\nimport { Guid } from 'guid-typescript';\r\nimport { LoginService } from 'app/core/shared/login.service';\r\n\r\n@Component({\r\n selector: 'app-service-provider',\r\n templateUrl: './service-provider.component.html',\r\n styleUrls: ['./service-provider.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ServiceProviderComponent implements OnInit, OnDestroy {\r\n\r\n mandators: Operations.Account[];\r\n\r\n searchFilter: string = '';\r\n\r\n formSubmitted: boolean;\r\n\r\n accessCode: string;\r\n invitation: string;\r\n\r\n @ViewChild('serviceContactPopupContent', { static: true })\r\n serviceContactPopupContent: any;\r\n mandatorName: string;\r\n mandatorAddress: Common.Address = {CountryInfo: {Id: 1, Name: 'Deutschland'}};\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private loginService: LoginService,\r\n private translateService: TranslateService,\r\n private toasterService: ToasterService,\r\n private modalService: NgbModal,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.route.queryParamMap.subscribe(params => {\r\n this.accessCode = params.get('accessCode');\r\n this.invitation = params.get('invitation');\r\n\r\n if (!this.accessCode || !this.invitation) {\r\n this.toasterService.pop('warning', '', this.translateService.instant('ServiceProvider.load_error'));\r\n this.router.navigate(['/dashboard']);\r\n } else {\r\n this.subscriptions.add(from(this.odataCoreService.Account.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"AccountType\", Operations.AccountTypes.ServiceProvider), true))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(mandators => {\r\n this.mandators = mandators;\r\n }));\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n newServiceProvider() {\r\n this.modalService.open(this.serviceContactPopupContent, {windowClass: 'service-contact-modal'}).result.then(result => {\r\n // create mandator\r\n\r\n const guid = Utils.guid();\r\n this.odataCoreService.Account.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().Account())\r\n .ValueProperty(\"Identity\", Guid.parse(guid))\r\n .ValueProperty(\"Name\", this.mandatorName) \r\n .ValueProperty(\"AccountType\",Operations.AccountTypes.ServiceProvider)\r\n .Exec()\r\n .then(res => {\r\n\r\n this.odataCoreService.Account.Get()\r\n .Key(Guid.parse(res.Identity))\r\n .NavigateToArray(\"Profile\")\r\n .Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().AccountProfile())\r\n .ValueProperty(\"Name\", this.mandatorName)\r\n .ValueProperty(\"Contact\", localStorage.getItem('infoUserName') + ' ' + localStorage.getItem('infoUserSurname'))\r\n .ValueProperty(\"ContactMail\", this.authService.getUserEmail())\r\n .ValueProperty(\"Address\", this.mapAddress(this.mandatorAddress))\r\n .Exec()\r\n .then(x => {\r\n \r\n // reload service provider mandators\r\n this.subscriptions.add(from(this.odataCoreService.Account.Query()\r\n .OrderBy(\"Name\")\r\n .Filter(x => x\r\n .Equals(ODataPath.For(\"AccountType\", Operations.AccountTypes.ServiceProvider), true))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(mandators => {\r\n this.mandators = mandators;\r\n }));\r\n\r\n });\r\n });\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n });\r\n }\r\n\r\n acceptServiceProvider(mandator: Operations.Account) {\r\n this.subscriptions.add(from(this.odataCoreService.Account.Get().Key(Guid.parse(mandator.Identity)).Actions().AcceptInvitationInOperationsOnAccountInOperations().Parameters(this.invitation, this.accessCode)\r\n .Execute()).subscribe(() => {\r\n this.toasterService.pop('info', '', this.translateService.instant('ServiceProvider.accept_success'));\r\n\r\n // change mandator to the selected mandator\r\n this.authService.setMandator(mandator.Identity, true);\r\n this.subscriptions.add(this.loginService.saveSettings(AuthService.USER_MANDATOR_CONFIG, mandator.Identity).subscribe(any => {\r\n this.router.navigate(['/dashboard']);\r\n }));\r\n }));\r\n }\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (address?.RegionInfo != null && address.RegionInfo.hasOwnProperty('Code')){\r\n entity.Region = address.RegionInfo['Code'];\r\n } \r\n if (address?.CountryInfo != null && address.CountryInfo.hasOwnProperty('Code')) {\r\n entity.Country = address.CountryInfo['Code'];\r\n } else {\r\n entity.Country = 'DE';\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-specification-of-services',\r\n templateUrl: './specification-of-services.component.html',\r\n styleUrls: ['./specification-of-services.component.scss']\r\n})\r\nexport class SpecificationOfServicesComponent {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-terms-of-use',\r\n templateUrl: './terms-of-use.component.html',\r\n styleUrls: ['./terms-of-use.component.scss']\r\n})\r\nexport class TermsOfUseComponent {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { from, Observable, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Mandator } from '../core/model/mandator';\r\nimport { ODataCoreService } from '../core/odata-services/odata.coreapi.service';\r\nimport { Utils } from '../core/tools/utils';\r\n\r\n\r\n@Component({\r\n selector: 'app-login-landing',\r\n templateUrl: './login-landing.component.html',\r\n})\r\nexport class LoginLandingComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.odataCoreService.Building.Query()\r\n .Count()\r\n .then(x => {\r\n let buildingCount = x;\r\n if (buildingCount == 0) {\r\n this.router.navigate(['building/wizard']);\r\n return;\r\n }\r\n this.router.navigate(['dashboard']);\r\n })\r\n .catch(x => {\r\n this.router.navigate(['logout']);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ToasterService } from \"angular2-toaster\";\r\nimport { from, Observable, Subscription } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { Mandator } from \"../core/model/mandator\";\r\nimport { ODataCoreService } from \"../core/odata-services/odata.coreapi.service\";\r\nimport { Utils } from \"../core/tools/utils\";\r\nimport { AuthService } from \"./../core/auth/auth.service\";\r\nimport { GlobalService } from \"./../core/shared/global.service\";\r\n\r\n@Component({\r\n selector: \"app-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n loginError: string;\r\n registerError: string;\r\n\r\n username: string;\r\n password: string;\r\n email: string;\r\n\r\n accessCode: string;\r\n invitation: string;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private globalService: GlobalService,\r\n private toasterService: ToasterService,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.queryParamMap.subscribe((params) => {\r\n this.accessCode = params.get(\"AccessCode\");\r\n this.invitation = params.get(\"Invitation\");\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n login(username: string, password: string): void {\r\n this.subscriptions.add(\r\n this.authService.login(username, password).subscribe((loggedIn) => {\r\n this.loginError = \"\";\r\n if (loggedIn && loggedIn.length && loggedIn[0]) {\r\n loggedIn = loggedIn[0];\r\n if (loggedIn.error) {\r\n this.loginError = loggedIn.error_description;\r\n switch (loggedIn.error) {\r\n case \"invalid_grant\":\r\n // console.log('loggedIn.error invalid_grant');\r\n this.loginError = this.translateService.instant(\"Login._div_coupleInvalid\");\r\n break;\r\n case \"account_expired\":\r\n // console.log('loggedIn.error account_expired');\r\n break;\r\n case \"password_expired\":\r\n // console.log('loggedIn.error password_expired');\r\n this.router.navigate([\"/global/change-password\"], {\r\n queryParams: {\r\n username: username,\r\n password: password,\r\n accessCode: this.accessCode,\r\n invitation: this.invitation,\r\n },\r\n });\r\n break;\r\n case \"missing_permission\":\r\n // console.log('loggedIn.error missing_permission');\r\n break;\r\n case \"impersonation_notfound\":\r\n // console.log('loggedIn.error impersonation_notfound');\r\n break;\r\n default:\r\n // console.log('loggedIn.error other');\r\n break;\r\n }\r\n } else {\r\n this.globalService.isUserValid(username, false).subscribe((isPwUnchanged) => {\r\n // first login\r\n if (isPwUnchanged) {\r\n this.toasterService.pop(\r\n \"warning\",\r\n \"\",\r\n this.translateService.instant(\"AppComponent._user_status_error\")\r\n );\r\n this.router.navigate([\"/global/change-password\"], {\r\n queryParams: {\r\n username: username,\r\n password: password,\r\n accessCode: this.accessCode,\r\n invitation: this.invitation,\r\n },\r\n });\r\n } else {\r\n if (this.accessCode && this.invitation) {\r\n this.router.navigate([\"/global/service-provider\"], {\r\n queryParams: {\r\n accessCode: this.accessCode,\r\n invitation: this.invitation,\r\n },\r\n });\r\n } else {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Account.Query()\r\n .OrderBy(\"Name\")\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n .pipe(\r\n map((res) =>\r\n res.map((i) => {\r\n Utils.mapAllJSONDatesToDates(i);\r\n return Object.assign(new Mandator(), i);\r\n })\r\n )\r\n )\r\n .subscribe((mandators) => {\r\n if (mandators && mandators.length) {\r\n this.subscriptions.add(\r\n from(\r\n this.odataCoreService.Building.Query()\r\n .Count()\r\n .then((count) => {\r\n if (count) {\r\n this.subscriptions.add(\r\n this.route.queryParamMap.subscribe((params) => {\r\n const returnUrl = params.get(\"returnUrl\");\r\n if (returnUrl) {\r\n this.router.navigateByUrl(returnUrl);\r\n } else {\r\n this.router.navigate([\"/dashboard\"]);\r\n }\r\n })\r\n );\r\n } else {\r\n this.router.navigate([\"/building\", \"wizard\"]);\r\n }\r\n })\r\n ).subscribe()\r\n );\r\n } else {\r\n this.toasterService.pop(\r\n \"info\",\r\n \"\",\r\n this.translateService.instant(\"AppComponent._no_mandator\")\r\n );\r\n this.router.navigate([\"/global/mandator/wizard\"]);\r\n }\r\n })\r\n );\r\n }\r\n }\r\n });\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n register(email: string): void {\r\n this.registerError = \"\";\r\n this.subscriptions.add(\r\n this.globalService.register(email).subscribe((pwd) => {\r\n if (!pwd) {\r\n this.registerError = \"E-Mail ist bereits registriert, bitte loggen Sie sich ein.\";\r\n } else {\r\n console.log(\"login.component: \" + email);\r\n this.login(email, pwd);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { AuthService } from './../core/auth/auth.service';\r\nimport { AppConfig } from './../core/bootstrap/app.config';\r\n\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n styleUrls: ['./logout.component.scss']\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private authService: AuthService,\r\n private conf: AppConfig\r\n ) { }\r\n\r\n ngOnInit() {\r\n window.location.replace(this.conf.getLogoutUrl());\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { NewsService } from './news.service';\r\nimport { LoginService } from 'app/core/shared/login.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ODataPath } from 'app/core/odata/odataclient';\r\nimport { Guid } from 'guid-typescript';\r\nimport { ODataCoreService } from 'app/core/odata-services/odata.coreapi.service';\r\nimport { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-news',\r\n templateUrl: './news.component.html',\r\n styleUrls: ['./news.component.scss']\r\n})\r\nexport class NewsComponent implements OnInit, OnDestroy {\r\n currentTab: string;\r\n notificationCount: number = 0;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private newsService: NewsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private loginService: LoginService,\r\n private odataCoreService: ODataCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['notifications'] } }], { relativeTo: this.route });\r\n this.currentTab = 'notifications';\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n\r\n this.subscriptions.add(this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd), map(() => this.route))\r\n .subscribe((event) => {\r\n if (!this.route.firstChild) {\r\n // redirect to route with tabs outlet set to default value\r\n this.router.navigate([{ outlets: { tab: ['notifications'] } }], { relativeTo: this.route });\r\n } else {\r\n // activate correct tab\r\n const path = this.route.firstChild.routeConfig.path;\r\n this.currentTab = path;\r\n }\r\n }));\r\n this.subscriptions.add(this.newsService.registerForChange().pipe(switchMap(x =>\r\n this.loginService.readSettings('Ob2Webclient_LastNotificationDate_' + localStorage.getItem('mandator'))\r\n .pipe(switchMap(date => {\r\n let cutoff = new Date();\r\n cutoff.setDate(cutoff.getDate() - 30);\r\n if (date) {\r\n const cutoff2 = new Date(date);\r\n if (cutoff.getTime() < cutoff2.getTime()) {\r\n cutoff = cutoff2;\r\n }\r\n }\r\n\r\n return this.odataCoreService.ActionLog.Query()\r\n .Filter(x => x\r\n .GreaterThanOrEquals(\"Created\", cutoff))\r\n .Count()\r\n .then(x => x);\r\n }))\r\n ))\r\n .subscribe(res2 => this.notificationCount = +res2));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onNavChange(changeEvent: NgbNavChangeEvent) {\r\n this.router.navigate([{ outlets: { tab: [changeEvent.nextId] } }], { relativeTo: this.route });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { AuthGuard } from './../core/auth/auth-guard.service';\r\nimport { CoreModule } from './../core/core.module';\r\nimport { NewsComponent } from './news.component';\r\nimport { NewsService } from './news.service';\r\nimport { NotificationComponent } from './notification/notification.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'news',\r\n canActivate: [AuthGuard],\r\n children: [\r\n { path: '', redirectTo: 'view', pathMatch: 'full' },\r\n {\r\n path: 'view',\r\n component: NewsComponent,\r\n children: [\r\n {\r\n path: 'notifications',\r\n component: NotificationComponent,\r\n outlet: 'tab'\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgbModule,\r\n RouterModule.forChild(routes),\r\n CoreModule\r\n ],\r\n declarations: [\r\n NewsComponent,\r\n NotificationComponent\r\n ],\r\n exports: [RouterModule],\r\n providers: [NewsService]\r\n})\r\nexport class NewsModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { combineLatest, Observable, Subject, timer } from 'rxjs';\r\nimport { startWith} from 'rxjs/operators';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class NewsService {\r\n\r\n private _notificationChangedSubject: Subject = new Subject();\r\n\r\n constructor() {\r\n }\r\n\r\n registerForChange(): Observable<[boolean, number]> {\r\n // every 60 seconds or when mark as read was called\r\n return combineLatest(this._notificationChangedSubject.asObservable().pipe(startWith(true)), timer(0, 60000));\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { Notification } from './../../core/model/notification';\r\nimport { NewsService } from './../news.service';\r\nimport { LoginService } from 'app/core/shared/login.service';\r\nimport { ODataCoreService } from 'app/core/odata-services/odata.coreapi.service';\r\nimport { PropertyCore, ActionLogEntityGetOperation } from 'app/core/odata/odata.coreapi';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-news-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss']\r\n})\r\nexport class NotificationComponent implements OnInit, OnDestroy {\r\n\r\n searchFilter: string = '';\r\n\r\n notifications: PropertyCore.ActionLog[];\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private newsService: NewsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private loginService: LoginService,\r\n private odataCoreService: ODataCoreService,\r\n private translateService: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.loginService.readSettings('MarkAsRead')\r\n .subscribe(res => {}));\r\n\r\n this.odataCoreService.ActionLog.Query()\r\n .Expand(x => {\r\n x.Expand(\"Building\")\r\n x.Expand(\"Equipment\")\r\n x.Expand(\"Module\")\r\n x.Expand(\"Event\")\r\n x.Expand(\"Document\")\r\n x.Expand(\"MaintenanceContract\")\r\n x.Expand(\"ServiceProvider\")\r\n })\r\n .OrderBy(\"Created\", \"desc\")\r\n .Exec()\r\n .then(res => {\r\n this.notifications = res.value\r\n\r\n this.notifications.forEach(notification => {\r\n switch(notification.Operation){\r\n case PropertyCore.ActionLogOperations.Undefined:\r\n notification['Text'] = 'Operation NONE';\r\n break;\r\n case PropertyCore.ActionLogOperations.Create:\r\n notification['Text'] = 'Erstellt';\r\n\r\n switch(notification.Element){\r\n case PropertyCore.ActionLogElements.Undefined:\r\n if(notification.ModuleId != null) {\r\n notification['Text'] = \"Neue Baugruppe wurde angelegt: \" + notification.Module?.Name;\r\n } else if (notification.EquipmentId != null) {\r\n notification['Text'] = \"Neue Anlage wurde angelegt: \" + notification.Equipment?.Name;\r\n } else if (notification.BuildingId != null) {\r\n notification['Text'] = \"Neues Gebäude wurde angelegt: \" + notification.Building?.Name;\r\n } else if (notification.ServiceProviderId != null) {\r\n notification['Text'] = \"Neuer Dienstleister wurde angelegt: \" + notification.ServiceProvider?.Name\r\n } else if (notification.MaintenanceContractId != null) {\r\n notification['Text'] = \"Neuer Wartungsvertrag wurde angelegt: \" + notification.MaintenanceContract?.Title;\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Document:\r\n notification['Text'] = \"Erstellt Dokument\";\r\n if (notification.EquipmentId != null) {\r\n if(notification.Document?.IsVirtual == true){\r\n notification['Text'] = \"Für Anlagendokumentation an \" + notification.Equipment?.Name + \" wurde Ablageort bestimmt: \" + notification.Document?.Name;\r\n } else {\r\n notification['Text'] = \"Neue Anlagendokumentation wurde an \" + notification.Equipment?.Name + \" hinterlegt: \" + notification.Document?.Name;\r\n }\r\n } else if (notification.BuildingId != null){\r\n if (notification.Document?.IsVirtual == true) {\r\n notification['Text'] = \"Für Gebäudedokumentation an \" + notification.Building?.Name + \" wurde Ablageort bestimmt: \" + notification.Document?.Name;\r\n }\r\n else {\r\n notification['Text'] = \"Neue Gebäudedokumentation wurde an \" + notification.Building?.Name + \" hinterlegt: \" + notification.Document?.Name;\r\n }\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Image:\r\n notification['Text'] = \"Erstellt Bild\";\r\n if(notification.ModuleId != null){\r\n notification['Text'] = \"Neues Bild wurde an \" + notification.Module?.Name + \" hinterlegt\";\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Neues Bild wurde an \" + notification.Equipment?.Name + \" hinterlegt\";\r\n } else if (notification.BuildingId != null){\r\n notification['Text'] = \"Neues Bild wurde an \" + notification.Building?.Name + \" hinterlegt\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Attribute:\r\n notification['Text'] = \"Erstellt Merkmal\";\r\n break;\r\n \r\n case PropertyCore.ActionLogElements.Link:\r\n notification['Text'] = \"Neue Verknüpfung der Anlage \" + notification.Equipment?.Name + \" mit dem Wartungsvertrag \\\"\" + notification.MaintenanceContract?.Title + \"\\\" erzeugt\";\r\n break;\r\n \r\n case PropertyCore.ActionLogElements.Event:\r\n if(notification.ModuleId != null){\r\n notification['Text'] = \"Neue Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Equipment?.Name + \" wurde erstellt\";\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Neue Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Equipment?.Name + \" wurde erstellt\";\r\n } else {\r\n notification['Text'] = \"Neue Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Building?.Name + \" wurde erstellt\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Application:\r\n notification['Text'] = \"Erstellt Anwendung\";\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.InspectionDuty:\r\n notification['Text'] = \"Erstellt Inspektionspflicht\";\r\n if(notification.ModuleId != null){\r\n notification['Text'] = \"Neue Prüfpflicht an \" + notification.Module?.Name + \" aktiviert\";;\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Neue Prüfpflicht an \" + notification.Equipment?.Name + \" aktiviert\";;\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.AndroidApp:\r\n notification['Text'] = \"Erstellt Android-App\";\r\n break;\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogOperations.Update:\r\n notification['Text'] = \"Bearbeitet\";\r\n switch(notification.Element) {\r\n case PropertyCore.ActionLogElements.Undefined: \r\n if (notification.ModuleId != null){\r\n notification['Text'] = \"Stammdaten einer Baugruppe wurden bearbeitet: \" + notification.Module?.Name;\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Stammdaten einer Anlage wurden bearbeitet: \" + notification.Equipment?.Name;\r\n } else if (notification.BuildingId != null){\r\n notification['Text'] = \"Stammdaten eines Gebäudes wurden bearbeitet: \" + notification.Building?.Name;\r\n } else if (notification.ServiceProviderId != null){\r\n notification['Text'] = \"Stammdaten eines Dienstleisters wurden bearbeitet: \" + notification.ServiceProvider?.Name;\r\n } else if (notification.MaintenanceContractId != null){\r\n notification['Text'] = \"Stammdaten eines Wartungsvertrags wurden bearbeitet: \" + notification.MaintenanceContract?.Title;\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Document:\r\n notification['Text'] = \"Bearbeitet Dokument\";\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Image:\r\n notification['Text'] = \"Bearbeitet Bild\";\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Attribute:\r\n notification['Text'] = \"Bearbeitet Merkmal\";\r\n if (notification.ModuleId != null){\r\n notification['Text'] = \"Merkmale an \" + notification.Module?.Name + \" wurden bearbeitet\";\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Merkmale an \" + notification.Equipment?.Name + \" wurden bearbeitet\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Link:\r\n notification['Text'] = \"Bearbeitet Verknüpfung\";\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Event:\r\n if (notification.ModuleId != null){\r\n notification['Text'] = \"Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '')+ \" an \" + notification.Equipment?.Name + \" wurde bearbeitet\";\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Equipment?.Name + \" wurde bearbeitet\";\r\n } else {\r\n notification['Text'] = \"Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Building?.Name + \" wurde bearbeitet\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Application:\r\n notification['Text'] = \"Bearbeitet Anwendung\";\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.InspectionDuty:\r\n notification['Text'] = \"Bearbeitet Inspektionspflicht\";\r\n if (notification.ModuleId != null){\r\n notification['Text'] = \"Prüfpflicht an \" + notification.Module?.Name + \" wurde bearbeitet\";\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Prüfpflicht an \" + notification.Equipment?.Name + \" wurde bearbeitet\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.AndroidApp:\r\n notification['Text'] = \"Bearbeitet Android-App\";\r\n break;\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogOperations.Delete:\r\n notification['Text'] = \"Gelöscht\";\r\n switch (notification.Element) {\r\n case PropertyCore.ActionLogElements.Undefined:\r\n if (notification.ModuleId != null){\r\n notification['Text'] = \"Baugruppe wurde gelöscht: \" + notification.Module?.Name;\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Anlage wurde gelöscht: \" + notification.Equipment?.Name;\r\n } else if (notification.BuildingId != null){\r\n notification['Text'] = \"Gebäude wurde gelöscht: \" + notification.Building?.Name;\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Document:\r\n notification['Text'] = \"Gelöscht Dokument\";\r\n if (notification.ModuleId != null){\r\n notification['Text'] = \"Für Anlagendokumentation an \" + notification.Equipment?.Name + \" wurde Ablageort entfernt: \" + notification.Document?.Name;\r\n } else if (notification.EquipmentId != null){\r\n if(notification.Document?.IsVirtual == true){\r\n notification['Text'] = \"Für Anlagendokumentation an \" + notification.Equipment?.Name + \" wurde Ablageort entfernt: \" + notification.Document?.Name;\r\n } else {\r\n notification['Text'] = \"Anlagendokumentation wurde an \" + notification.Equipment?.Name + \" gelöscht: \" + notification.Document?.Name;\r\n }\r\n } else if (notification.BuildingId != null){\r\n if(notification.Document?.IsVirtual == true){\r\n notification['Text'] = \"Für Gebäudedokumentation an \" + notification.Building?.Name + \" wurde Ablageort entfernt: \" + notification.Document?.Name;\r\n } else {\r\n notification['Text'] = \"Gebäudedokumentation wurde an \" + notification.Building?.Name +\" gelöscht: \" + notification.Document?.Name;\r\n }\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Image:\r\n notification['Text'] = \"Gelöscht Bild\";\r\n if (notification.ModuleId != null){\r\n notification['Text'] = \"Bild an \" + notification.Module?.Name + \" wurde gelöscht\";\r\n } else if (notification.EquipmentId != null){\r\n notification['Text'] = \"Bild an \" + notification.Equipment?.Name + \" wurde gelöscht\";\r\n } else if (notification.BuildingId != null){\r\n notification['Text'] = \"Bild an \" + notification.Building?.Name + \" wurde gelöscht\";\r\n }\r\n break;\r\n \r\n case PropertyCore.ActionLogElements.Attribute:\r\n notification['Text'] = \"Gelöscht Merkmal\";\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Link:\r\n notification['Text'] = \"Verknüpfung der Anlage \" + notification.Equipment?.Name + \" mit dem Wartungsvertrag \\\"\" + notification.MaintenanceContract?.Title + \"\\\" wurde entfernt\";\r\n break;\r\n \r\n case PropertyCore.ActionLogElements.Event:\r\n if (notification.ModuleId != null) {\r\n notification['Text'] = \"Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Equipment?.Name + \" wurde gelöscht\";\r\n }\r\n else if (notification.EquipmentId != null) {\r\n notification['Text'] = \"Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Equipment?.Name + \" wurde gelöscht\";\r\n }\r\n else {\r\n notification['Text'] = \"Tätigkeit \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Building?.Name + \" wurde gelöscht\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.Application:\r\n notification['Text'] = \"Gelöscht Anwendung\";\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.InspectionDuty:\r\n notification['Text'] = \"Gelöscht Inspektionspflicht\";\r\n if (notification.ModuleId != null) {\r\n notification['Text'] = \"Prüfpflicht an \" + notification.Module?.Name + \" deaktiviert\";\r\n }\r\n else if (notification.EquipmentId != null) {\r\n notification['Text'] = \"Prüfpflicht an \" + notification.Equipment?.Name + \" deaktiviert\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogElements.AndroidApp:\r\n notification['Text'] = \"Gelöscht Android-App\";\r\n break;\r\n }\r\n break;\r\n \r\n case PropertyCore.ActionLogOperations.Feedback:\r\n notification['Text'] = \"Feedback\";\r\n if (notification.ModuleId != null) {\r\n notification['Text'] = \"Neue Rückmeldung bei \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Module?.Name + \" wurde durchgeführt\";\r\n }\r\n else if (notification.EquipmentId != null) {\r\n notification['Text'] = \"Neue Rückmeldung bei \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Equipment?.Name + \" wurde durchgeführt\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogOperations.Qualified:\r\n notification['Text'] = \"Qualifiziert\";\r\n if (notification.ModuleId != null) {\r\n notification['Text'] = \"Neues Dokument \\\"\" + notification.Document?.Name + \"\\\" wurde bei der \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Module?.Name + \" hinterlegt\";\r\n }\r\n else if (notification.EquipmentId != null) {\r\n notification['Text'] = \"Neues Dokument \\\"\" + notification.Document?.Name + \"\\\" wurde bei der \" + (notification.Event?.Type != null ? this.translateService.instant('EventType.' + notification.Event?.Type) : '') + \" an \" + notification.Equipment?.Name + \" hinterlegt\";\r\n }\r\n break;\r\n\r\n case PropertyCore.ActionLogOperations.Download:\r\n notification['Text'] = \"Autom. Download\";\r\n break;\r\n\r\n default:\r\n notification['Text'] = '';\r\n break;\r\n } \r\n })\r\n }\r\n )\r\n\r\n // this.subscriptions.add(this.newsService.registerForChange().pipe(switchMap(x => this.newsService.getNotifications()))\r\n // .subscribe(res => {\r\n // this.notifications = res;\r\n // }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n navigate(notification: PropertyCore.ActionLog) {\r\n if (notification.Module) {\r\n if (notification['Text'].startsWith('Merkmale')) {\r\n // changed install module features\r\n this.router.navigate([\r\n '/building',\r\n notification.Building?.Identity,\r\n { outlets: { left: ['equipment', notification.Equipment?.Identity, 'view', { outlets: { tab: ['modules']}}], right: ['equipment', 'module', notification.Module?.Identity, { outlets: { tab: ['features']}}]}}]);\r\n } else {\r\n this.router.navigate([\r\n '/building',\r\n notification.Building?.Identity,\r\n { outlets: { left: ['equipment', notification.Equipment?.Identity, 'view', { outlets: { tab: ['modules']}}], right: ['equipment', 'module', notification.Module?.Identity, { outlets: { tab: ['details']}}]}}]);\r\n }\r\n } else if (notification.Equipment?.Identity) {\r\n if (notification?.Document) {\r\n // added document to install equipment\r\n this.router.navigate(['/building', notification.Building?.Identity, { outlets: { left: ['list'], right: ['document', { outlets: { tab: ['building-equipment'] } }]}}]);\r\n } else if (notification['Text'].startsWith('Merkmale')) {\r\n // changed install equipment features\r\n this.router.navigate([\r\n '/building',\r\n notification.Building?.Identity,\r\n { outlets: { left: ['building', 'view', { outlets: { tab: ['equipment'] } }], right: ['equipment', notification.Equipment?.Identity, 'view', { outlets: { tab: ['features'] } }] } }\r\n ]);\r\n } else if (notification.Module) {\r\n // deleted install module from install equipment\r\n this.router.navigate([\r\n '/building',\r\n notification.Building?.Identity,\r\n { outlets: { left: ['building', 'view', { outlets: { tab: ['equipment'] } }], right: ['equipment', notification.Equipment?.Identity, 'view', { outlets: { tab: ['modules'] } }] } }\r\n ]);\r\n } else if (notification.MaintenanceContract) {\r\n // install equipment add/remove maintenance contract\r\n this.router.navigate([\r\n '/contract',\r\n notification.MaintenanceContract?.Identity,\r\n { outlets: { left: ['list'], right: ['contract', { outlets: { tab: ['equipment'] } }] } }\r\n ]);\r\n } else if (notification.Event || notification['Text'].startsWith('Neue Tätigkeit')) {\r\n this.router.navigate([\r\n '/building',\r\n notification.Building?.Identity,\r\n { outlets: { left: ['building', 'view', { outlets: { tab: ['equipment'] } }], right: ['equipment', notification.Equipment?.Identity, 'view', { outlets: { tab: ['incident'] } }] } }\r\n ]);\r\n } else {\r\n this.router.navigate([\r\n '/building',\r\n notification.Building?.Identity,\r\n { outlets: { left: ['building', 'view', { outlets: { tab: ['equipment'] } }], right: ['equipment', notification.Equipment?.Identity, 'view', { outlets: { tab: ['details'] } }] } }\r\n ]);\r\n }\r\n } else if (notification.Building) {\r\n if (notification.Document?.Identity) {\r\n // added document to building\r\n this.router.navigate(['/building', notification.Building?.Identity, { outlets: { left: ['list'], right: ['document', { outlets: { tab: ['building-equipment'] } }]}}]);\r\n } else if (notification.Equipment?.Identity) {\r\n // deleted install equipment from building\r\n this.router.navigate(['/building', notification.Building?.Identity, { outlets: { left: ['list'], right: ['building', 'view', { outlets: { tab: ['equipment'] } }]}}]);\r\n } else if (notification.Event || notification['Text'].startsWith('Neue Tätigkeit')) {\r\n this.router.navigate(['/building', notification.Building?.Identity, { outlets: { left: ['list'], right: ['building', 'view', { outlets: { tab: ['incident'] } }]}}]);\r\n } else {\r\n this.router.navigate(['/building', notification.Building?.Identity, { outlets: { left: ['list'], right: ['building']}}]);\r\n }\r\n } else if (notification.MaintenanceContract) {\r\n this.router.navigate(['/contract', notification.MaintenanceContract?.Identity, { outlets: { left: ['list'], right: ['contract']}}]);\r\n } else if (notification.ServiceProvider) {\r\n this.router.navigate(['/service-contact', notification.ServiceProvider?.Identity, { outlets: { left: ['list'], right: ['service-contact']}}]);\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss']\r\n})\r\nexport class PageNotFoundComponent implements OnInit, OnDestroy {\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { AuthGuard } from './../core/auth/auth-guard.service';\r\nimport { CoreModule } from './../core/core.module';\r\nimport { SearchBuildingComponent } from './search/search-building/search-building.component';\r\nimport { SearchInstallEquipmentComponent } from './search/search-install-equipment/search-install-equipment.component';\r\nimport { SearchInstallModuleComponent } from './search/search-install-module/search-install-module.component';\r\nimport { SearchComponent } from './search/search.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'search',\r\n component: SearchComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n component: SearchComponent\r\n }\r\n ]\r\n },\r\n {\r\n path: 'search/:id',\r\n component: SearchComponent,\r\n canActivateChild: [AuthGuard]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgbModule,\r\n RouterModule.forChild(routes),\r\n CoreModule],\r\n declarations: [\r\n SearchComponent,\r\n SearchBuildingComponent,\r\n SearchInstallEquipmentComponent,\r\n SearchInstallModuleComponent\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class SearchModule {}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-search-building',\r\n templateUrl: './search-building.component.html',\r\n styleUrls: ['./search-building.component.scss']\r\n})\r\nexport class SearchBuildingComponent implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n buildings: PropertyCore.Building[];\r\n\r\n @Output()\r\n navRequest = new EventEmitter();\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n nav(building: PropertyCore.Building) {\r\n this.navRequest.emit(building);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-search-install-equipment',\r\n templateUrl: './search-install-equipment.component.html',\r\n styleUrls: ['./search-install-equipment.component.scss']\r\n})\r\nexport class SearchInstallEquipmentComponent implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n title: string;\r\n\r\n buildingInstallEquipments: any[]; // array with InstallEquipment[] per building\r\n\r\n @Output()\r\n navRequest = new EventEmitter();\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n @Input()\r\n set installEquipments(installEquipments: PropertyCore.Equipment[]) {\r\n this.buildingInstallEquipments = installEquipments.reduce((prev, next) => {\r\n const b = prev.find(x => x.buildingUT === next.Building.Identity);\r\n if (!b) {\r\n prev.push({ buildingUT: next.Building.Identity, buildingName: next.Building.Name, dataList: [next] });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []);\r\n }\r\n\r\n nav(installEquipment: PropertyCore.Equipment) {\r\n this.navRequest.emit(installEquipment);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { PropertyCore } from '../../../core/odata/odata.coreapi';\r\n\r\n@Component({\r\n selector: 'app-search-install-module',\r\n templateUrl: './search-install-module.component.html',\r\n styleUrls: ['./search-install-module.component.scss']\r\n})\r\nexport class SearchInstallModuleComponent implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n title: string;\r\n\r\n ieInstallModules: any[]; // array with InstallModule[] per install equipment\r\n\r\n @Output()\r\n navRequest = new EventEmitter();\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n @Input()\r\n set installModules(installModules: PropertyCore.Module[]) {\r\n this.ieInstallModules = installModules.reduce((prev, next) => {\r\n const b = prev.find(x => x.equipmentUT === next.Equipment.Identity);\r\n if (!b) {\r\n prev.push({ buildingUT: next.Equipment.Building.Identity, buildingName: next.Equipment.Building.Name, equipmentUT: next.Equipment.Identity, equipmentName: (next.Equipment.CustomId ? next.Equipment.CustomId : next.Equipment.Name), dataList: [next] });\r\n } else {\r\n b.dataList.push(next);\r\n }\r\n return prev;\r\n }, []);\r\n }\r\n\r\n nav(installModule: PropertyCore.Module) {\r\n this.navRequest.emit(installModule);\r\n }\r\n\r\n}\r\n","export enum SearchNavigationPaths {\r\n\r\n BUILDING = 'building',\r\n INSTALL_EQUIPMENT = 'install-equipment',\r\n INSTALL_EQUIPMENT_FEATURE = 'install-equipment-feature',\r\n INSTALL_MODULE = 'install-module',\r\n INSTALL_MODULE_FEATURE = 'install-module-feature'\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, ParamMap, Router } from \"@angular/router\";\r\nimport { of, Subscription, from } from \"rxjs\";\r\nimport { switchMap } from \"rxjs/operators\";\r\nimport { PropertyCore } from \"../../core/odata/odata.coreapi\";\r\nimport { SearchNavigationPaths } from \"./search-navigation-paths.enum\";\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\n\r\n@Component({\r\n selector: \"app-search\",\r\n templateUrl: \"./search.component.html\",\r\n styleUrls: [\"./search.component.scss\"],\r\n})\r\nexport class SearchComponent implements OnInit, OnDestroy {\r\n searchFilter: string = \"\";\r\n\r\n buildings: PropertyCore.Building[] = [];\r\n installEquipments: PropertyCore.Equipment[] = [];\r\n installEquipmentFeatures: PropertyCore.Equipment[] = [];\r\n installModules: PropertyCore.Module[] = [];\r\n installModuleFeatures: PropertyCore.Module[] = [];\r\n\r\n currentPage: SearchNavigationPaths;\r\n\r\n PAGE_BUILDING = SearchNavigationPaths.BUILDING;\r\n PAGE_INSTALL_EQUIPMENT = SearchNavigationPaths.INSTALL_EQUIPMENT;\r\n PAGE_INSTALL_EQUIPMENT_FEATURE =\r\n SearchNavigationPaths.INSTALL_EQUIPMENT_FEATURE;\r\n PAGE_INSTALL_MODULE = SearchNavigationPaths.INSTALL_MODULE;\r\n PAGE_INSTALL_MODULE_FEATURE = SearchNavigationPaths.INSTALL_MODULE_FEATURE;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.currentPage = this.PAGE_BUILDING;\r\n\r\n this.subscriptions.add(\r\n this.route.paramMap.subscribe(\r\n (params) => (this.searchFilter = params.get(\"id\"))\r\n )\r\n );\r\n\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n params.get(\"id\") != null\r\n ? from(\r\n this.odataCoreService.Building.Functions()\r\n .SearchInObjektBriefOnBuildingInPropertyCoreOnEntitySet()\r\n .Parameters(params.get(\"id\"))\r\n .Execute()\r\n .then((x) => x.value)\r\n )\r\n : of([])\r\n )\r\n )\r\n .subscribe((res) => (this.buildings = res))\r\n );\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n params.get(\"id\") != null\r\n ? from(\r\n this.odataCoreService.Equipment.Functions()\r\n .SearchInObjektBriefOnEquipmentInPropertyCoreOnEntitySet()\r\n .Parameters(params.get(\"id\"))\r\n .Query()\r\n .Expand((x) => {\r\n x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n x.Expand(\"Building\");\r\n x.Expand(\"EquipmentType\");\r\n x.Expand(\"QuickResponseCodes\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n : of([])\r\n )\r\n )\r\n .subscribe((res) => (this.installEquipments = res))\r\n );\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n params.get(\"id\") != null\r\n ? from(\r\n this.odataCoreService.Equipment.Functions()\r\n .SearchInObjektBriefOnEquipmentInPropertyCoreOnEntitySet()\r\n .Parameters(params.get(\"id\"))\r\n .Query()\r\n .Expand((x) => {\r\n x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n x.Expand(\"Room\");\r\n x.Expand(\"Building\");\r\n x.Expand(\"EquipmentType\");\r\n //x.Expand(\"QuickResponseCodes\");\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n : of([])\r\n )\r\n )\r\n .subscribe((res) => (this.installEquipmentFeatures = res))\r\n );\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n params.get(\"id\") != null\r\n ? from(\r\n this.odataCoreService.Module.Functions()\r\n .SearchInObjektBriefOnModuleInPropertyCoreOnEntitySet()\r\n .Parameters(params.get(\"id\"))\r\n .Query()\r\n .Expand((x) => {\r\n x.Expand(\"Equipment\", (y) => y.Expand(\"Building\"));\r\n x.Expand(\"Equipment\", (y) => y.Expand(\"EquipmentType\"));\r\n x.Expand(\"ModuleType\");\r\n x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n : of([])\r\n )\r\n )\r\n .subscribe((res) => (this.installModules = res))\r\n );\r\n this.subscriptions.add(\r\n this.route.paramMap\r\n .pipe(\r\n switchMap((params: ParamMap) =>\r\n params.get(\"id\") != null\r\n ? from(\r\n this.odataCoreService.Module.Functions()\r\n .SearchInObjektBriefOnModuleInPropertyCoreOnEntitySet()\r\n .Parameters(params.get(\"id\"))\r\n .Query()\r\n .Expand((x) => {\r\n x.Expand(\"Equipment\", (y) => y.Expand(\"Building\"));\r\n x.Expand(\"Equipment\", (y) => y.Expand(\"EquipmentType\"));\r\n x.Expand(\"ModuleType\");\r\n x.Expand(\"Room\", (y) => y.Expand(\"Floor\"));\r\n })\r\n .Exec()\r\n .then((x) => x.value)\r\n )\r\n : of([])\r\n )\r\n )\r\n .subscribe((res) => (this.installModuleFeatures = res))\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n search() {\r\n this.router.navigate([\r\n \"/search\",\r\n this.searchFilter ? this.searchFilter : \"\",\r\n ]);\r\n }\r\n\r\n navToBuilding(building: PropertyCore.Building) {\r\n this.router.navigate([\r\n \"/building\",\r\n building.Identity,\r\n { outlets: { left: [\"list\"], right: [\"building\"] } },\r\n ]);\r\n }\r\n navToInstallEquipment(\r\n installEquipment: PropertyCore.Equipment,\r\n toFeatures: boolean = false\r\n ) {\r\n this.router.navigate([\r\n \"/building\",\r\n installEquipment.Building.Identity,\r\n {\r\n outlets: {\r\n left: [\"building\", \"view\", { outlets: { tab: [\"equipment\"] } }],\r\n right: [\r\n \"equipment\",\r\n installEquipment.Identity,\r\n \"view\",\r\n { outlets: { tab: [toFeatures ? \"features\" : \"details\"] } },\r\n ],\r\n },\r\n },\r\n ]);\r\n }\r\n navToInstallModule(\r\n installModule: PropertyCore.Module,\r\n toFeatures: boolean = false\r\n ) {\r\n this.router.navigate([\r\n \"/building\",\r\n installModule.Equipment.Building.Identity,\r\n {\r\n outlets: {\r\n left: [\r\n \"equipment\",\r\n installModule.Equipment.Identity,\r\n \"view\",\r\n { outlets: { tab: [\"modules\"] } },\r\n ],\r\n right: [\r\n \"equipment\",\r\n \"module\",\r\n installModule.Identity,\r\n { outlets: { tab: [toFeatures ? \"features\" : \"details\"] } },\r\n ],\r\n },\r\n },\r\n ]);\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\r\nimport {of, Subscription, from} from 'rxjs';\r\nimport {switchMap, map} from 'rxjs/operators';\r\nimport {PropertyCore} from '../../core/odata/odata.coreapi';\r\nimport {AuthService} from '../../core/auth/auth.service';\r\nimport {ILogger, LoggerService} from '../../core/shared/logger.service';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-service-contact-detail',\r\n templateUrl: './service-contact-detail.component.html',\r\n styleUrls: ['./service-contact-detail.component.scss']\r\n})\r\n\r\nexport class ServiceContactDetailComponent implements OnInit, OnDestroy {\r\n\r\n serviceContact: PropertyCore.ServiceProvider;\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n logger: ILogger;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private loggerService: LoggerService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n this.logger = loggerService.getLogger('ServiceContactDetailComponent');\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(\r\n this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => of(params.get('id')))).subscribe(serviceContactId => {\r\n this.subscriptions.add(from(this.odataCoreService.ServiceProvider.Query()\r\n .Expand(x => {\r\n x.Expand(\"Statistics\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(serviceContactId)))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0]))).subscribe(serviceContact => {\r\n this.serviceContact = serviceContact;\r\n }));\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n edit(UT: string): void {\r\n this.router.navigate(['/service-contact', UT, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['service-contact-wizard', 'edit']\r\n }\r\n }]);\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport {PropertyCore} from '../../core/odata/odata.coreapi';\r\nimport {AuthService} from '../../core/auth/auth.service';\r\nimport { ODataCoreService } from \"../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\n\r\n@Component({\r\n selector: 'app-service-contact-list',\r\n templateUrl: './service-contact-list.component.html',\r\n styleUrls: ['./service-contact-list.component.scss']\r\n})\r\nexport class ServiceContactListComponent implements OnInit, OnDestroy {\r\n\r\n serviceContacts: PropertyCore.ServiceProvider[];\r\n serviceContactId: string;\r\n\r\n searchFilter: string = '';\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.ServiceProvider.Query()\r\n .OrderBy('Name')\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"Account\", \"Identity\"), Guid.parse(localStorage.getItem('mandator'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => {\r\n this.serviceContacts = res;\r\n }));\r\n this.subscriptions.add(this.route.parent.paramMap.subscribe(params => this.serviceContactId = params.get('id')));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n serviceContactWizard(): void {\r\n if (!this.serviceContactId) {\r\n if (this.serviceContacts && this.serviceContacts.length > 0) {\r\n this.serviceContactId = this.serviceContacts[0].Identity;\r\n } else {\r\n this.serviceContactId = '';\r\n }\r\n }\r\n this.router.navigate(['/service-contact', this.serviceContactId, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['service-contact-wizard']\r\n }\r\n }]);\r\n }\r\n\r\n}\r\n","import {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {RouterModule, Routes} from '@angular/router';\r\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport {AuthGuard} from '../core/auth/auth-guard.service';\r\nimport {CoreModule} from '../core/core.module';\r\nimport {ServiceContactDetailComponent} from './service-contact-detail/service-contact-detail.component';\r\nimport {ServiceContactListComponent} from './service-contact-list/service-contact-list.component';\r\nimport {ServiceContactComponent} from './service-contact/service-contact.component';\r\nimport {StartComponent} from './start/start.component';\r\nimport {ServiceContactWizardComponent} from './wizard/service-contact/service-contact-wizard.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'service-contact',\r\n component: StartComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n component: ServiceContactListComponent\r\n }\r\n ]\r\n },\r\n {\r\n path: 'service-contact/:id',\r\n component: ServiceContactComponent,\r\n canActivateChild: [AuthGuard],\r\n children: [\r\n\r\n // 1 level page setup\r\n {\r\n outlet: 'left',\r\n path: 'list',\r\n component: ServiceContactListComponent,\r\n data: {\r\n animation: '1-service-contact-list'\r\n }\r\n },\r\n {\r\n outlet: 'right',\r\n path: 'service-contact',\r\n component: ServiceContactDetailComponent,\r\n data: {\r\n animation: '1-service-contact'\r\n }\r\n },\r\n {\r\n outlet: 'right',\r\n path: 'service-contact-wizard/edit',\r\n component: ServiceContactWizardComponent,\r\n data: {\r\n editMode: true,\r\n animation: '1-service-contact'\r\n }\r\n },\r\n {\r\n outlet: 'right',\r\n path: 'service-contact-wizard',\r\n component: ServiceContactWizardComponent,\r\n data: {\r\n animation: '1-service-contact'\r\n }\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CoreModule,\r\n FormsModule,\r\n NgbModule,\r\n RouterModule.forChild(routes)\r\n ],\r\n declarations: [\r\n StartComponent,\r\n ServiceContactComponent,\r\n ServiceContactListComponent,\r\n ServiceContactDetailComponent,\r\n ServiceContactWizardComponent\r\n ],\r\n exports: [\r\n RouterModule,\r\n ],\r\n providers: []\r\n})\r\nexport class ServiceContactModule {\r\n}\r\n","import { animate, AnimationMetadata, group, query, style, transition, trigger } from '@angular/animations';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, RouterOutlet } from '@angular/router';\r\n\r\nimport { ILogger, LoggerService } from './../../core/shared/logger.service';\r\n\r\nconst leftContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ 'z-index': 2, transform: 'translate3d(100%,0,0)' }), { optional: true }), // entering panel must be over the leaving from right side in order to routerLinkActive to work\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) //'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst leftContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nconst rightContentMoveToLeft = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(100%,0,0)' }), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *', style({ opacity: 1 }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(-100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true }),\r\n query(':leave .outlet *[name=\"tabs\"] + *',\r\n animate('0ms 600ms', style({ opacity: 0 })), { optional: true }) //'tabs' router outlet should be visible until the end of animation\r\n ])\r\n];\r\n\r\nconst rightContentMoveToRight = [\r\n query(':leave .outlet', style({ transform: 'translate3d(0%,0,0)' }), { optional: true }),\r\n query(':enter .outlet', style({ transform: 'translate3d(-100%,0,0)' }), { optional: true }),\r\n\r\n group([\r\n query(':leave .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(100%,0,0)' })), { optional: true }),\r\n query(':enter .outlet',\r\n animate('600ms ease-in-out', style({ transform: 'translate3d(0%,0,0)' })), { optional: true })\r\n ])\r\n];\r\n\r\nexport const leftPanelSideAnimations: AnimationMetadata = trigger('leftAnimations', [\r\n transition('init => *', []), //denies any animation from 'init' state\r\n transition('void => *', []), //denies animation from 'null' state\r\n transition('2-service-contact => 1-service-contact-list', leftContentMoveToRight)\r\n]);\r\n\r\n\r\n/**\r\n * xyz => * : when moving forward to the right side: use rightContentMoveToLeft\r\n * abc => xyz : when moving backwards (close button) from abc to xyz: use rightContentMoveToRight\r\n */\r\nexport const rightPanelSideAnimations: AnimationMetadata = trigger('rightAnimations', [\r\n transition('init => *', []), //denies any animation from 'init' state\r\n transition('* => init', []), //denies any animation to 'init' state\r\n transition('void => *', []), //denies animation from 'null' state\r\n transition('1-service-contact => *', rightContentMoveToLeft)\r\n]);\r\n\r\n\r\n@Component({\r\n selector: 'app-service-contact',\r\n templateUrl: './service-contact.component.html',\r\n styleUrls: ['./service-contact.component.scss'],\r\n animations: [leftPanelSideAnimations, rightPanelSideAnimations]\r\n})\r\nexport class ServiceContactComponent implements OnInit {\r\n\r\n private logger: ILogger;\r\n\r\n constructor(private route: ActivatedRoute, loggerService: LoggerService) {\r\n this.logger = loggerService.getLogger('ServiceContactComponent');\r\n }\r\n\r\n public prepareRouteTransition(outlet: RouterOutlet) {\r\n const result = outlet.activatedRouteData['animation'] || 'init';\r\n return result;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\nimport {Subscription, from} from 'rxjs';\r\nimport { ODataPath } from '../../core/odata/odataclient';\r\nimport { map } from 'rxjs/operators';\r\nimport { Utils } from '../../core/tools/utils';\r\nimport { ODataCoreService } from '../../core/odata-services/odata.coreapi.service';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n@Component({\r\n selector: 'app-start',\r\n templateUrl: './start.component.html',\r\n styleUrls: ['./start.component.scss']\r\n})\r\nexport class StartComponent implements OnInit, OnDestroy {\r\n\r\n private subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n private router: Router,\r\n private odataCoreService: ODataCoreService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(from(this.odataCoreService.ServiceProvider.Query()\r\n .Filter(x =>\r\n x.Equals(ODataPath.For(\"Account\", \"Identity\"), Guid.parse(localStorage.getItem('mandator'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => res.map(i => Utils.mapAllJSONDatesToDates(i)))).subscribe(res => {\r\n if (res.length >= 1) {\r\n this.router.navigate(['/service-contact', res[0].Identity, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['service-contact']\r\n }\r\n }]);\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { Observable, of, Subscription, from } from 'rxjs';\r\nimport { switchMap, map } from 'rxjs/operators';\r\nimport { Common, PropertyCore, Library } from '../../../core/odata/odata.coreapi';\r\nimport { ConfirmationModal } from '../../../core/popup/confirmation.modal';\r\nimport { ILogger, LoggerService } from '../../../core/shared/logger.service';\r\nimport { ODataCoreService } from \"../../../core/odata-services/odata.coreapi.service\";\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../../../core/tools/utils';\r\n\r\n@Component({\r\n selector: 'app-service-contact-wizard',\r\n templateUrl: './service-contact-wizard.component.html',\r\n styleUrls: ['./service-contact-wizard.component.scss']\r\n})\r\nexport class ServiceContactWizardComponent implements OnInit, OnDestroy {\r\n\r\n model: PropertyCore.ServiceProvider;\r\n\r\n logger: ILogger;\r\n\r\n editMode: boolean;\r\n\r\n formSubmitted: boolean;\r\n\r\n subscriptions: Subscription = new Subscription();\r\n\r\n constructor(\r\n loggerService: LoggerService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private modalService: NgbModal,\r\n private translateService: TranslateService,\r\n private odataCoreService: ODataCoreService\r\n ) {\r\n this.logger = loggerService.getLogger('ServiceContactWizardComponent');\r\n }\r\n\r\n ngOnInit() {\r\n this.editMode = this.route.snapshot.data.editMode;\r\n\r\n let serviceContact$: Observable;\r\n\r\n if (this.editMode) {\r\n serviceContact$ = this.route.parent.paramMap.pipe(switchMap((params: ParamMap) => {\r\n return from(this.odataCoreService.ServiceProvider.Query()\r\n .Expand(x => {\r\n x.Expand(\"Statistics\")\r\n })\r\n .Filter(xa =>\r\n xa.EqualsField(\"Identity\", Guid.parse(params.get('id'))))\r\n .Exec().then(x => x.value))\r\n .pipe(map(res => Utils.mapAllJSONDatesToDates(res[0])));\r\n }));\r\n } else {\r\n const sc = {};\r\n sc.Address = {};\r\n sc.Address.CountryInfo = { Id: 0, Name: '-' };\r\n serviceContact$ = of(sc);\r\n }\r\n this.subscriptions.add(serviceContact$.subscribe(val => {\r\n this.model = val;\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n close(isDirty: boolean = true): void {\r\n if (isDirty) {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n if (this.editMode) {\r\n modalRef.componentInstance.message = this.translateService.instant('ServiceContactWizzard._modal_message');\r\n } else {\r\n modalRef.componentInstance.message = this.translateService.instant('ServiceContactWizzard._modal_message2');\r\n }\r\n modalRef.componentInstance.title = this.translateService.instant('ServiceContactWizzard._modal_title');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ServiceContactWizzard._modal_yes');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ServiceContactWizzard._modal_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n if (this.editMode) {\r\n this.backToListDetailPage(this.model.Identity);\r\n } else {\r\n this.backToStartPage();\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n // do nothing, just stay on page\r\n }\r\n );\r\n } else {\r\n if (this.model.Identity) {\r\n this.backToListDetailPage(this.model.Identity);\r\n } else {\r\n this.backToStartPage();\r\n }\r\n }\r\n }\r\n\r\n async updateServiceProvider(): Promise {\r\n await this.odataCoreService.ServiceProvider.Patch()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .Key(Guid.parse(this.model.Identity))\r\n .ValueProperty(\"Identity\", this.model.Identity)\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .Exec()\r\n .then(res =>{\r\n this.backToListDetailPage(this.model.Identity)\r\n })\r\n .catch(err => {\r\n this.logger.error('update action error:', [err]);\r\n });\r\n }\r\n\r\n async createServiceProvider(): Promise {\r\n if (this.editMode) {\r\n this.updateServiceProvider();\r\n } else {\r\n if (this.model.Account != null && this.model.User == null) {\r\n\r\n let res = await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .ValuePropertyBinding(\"Account\", this.odataCoreService.Account.Get().Key(Guid.parse(this.model.Account.Identity)).Bind())\r\n .Exec()\r\n .then(res => {\r\n this.model.Identity = res.Identity;\r\n this.backToListDetailPage(this.model.Identity)\r\n })\r\n .catch(err => {\r\n this.logger.error('create action error:', [err]);\r\n });\r\n \r\n } else if (this.model.User != null && this.model.Account == null) {\r\n\r\n\r\n let res = await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .ValuePropertyBinding(\"User\", this.odataCoreService.User.Get().Key(Guid.parse(this.model.User.Identity)).Bind())\r\n .Exec()\r\n .then(res => {\r\n this.model.Identity = res.Identity;\r\n this.backToListDetailPage(this.model.Identity)\r\n })\r\n .catch(err => {\r\n this.logger.error('create action error:', [err]);\r\n });\r\n\r\n } else if (this.model.User == null && this.model.Account == null) {\r\n let res = await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .Exec()\r\n .then(res => {\r\n this.model.Identity = res.Identity;\r\n this.backToListDetailPage(this.model.Identity)\r\n })\r\n .catch(err => {\r\n this.logger.error('create action error:', [err]);\r\n }); \r\n } else {\r\n\r\n let res = await this.odataCoreService.ServiceProvider.Post()\r\n .ValueType(this.odataCoreService.ODataTypes().ServiceProvider())\r\n .ValueProperty(\"Code\", this.model.Name)\r\n .ValueProperty(\"Name\", this.model.Name)\r\n .ValueProperty(\"IsMaintenance\", this.model.IsMaintenance)\r\n .ValueProperty(\"IsInspection\", this.model.IsInspection)\r\n .ValueProperty(\"Department\", this.model.Department)\r\n .ValueProperty(\"ContractContactPhone\", this.model.ContractContactPhone)\r\n .ValueProperty(\"ContractContactPerson\", this.model.ContractContactPerson)\r\n .ValueProperty(\"ContractContactEmailAdd\", this.model.ContractContactEmailAdd)\r\n .ValueProperty(\"ContactEmailAdd\", this.model.ContactEmailAdd)\r\n .ValueProperty(\"ContactPerson\", this.model.ContactPerson)\r\n .ValueProperty(\"ContactPhone1\", this.model.ContactPhone1)\r\n .ValueProperty(\"ContactPhone2\", this.model.ContactPhone2)\r\n .ValueProperty(\"Address\", this.mapAddress(this.model.Address))\r\n .ValuePropertyBinding(\"Account\", this.odataCoreService.Account.Get().Key(Guid.parse(this.model.Account.Identity)).Bind())\r\n .ValuePropertyBinding(\"User\", this.odataCoreService.User.Get().Key(Guid.parse(this.model.User.Identity)).Bind())\r\n .Exec()\r\n .then(res => {\r\n this.model.Identity = res.Identity;\r\n this.backToListDetailPage(this.model.Identity)\r\n })\r\n .catch(err => {\r\n this.logger.error('create action error:', [err]);\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n //(this.model.Name, this.model.Identity)\r\n\r\n save(validForm: boolean): void {\r\n if (!validForm) {\r\n this.formSubmitted = true;\r\n return;\r\n }\r\n if (this.editMode) {\r\n this.updateServiceProvider();\r\n } else {\r\n this.subscriptions.add(\r\n from(this.odataCoreService.ServiceProvider.Query()\r\n .Filter(xa =>\r\n xa.EqualsField(\"Name\", this.model.Name))\r\n .Count().then(x => x > 0))\r\n .subscribe(res => {\r\n if (res) {\r\n this.toasterService.pop('warning', '', this.translateService.instant('ServiceContactWizzard._longName_exists_error'));\r\n } else {\r\n this.createServiceProvider();\r\n }\r\n }));\r\n }\r\n }\r\n\r\n backToListDetailPage(serviceContactId: string): void {\r\n // hard reload of both sides\r\n const url = this.router.createUrlTree(['/service-contact', serviceContactId, {\r\n outlets: {\r\n left: ['list'],\r\n right: ['service-contact']\r\n }\r\n }]).toString();\r\n this.router.navigateByUrl('/skipThisPage', { skipLocationChange: true }).then(() => this.router.navigateByUrl(url));\r\n }\r\n\r\n backToStartPage()\r\n :\r\n void {\r\n this.router.navigate(['/service-contact']);\r\n }\r\n\r\n delete()\r\n :\r\n void {\r\n const modalRef = this.modalService.open(ConfirmationModal);\r\n modalRef.componentInstance.message = this.translateService.instant('ServiceContactWizzard._modal_message_delete');\r\n modalRef.componentInstance.title = this.translateService.instant('ServiceContactWizzard._modal_title');\r\n modalRef.componentInstance.yesButton = this.translateService.instant('ServiceContactWizzard._button_delete');\r\n modalRef.componentInstance.cancelButton = this.translateService.instant('ServiceContactWizzard._button_cancel');\r\n\r\n modalRef.result\r\n .then((val) => {\r\n if (val === ConfirmationModal.YES_VALUE) {\r\n if (this.model.Statistics.EquipmentEventCount > 0 || this.model.Statistics.ModuleEventCount > 0 || this.model.Statistics.MaintenanceContractCount > 0) {\r\n this.toasterService.pop('warning', '', this.translateService.instant('ServiceContactWizzard._delete_error_info', {\r\n IEICount: this.model.Statistics.EquipmentEventCount,\r\n IMICount: this.model.Statistics.ModuleEventCount,\r\n MCCount: this.model.Statistics.MaintenanceContractCount\r\n }));\r\n } else {\r\n this.subscriptions.add(from(this.odataCoreService.ServiceProvider.Delete()\r\n .Key(Guid.parse(this.model.Identity))\r\n .Exec()).subscribe(res => this.backToStartPage(),\r\n err => {\r\n this.toasterService.pop('error', '', this.translateService.instant('ServiceContactWizzard._delete_error'));\r\n }));\r\n }\r\n }\r\n }\r\n )\r\n .catch(\r\n () => this.logger.error('delete action error in modal window'));\r\n }\r\n\r\n private mapAddress(address: Common.Address): Common.Address {\r\n let entity: Common.Address = {};\r\n if (address.RegionInfo != null && address.RegionInfo.hasOwnProperty('Code')) {\r\n entity.Region = address.RegionInfo['Code'];\r\n }\r\n if (address.CountryInfo != null && address.CountryInfo.hasOwnProperty('Code')) {\r\n entity.Country = address.CountryInfo['Code'];\r\n }\r\n if (address.City != null) {\r\n entity.City = address.City;\r\n }\r\n if (address.No != null) {\r\n entity.No = address.No;\r\n }\r\n if (address.PostCode != null) {\r\n entity.PostCode = address.PostCode;\r\n }\r\n if (address.Street != null) {\r\n entity.Street = address.Street;\r\n }\r\n return entity;\r\n }\r\n\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n};\r\n","export {}; // this file needs to be a module\r\n\r\nArray.prototype.sortBy = function (propGetter: (item: any) => any): [] {\r\n return this.sort((a, b) => {\r\n if (propGetter(a) < propGetter(b)) {\r\n return -1;\r\n }\r\n if (propGetter(a) > propGetter(b)) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\n// Array.prototype.sortDescBy = function (propGetter: (item: any) => any): [] {\r\n// return this.sortBy(propGetter).reverse();\r\n// };\r\n","import \"./extentions/array\";\r\n\r\nimport { enableProdMode } from \"@angular/core\";\r\nimport { platformBrowserDynamic } from \"@angular/platform-browser-dynamic\";\r\n\r\nimport { AppModule } from \"./app/app.module\";\r\nimport { environment } from \"./environments/environment\";\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["Component","ActivatedRoute","Router","NgbModal","TranslateService","combineLatest","Subscription","from","switchMap","ConfirmationModal","map","Utils","Guid","ODataCoreService","BuildingDetailEditFloorsComponent","constructor","translateService","modalService","route","router","odataCoreService","ngOnInit","subscriptions","add","root","firstChild","paramMap","pipe","params","buildingIdentity","get","Building","Get","Key","parse","Expand","x","Exec","then","value","res","mapAllJSONDatesToDates","subscribe","buildingFloor","Floor","Query","OrderBy","i","Floors","f","sort","a","b","Order","building","allFloors","buildingFloors","floors","forEach","bf","Id","selected","ngOnDestroy","unsubscribe","close","isDirty","modalRef","open","componentInstance","title","instant","message","yesButton","cancelButton","result","val","YES_VALUE","navigate","Identity","outlets","left","right","catch","save","validForm","formSubmitted","fIds","filter","linkFloor","getFloorIds","includes","unlinkFloor","length","Link","Value","Bind","Post","y","Delete","floorIds","ut","push","selector","template","BuildingEditUsagesInputData","BuildingDetailEditUsagesComponent","inputData","buildingUsageTypes$","UsageType","Filter","Any","building$","buildingUT","handleCloseRequest","handleSaveRequest","btIds","existingUsageType","UsageTypes","usageTypeId","buildingUsageTypes","selectedUsageType","BuildingDetailEditComponent","Patch","ValueType","ODataTypes","ValueProperty","Name","mapAddress","Address","Longitude","Location","Latitude","Size","YearOfConstruction","address","entity","RegionInfo","hasOwnProperty","Region","CountryInfo","Country","City","No","PostCode","Street","ViewEncapsulation","NgbCarouselConfig","ToasterService","AuthService","PopupService","GlobalService","InstallEquipmentKpiFilter","ODataPath","AppConfig","ImageUploadService","BuildingDetailComponent","authService","toasterService","globalService","config","popupService","appConfig","imageUploadService","interval","wrap","keyboard","imageUploadModel","getCurrentImageUploadModel","entityType","Event","Equals","For","And","NotEquals","Count","nextThreeMonthsIncidentsLength","overDueIncidentsLength","defectIncidentsLength","Images","img","DownloadToken","Image","Raw","ToUrlString","images","imgIdx","Equipment","Or","EqualsField","equipmentsNoDocumentation","equipmentsNoMaintenanceContract","equipmentsNoInspectionDutyAssigned","equipmentsInspectionDutyUnterminated","onImageUpload","event","resetCurrentImageUploadModel","onAddFile","file","nextImg","prevImg","deleteImg","pop","res2","sortImg","Actions","SortInOperationsOnImageInPropertyCore","Parameters","createEmpty","toString","Execute","showImg","openImagePreviewModal","equipmentWizard","usageTypeWizard","goToEquipmentNoMaintenance","tab","queryParams","NoMaintenanceContract","queryParamsHandling","goToEquipmentNoInspectionDuties","NoInspectionDutySelected","goToEquipmentNotScheduledInspectionDuties","NoInspectionDutyTerminated","goToTodoInspections","incidentstyle","goToOverdueInspections","goToDefectInspections","goToDocuments","edit","editBuildingUsage","editRooms","editFloors","providers","encapsulation","None","BuildingRoomDetailComponent","buildingRoomUT","Room","room","editMode","editRoom","Object","assign","url","createUrlTree","navigateByUrl","skipLocationChange","delete","Statistics","EquipmentCount","ModuleCount","ieCount","imCount","compareId","val1","val2","BuildingRoomListComponent","rooms","snapshot","parent","children","path","openNewRoomPopup","content","newRoomName","ValuePropertyBinding","newRoomFloor","newRoomUT","r","DocumentType","FilterByPipe","DocumentIncidentComponent","filterByPipe","loadDocuments","z","Select","c","Events","events","Documents","Equipments","equipments","find","eventDocumentCount","buildingDocumentHierarchy","documentWizard","type","INCIDENT","showDocument","doc","IsVirtual","endsWith","openPdfModal","Document","openOfficePreviewModal","downloadDocument","data","blob","Blob","link","document","createElement","href","window","URL","createObjectURL","download","body","appendChild","click","removeChild","stopPropagation","editDocument","closeModal","Description","countDocuments","reduce","isEquipmentHidden","equipment","docsCount","ev","matchDocs","transform","searchFilter","of","Subject","debounceTime","distinctUntilChanged","EquipmentDetailEditComponent","installEquipmentUT$","floors$","equipment$","_equipmentUT","_equipment","_floors","origInstallEquipment","installEquipment","installEquipmentFloor","getQrCodes","newQrCode","term","QuickResponseCode","qrCodeState","QuickResponseCodes","qrCodes","getImgPath","qrCodeId","TuevNo","Comment","IsRenterResponsibility","IsNoMaintenanceDesired","CustomId","EquipmentType","Code","onFloorChange","selectedFloor","findRoom","roomName","newRoomNameSaved","searchQrCode","next","trim","assignQrCode","qrCode","isAllowedToAssignQrCode","deleteQrCode","idx","indexOf","splice","openInfoDialog","hideCancelButton","openInfoDialog2","openInfoDialog3","Operations","EditInspectionDutyGroup","InspectionDuty","EquipmentDetailComponent","buildingId","installEquipmentId","id","idg","IsDisabled","idgItem","Module","imName","guideline","OperatorTask","Guidelines","inspectionDuties","inspectionDutyGroups","MaintenanceJob","Contract","contracts","equipmentNoDocumentation","equipmentNoMaintenanceContract","equipmentNoMaintenanceDesired","equipmentNoInspectionDutyAssigned","equipmentInspectionDutyUnterminated","nameof","name","CanOperateInOperationsOnEquipmentInPropertyCore","Blocker","deleteText","Property","CurrentValue","deleteInfo","editInspectionDuties","editIncidents","createIncidents","goToContracts","AttributeDTO","InstallEquipmentService","EquipmentFeatureEditComponent","equipmentService","res1","AttributeTypeSets","AttributeTypes","attributeItem","AttributeValues","MeasurementUnit","IsOptional","AllowedValues","jsonToDate","attributesCategories","attributesCategoryNames","categoryArray","element","index","input","showClose","years","yearsTillToday","attributes","attribute","undefined","attributeDto","dateToJson","attributeContainerId","filterAttributesChanged","attributeChanged","checkValueNull","NavigateToArray","AttributeValue","onAttributeValueChange","attributeId","ModuleDetailEditComponent","installEquipmentService","module$","xa","_module","installEquipmentUT","origInstallModule","installModule","installModuleFloor","ModuleType","Quantity","guid","ModuleDetailComponent","identity","split","error","ModuleFeatureEditComponent","installModuleId","EventEmitter","Output","BuildingWizardNavigationPaths","BuildingWizardService","BuildingWizardDataComponent","service","model","getCurrentBuilding","resetCurrentBuilding","pageChangeRequest","emit","EXIT","latitude","longitude","addressChanged","location","NEXT","model2","GeoCodeInTools","err","validateNumberInput","key","preventDefault","validateYearInput","control","target","errors","parseInt","setErrors","keys","BuildingWizardEquipmentComponent","LongName","Selected","previous","PREVIOUS","squareMeters","constructionYear","Account","getMandator","usageTypes","getUsageTypesIds","eIds","e","typeIds","Input","L","BuildingWizardLocationComponent","ngAfterViewInit","loadMap","leafletmap","attributionControl","setView","tileLayer","maxZoom","attribution","addTo","icon","iconUrl","iconAnchor","mapMarker","marker","draggable","on","getLatLng","lat","lng","editBuilding","BuildingWizardUsageComponent","types","controlUsageTypes","usage","exists","u","onMarkerDragEnd","coords","DefectWizardNavigationPaths","DefectWizardService","DefectWizardEquipmentComponent","getCurrentDefect","installEquipments","selectEquipment","equipmentBind","dueDate","isDefectHandler","guidelines","qualification","parentId","MakeSeriesInOperationsOnEventInPropertyCore","Schedule","cycle","cycleUnit","contact","ServiceProvider","resetCurrentDefect","START","EventResponse","cancel","forkJoin","DocumentWizardNavigationPaths","DocumentWizardService","HttpClient","DocumentWizardEquipmentComponent","httpClient","getCurrentDocument","mie","foundIe","ie","virtual","odataDocumentUrl","uploadODataDocument","toPromise","equipmentIdentity","uploadDocumentNoContentType","put","_file","uploadODataDocumentNoCT","resetCurrentDocument","selectAll","all","filtered","equipmentFilter","saveToModel","selectedIEs","cie","some","sie","documentIdentity","fileExtensionIndex","lastIndexOf","fileExtension","substring","blobFile","slice","size","PropertyCore","DocumentWizardIncidentDataComponent","dateToDatepicker","Date","buildingIncidents","missingDataIncidents","prev","Response","DefectRating","DefectRatings","Undefined","DefectChecker","DefectShort","buildingName","dataList","installEquipmentIncidents","installEquipmentName","installEquipmentCustomId","incidents","res4","eventResponse","eventModel","IsSkipped","Unrated","RefDate","uploadVirtualDocumentEvent","eventDetails","res3","eventIdentity","Minor","Major","Dangerous","Incident","DateComparePipe","DocumentWizardIncidentComponent","dateComparePipe","to","setMonth","getMonth","setDate","getDate","setHours","toDateFilter","za","incidentId","TypeShort","Type","mi","incident","concat","fromDateFilter","selectedIncidents","Inspection","FollowUpInspection","Maintenance","Repair","Custom","DocumentWizardTypeComponent","BUILDING","DocumentTypeGroup","DocumentTypes","documentTypes","EQUIPMENT","DOCUMENT_TYPE_BUILDING","onDocumentTypeChange","typeId","EquipmentWizardNavigationPaths","EquipmentWizardService","EquipmentWizardDataComponent","getCurrentEquipment","floor","resetCurrentEquipment","InspectiondutyWizardNavigationPaths","InspectiondutyWizardService","Common","IntegrityBoxComponent","InspectiondutyWizardDataComponent","IntervalUnits","isAttributePanelOpen","getCurrentEquipmentModel","onPanelChange","$event","nextState","changeInspectionDutyActive","equipmentOperatorTaskMarkers","originalIsDisabled","isMissing","isChangedActive","storeInspectionDuties","changeSeriesStart","isChangedSeriesStart","PATH_PREFIX","PATH_EQUIPMENTS_NO_INSPECTION_DUTIES","validInspections","equipmentOperatorTasks","eot","CycleUnits","HasInspectionDutiesActivated","saveInstallEquipment","hasInspectionDutiesActivatedChanged","equipmentPatchFlag","saveInspectionDuties","inspectionDutyChangeFlag","cycleStart","operation","Create","Update","inspectionDutyChange","Operation","Interval","Step","mapCycleUnitToEnum","EquipmentRef","OperatorTaskRef","operatortaskIdentity","aInspectionDutyIdentity","SeriesStart","aCycle","aCycleUnit","storeInspectionDutyChange","bulkInspectionDutyChange","comment","Changes","BulkChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet","saveRequest","SingleChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet","unit","cycleUnitEnum","Year","Month","Week","hasInspectionDutiesActivatedChange","OTHEREQUIPMENTS","changedIDs","operatortaskId","EquipmentNoInspectionDutiesState","InspectiondutyWizardOtherEquipmentsComponent","toaster","state","numberOfOtherEquipments","eqId","selectedEquipments","checked","checkOtherEquipments","problematicEquipments","OperatorTaskMarkers","s","IsMissing","collectAllSaves","changes","change","secondChange","guid1","UpdateActivateInspectionDutiesOnly","jsonChanges","saveInspectiondutiesOutputData","ActivateInspectionDuties","SaveAll","names","BatchChangeInOperationsOnInspectionDutyInPropertyCoreOnEntitySet","goToInspectionDutiesNotActivated","ModuleWizardNavigationPaths","ModuleWizardService","ModuleWizardDataComponent","getCurrentModule","resetCurrentModule","ObjektBrief","ModuleWizardTechnicalComponent","AttributeType","AttributeValueTypes","installModuleType","requiredAttributeItem","requiredAttributes","Set","preselectCategory","defaultCategory","IsDefault","obStandardCategory","categoryFilter","andNew","customid","quantity","saveAttributes","TypToken","ACTION","ExtendedMaintenanceContractMapping","ContractWizardNavigationPaths","ContractWizardService","ContractWizardComponent","GENERAL_DATA","SERVICE_CONTACT","ADD_SERVICE_CONTACT","INSTALL_EQUIPMENTS","MAINTENANCE_DATA","modelReady","navigateBack","currentPage","PAGE_GENERAL_DATA","contract$","MaintenanceContract","installedEquipment$","startWizard","createFromEquipment","saveOrUpdate","removedIEs","action","REMOVE","addedIEs","ADD","contract","Title","IsGeneralAgreement","StartDate","EndDate","AmountNet","CostServiceHourNetAmount","CostApproachNetAmount","CancellationDigit","CancellationUnit","CancellationPeriod","CancellationCalendar","resetCurrentContract","processPageChangeRequest","addeddIE","schedule_cycle","Cycle","schedule_cycleunit","CycleUnit","schedule_cyclestart","CycleStart","xb","i_filtered","v","localStorage","getItem","User","allCount","w","pageChangeEvent","contractUT","PATH_EQUIPMENTS_NO_CONTRACT","console","PAGE_SERVICE_CONTACT","PAGE_INSTALL_EQUIPMENTS","PAGE_MAINTENANCE_DATA","PAGE_ADD_SERVICE_CONTACT","saveNewServiceContact","serviceContact","getCurrentContract","CoreEditInspectionDutiesComponent","cycleUnits","equipmentOperatorTaskMarkers$","installEquipment$","result1","showHeader","log","closeRequest","AddServiceContactComponent","cancelRequest","IsMaintenance","IsInspection","Department","ContractContactPhone","ContractContactPerson","ContractContactEmailAdd","ContactEmailAdd","ContactPerson","ContactPhone1","ContactPhone2","FileUploader","ImageUploadComponent","uploader","isHTML5","allowedMimeType","maxFileSize","method","headers","removeAfterUpload","authToken","getAuthorizationHeader","onBuildItemForm","item","form","onAfterAddingAll","fileItems","onAfterAddingFile","fileItem","addFile","onWhenAddingFileFailed","options","onBeforeUploadItem","onProgressItem","progress","onProgressAll","onSuccessItem","response","status","onErrorItem","onCancelItem","onCompleteItem","onCompleteAll","fileOver","hasDropZoneOver","uploadAll","EntityType","imageUpload","imageResult","uploadImage","complete","odataImageUrl","rawFile","resetImageModel","removeImageFromModel","imageIndex","delay","ms","Promise","resolve","setTimeout","odatatools","Method","ProxyBase","additonalHeaders","Headers","Accept","attrname","ODataQueryOptionBase","resolveODataOptions","query","join","addToQuery","emptyQuery","ODataQueryOptionsGetSingle","ODataQueryFilterOptions","properties","property","order","Top","select","Skip","Search","searchExpression","customData","EntitySet","additionalHeaders","replace","reject","requri","request","GET","requestUri","odatajs","oData","statusText","Put","PUT","POST","oldvalordelta","newval","getDelta","PATCH","oldval","newVal","ret","prop","DELETE","EntityContainer","uri","Uri","AccountTypes","ActionLogOperations","ActionLogElements","EventTypes","Api","Odata","MaintenanceContractApproachFeeTypes","MaintenanceContractCancellationPeriods","MaintenanceContractCancellationUnits","MaintenanceContractCancellationCalendars","AccountRoles","BuildingRoles","Container","CountryEntitySet","RegionEntitySet","UserEntitySet","AccountEntitySet","AccountRole","AccountRoleEntitySet","AccountProfile","AccountProfileEntitySet","AccountDataProcessingAgreement","AccountDataProcessingAgreementEntitySet","AccountRights","AccountRightsEntitySet","AccountSubscriptionHistory","AccountSubscriptionHistoryEntitySet","BuildingRole","BuildingRoleEntitySet","Invitation","InvitationEntitySet","BuildingEntitySet","BuildingStatistics","BuildingStatisticsEntitySet","EquipmentEntitySet","EquipmentTypeEntitySet","ModuleEntitySet","ModuleTypeEntitySet","ScheduleEntitySet","EventEntitySet","MaintenanceContractEntitySet","MaintenanceContractMapping","MaintenanceContractMappingEntitySet","RoomEntitySet","FloorEntitySet","Section","SectionEntitySet","UsageTypeEntitySet","CostGroup","CostGroupEntitySet","ActionLog","ActionLogEntitySet","ServiceProviderEntitySet","DocumentEntitySet","DocumentTypeEntitySet","DocumentTypeGroupEntitySet","ImageEntitySet","SubscriptionPlan","SubscriptionPlanEntitySet","LegalArea","LegalAreaEntitySet","OperatorTaskEntitySet","InspectionDutyEntitySet","QRCode","QRCodeEntitySet","QRCodeAssign","QRCodeAssignEntitySet","Branch","BranchEntitySet","ZZZAccount","ZZZAccountEntitySet","ZZZUser","ZZZUserEntitySet","AcceptInvitation","AccessCode","AddDefaults","Injectable","lastValueFrom","ODataLiteral","ODataType","ODataContext","ODataEntitySet","ODataOperationSet","ODataActionOperation","ODataFunctionOperation","ODataFunctionSetOperation","ODataGetOperation","OperationBLockReasons","Operations_1","ServiceRequestTypes","AcceptInvitationInOperationsOnAccountInOperations","settings","subscription","http","post","getBaseUrl","JSON","stringify","withCredentials","AcceptUsageTermsInOperationsOnUserInOperations","AcceptTerms","CertifyAsCompany","ForfeitCoolingOffPeriod","AddDefaultsInOperationsOnBuildingInPropertyCore","Updates","CanOperateInOperationsOnAccountInOperations","CanOperateInOperationsOnBuildingInPropertyCore","CanOperateInOperationsOnEventInPropertyCore","CanOperateInOperationsOnInspectionDutyInPropertyCore","CanOperateInOperationsOnMaintenanceContractInPropertyCore","CanOperateInOperationsOnMaintenanceJobInPropertyCore","CanOperateInOperationsOnScheduleInPropertyCore","CheckNameInOperationsOnAccountInOperations","CheckValue","ExpandInPropertyCoreOnScheduleInPropertyCoreOnEntitySet","IsValidInUser","EMail","IsDataEncrypted","SendContactRequestInOperationsOnAccountInOperations","Message","SendMobileApplicationRequestInOperationsOnAccountInOperations","SendQuickResponseCodeRequestInOperationsOnAccountInOperations","Amount","SendServiceRequestInOperationsOnAccountInOperations","RequestType","BuildingIdentities","SignDataProcessingAgreementInOperationsOnAccountInOperations","Change","targetIdentity","CalculateDateInOperationsOnScheduleInPropertyCoreOnEntitySet","Start","Unit","parameters","toUrlString","EncodeValueInOperationsOnAttributeTypeInPropertyCoreOnEntitySet","SearchInObjektBriefOnBuildingInPropertyCoreOnEntitySet","SearchInObjektBriefOnEquipmentInPropertyCoreOnEntitySet","SearchInObjektBriefOnModuleInPropertyCoreOnEntitySet","CountryEntityActions","baseUrl","CountryEntityFunctions","CountryEntitySetActions","CountryEntitySetFunctions","CountryEntityGetOperation","buildQueryUrl","Functions","odatasettings","entitySetUrl","definedname","RegionEntityActions","RegionEntityFunctions","RegionEntitySetActions","RegionEntitySetFunctions","RegionEntityGetOperation","UserEntityActions","UserEntityFunctions","UserEntitySetActions","UserEntitySetFunctions","UserEntityGetOperation","AccountEntityActions","AccountEntityFunctions","AccountEntitySetActions","AccountEntitySetFunctions","AccountEntityGetOperation","AccountRoleEntityActions","AccountRoleEntityFunctions","AccountRoleEntitySetActions","AccountRoleEntitySetFunctions","AccountRoleEntityGetOperation","AccountDataProcessingAgreementEntityActions","AccountDataProcessingAgreementEntityFunctions","AccountDataProcessingAgreementEntitySetActions","AccountDataProcessingAgreementEntitySetFunctions","AccountDataProcessingAgreementEntityGetOperation","AccountRightsEntityActions","AccountRightsEntityFunctions","AccountRightsEntitySetActions","AccountRightsEntitySetFunctions","AccountRightsEntityGetOperation","AccountSubscriptionHistoryEntityActions","AccountSubscriptionHistoryEntityFunctions","AccountSubscriptionHistoryEntitySetActions","AccountSubscriptionHistoryEntitySetFunctions","AccountSubscriptionHistoryEntityGetOperation","BuildingRoleEntityActions","BuildingRoleEntityFunctions","BuildingRoleEntitySetActions","BuildingRoleEntitySetFunctions","BuildingRoleEntityGetOperation","InvitationEntityActions","InvitationEntityFunctions","InvitationEntitySetActions","InvitationEntitySetFunctions","InvitationEntityGetOperation","BuildingEntityActions","BuildingEntityFunctions","BuildingEntitySetActions","BuildingEntitySetFunctions","BuildingEntityGetOperation","EquipmentEntityActions","EquipmentEntityFunctions","EquipmentEntitySetActions","EquipmentEntitySetFunctions","EquipmentEntityGetOperation","ModuleEntityActions","ModuleEntityFunctions","ModuleEntitySetActions","ModuleEntitySetFunctions","ModuleEntityGetOperation","AttributeTypeEntityActions","AttributeTypeEntityFunctions","AttributeTypeEntitySetActions","AttributeTypeEntitySetFunctions","AttributeTypeEntityGetOperation","AttributeTypeEntitySet","AttributeTypeSetEntityActions","AttributeTypeSetEntityFunctions","AttributeTypeSetEntitySetActions","AttributeTypeSetEntitySetFunctions","AttributeTypeSetEntityGetOperation","AttributeTypeSetEntitySet","BuildingStatisticsEntityActions","BuildingStatisticsEntityFunctions","BuildingStatisticsEntitySetActions","BuildingStatisticsEntitySetFunctions","BuildingStatisticsEntityGetOperation","EquipmentTypeEntityActions","EquipmentTypeEntityFunctions","EquipmentTypeEntitySetActions","EquipmentTypeEntitySetFunctions","EquipmentTypeEntityGetOperation","ModuleTypeEntityActions","ModuleTypeEntityFunctions","ModuleTypeEntitySetActions","ModuleTypeEntitySetFunctions","ModuleTypeEntityGetOperation","ScheduleEntityActions","ScheduleEntityFunctions","ScheduleEntitySetActions","ScheduleEntitySetFunctions","ScheduleEntityGetOperation","EventEntityActions","EventEntityFunctions","EventEntitySetActions","EventEntitySetFunctions","EventEntityGetOperation","EventResponseEntityActions","EventResponseEntityFunctions","EventResponseEntitySetActions","EventResponseEntitySetFunctions","EventResponseEntityGetOperation","EventResponseEntitySet","MaintenanceContractEntityActions","MaintenanceContractEntityFunctions","MaintenanceContractEntitySetActions","MaintenanceContractEntitySetFunctions","MaintenanceContractEntityGetOperation","MaintenanceJobEntityActions","MaintenanceJobEntityFunctions","MaintenanceJobEntitySetActions","MaintenanceJobEntitySetFunctions","MaintenanceJobEntityGetOperation","MaintenanceJobEntitySet","RoomEntityActions","RoomEntityFunctions","RoomEntitySetActions","RoomEntitySetFunctions","RoomEntityGetOperation","FloorEntityActions","FloorEntityFunctions","FloorEntitySetActions","FloorEntitySetFunctions","FloorEntityGetOperation","MeasurementUnitEntityActions","MeasurementUnitEntityFunctions","MeasurementUnitEntitySetActions","MeasurementUnitEntitySetFunctions","MeasurementUnitEntityGetOperation","MeasurementUnitEntitySet","UsageTypeEntityActions","UsageTypeEntityFunctions","UsageTypeEntitySetActions","UsageTypeEntitySetFunctions","UsageTypeEntityGetOperation","CostGroupEntityActions","CostGroupEntityFunctions","CostGroupEntitySetActions","CostGroupEntitySetFunctions","CostGroupEntityGetOperation","ActionLogEntityActions","ActionLogEntityFunctions","ActionLogEntitySetActions","ActionLogEntitySetFunctions","ActionLogEntityGetOperation","ServiceProviderEntityActions","ServiceProviderEntityFunctions","ServiceProviderEntitySetActions","ServiceProviderEntitySetFunctions","ServiceProviderEntityGetOperation","DocumentEntityActions","DocumentEntityFunctions","DocumentEntitySetActions","DocumentEntitySetFunctions","DocumentEntityGetOperation","DocumentTypeEntityActions","DocumentTypeEntityFunctions","DocumentTypeEntitySetActions","DocumentTypeEntitySetFunctions","DocumentTypeEntityGetOperation","DocumentTypeGroupEntityActions","DocumentTypeGroupEntityFunctions","DocumentTypeGroupEntitySetActions","DocumentTypeGroupEntitySetFunctions","DocumentTypeGroupEntityGetOperation","ImageEntityActions","ImageEntityFunctions","ImageEntitySetActions","ImageEntitySetFunctions","ImageEntityGetOperation","LegalAreaEntityActions","LegalAreaEntityFunctions","LegalAreaEntitySetActions","LegalAreaEntitySetFunctions","LegalAreaEntityGetOperation","OperatorTaskEntityActions","OperatorTaskEntityFunctions","OperatorTaskEntitySetActions","OperatorTaskEntitySetFunctions","OperatorTaskEntityGetOperation","InspectionDutyHistoryEntityActions","InspectionDutyHistoryEntityFunctions","InspectionDutyHistoryEntitySetActions","InspectionDutyHistoryEntitySetFunctions","InspectionDutyHistoryEntityGetOperation","InspectionDutyHistoryEntitySet","InspectionDutyUpdateEntityActions","InspectionDutyUpdateEntityFunctions","InspectionDutyUpdateEntitySetActions","InspectionDutyUpdateEntitySetFunctions","InspectionDutyUpdateEntityGetOperation","InspectionDutyUpdateEntitySet","InspectionDutyEntityActions","InspectionDutyEntityFunctions","InspectionDutyEntitySetActions","InspectionDutyEntitySetFunctions","InspectionDutyEntityGetOperation","QuickResponseCodeEntityActions","QuickResponseCodeEntityFunctions","QuickResponseCodeEntitySetActions","QuickResponseCodeEntitySetFunctions","QuickResponseCodeEntityGetOperation","QuickResponseCodeEntitySet","ODataCoreContextODataTypes","AccountStatistics","AttributeTypeSet","BuildingKpiMarker","DocumentTypeMarker","EquipmentKpiMarker","EquipmentStatistics","EventKpiMarker","EventParent","InspectionDutyHistory","InspectionDutyUpdate","ModuleStatistics","OperatorTaskMarker","RoomStatistics","ServiceProviderStatistics","ODataCoreContextContainerActions","ODataCoreContextContainerFunctions","ODataCoreContext","ODataSettings","flatMap","BuildingNoUsageState","BuildingEditUsagesComponent","PATH_BUILDINGS_NO_USAGE","notify","ACTION_SET_USAGE","Mandator","MandatorService","ManageUsersComponent","mandatorService","UserType","MEMBER","getCurrentMandatorWithRights$","mandator","Rights","CanEdit","Buildings","permissions","accumulator","Roles","role","Email","RoleBuildings","Role","loginPermissions","toLowerCase","localeCompare","removeOwner","owner","email","editOwner","editUser","removeUserPermissions","userPermissions","permission","user","_addedBuildings","_removedBuildings","userEmail","userType","Administrator","OWNER","buildings","Users","p","windowClass","buildingIds","invite","userIdentity","wasUserOwner","saveUser","saveFct","selectBuilding","onServiceContactChange","editServiceProvider","serviceProvider","alert","removeServiceProvider","LoggerService","ServiceContactWizardComponent","loggerService","logger","getLogger","serviceContact$","sc","backToListDetailPage","backToStartPage","updateServiceProvider","createServiceProvider","serviceContactId","EquipmentEventCount","ModuleEventCount","MaintenanceContractCount","IEICount","IMICount","MCCount"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}