package com.megatim.fdxconsultation.core.impl.supervision;
|
|
import com.fdx.messaging.common.StandaloneServerState;
|
import com.megatim.fdxconsultation.core.ifaces.supervision.AgentConfigurationEntityManager;
|
import com.megatim.fdxconsultation.core.ifaces.supervision.StandaloneServerStateEntityManager;
|
import com.megatim.fdxconsultation.dao.ifaces.supervision.StandaloneServerStateEntityDAO;
|
import com.megatim.fdxconsultation.model.mappers.MapStructMapper;
|
import com.megatim.fdxconsultation.model.supervision.StandaloneServerStateEntity;
|
import com.megatim.fdxconsultation.model.supervision.StatutConfiguration;
|
import javax.annotation.PostConstruct;
|
import javax.enterprise.context.ApplicationScoped;
|
import javax.inject.Inject;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
@ApplicationScoped
|
public class StandaloneServerStateEntityManagerImpl implements StandaloneServerStateEntityManager {
|
|
@Inject
|
private StandaloneServerStateEntityDAO dao;
|
|
@Inject
|
private MapStructMapper mapper;
|
|
@Inject
|
private AgentConfigurationEntityManager agentConfigurationManager;
|
|
private StandaloneServerStateEntity standaloneServerStateEntity;
|
|
@PostConstruct
|
public void init() {
|
standaloneServerStateEntity = dao.getCurrentStandaloneServerStateEntity();
|
}
|
|
@Override
|
public StandaloneServerStateEntityDAO getDao() {
|
return dao;
|
}
|
|
@Override
|
public StandaloneServerStateEntity persistStandaloneConfigurationStateEntity(StandaloneServerState standaloneServerState) {
|
|
StandaloneServerStateEntity serverStateEntity = mapper.standaloneServerStateToStandaloneServerStateEntity(standaloneServerState);
|
|
if (serverStateEntity != null) {
|
|
dao.archiveServerState();
|
|
if (serverStateEntity.getAgentConfigurations() != null && !serverStateEntity.getAgentConfigurations().isEmpty()) {
|
serverStateEntity.getAgentConfigurations().stream().forEach(a -> {
|
agentConfigurationManager.archiveAgentConfiguration(a.getAgentCode());
|
a.setStandaloneServerState(serverStateEntity);
|
a.setStatutConfiguration(StatutConfiguration.EN_COURS);
|
});
|
}
|
|
serverStateEntity.setStatutConfiguration(StatutConfiguration.EN_COURS);
|
standaloneServerStateEntity = save(serverStateEntity);
|
return standaloneServerStateEntity;
|
}
|
|
return null;
|
}
|
|
@Override
|
public StandaloneServerStateEntity getCurrentStandaloneServerStateEntity() {
|
return standaloneServerStateEntity;
|
}
|
}
|