blob: 90a51d4d83dab8adf3ec68c07b7359b62d01cd29 [file] [log] [blame]
/*
******************************************************************************
* Copyright © 2018 PTA GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
******************************************************************************
*/
import { Injectable } from '@angular/core';
import { MessageServiceCustom, MessageDefines } from '../message.service';
import { UserService } from '../user.service';
import { SessionContext } from '../../common/session-context';
import { BaseDataService } from '../base-data.service';
import { RoleAccessService } from '../role-access.service';
import { RoleAccessHelperService } from './role-access-helper.service';
import { BackendSettingsService } from '../backend-settings.service';
@Injectable()
export class BaseDataLoaderService {
constructor(
private baseDataService: BaseDataService,
private userService: UserService,
private msgService: MessageServiceCustom,
private sessionContext: SessionContext,
private roleAccessService: RoleAccessService,
private roleAccessHelper: RoleAccessHelperService,
private backendSettingsService: BackendSettingsService
) {
this.msgService.loginLogoff$.subscribe(msg => this.onLoginLogoff(msg));
}
onLoginLogoff(msg: string): void {
this.sessionContext.initBannerMessage();
if (msg === MessageDefines.MSG_LOG_IN_SUCCEEDED) {
this.sessionContext.setUserAuthenticated(true);
this.loadBaseData();
}
if (msg === MessageDefines.MSG_LOG_OFF) {
this.sessionContext.setUserAuthenticated(false);
this.sessionContext.clearStorage();
}
}
loadBaseData() {
// load base data (stammdaten) here!
this.baseDataService.getCostCenters()
.subscribe(center => this.sessionContext.setCostCenters(center),
error => {
console.log(error);
});
this.baseDataService.getNetworkControlsFromSingleGridmeasures()
.subscribe(res => this.sessionContext.setNetworkControlsFromSingleGridmeasures(res),
error => {
console.log(error);
});
this.baseDataService.getResponsiblesOnSiteFromGridmeasures()
.subscribe(res => this.sessionContext.setResponsiblesOnSiteFromGridmeasures(res),
error => {
console.log(error);
});
this.baseDataService.getBranches()
.subscribe(branch => this.sessionContext.setBranches(branch),
error => {
console.log(error);
});
this.baseDataService.getStatuses()
.subscribe(status => this.sessionContext.setStatuses(status),
error => {
console.log(error);
});
this.userService.getUsers()
.subscribe(users => {
this.sessionContext.setAllUsers(users);
},
error => {
console.log(error);
});
this.loadRoleAccessdefinitions();
this.baseDataService.getUserDepartments()
.subscribe(departments => this.sessionContext.setAllUserDepartments(departments),
error => {
console.log(error);
});
this.baseDataService.getEmailAddressesFromTemplates()
.subscribe(emails => this.sessionContext.setEmailAddressesFromTemplates(emails),
error => {
console.log(error);
});
this.backendSettingsService.getBackendSettings()
.subscribe(settings => this.sessionContext.setBackendsettings(settings),
error => {
console.log(error);
});
this.baseDataService.getTerritories()
.subscribe(ter => this.sessionContext.setTerritories(ter),
error => {
console.log(error);
});
}
loadRoleAccessdefinitions(): void {
this.roleAccessService.getRoleAccessDefinition().subscribe(
res => this.roleAccessHelper.init(res),
error => {
console.log(error);
});
}
}