use of il.ac.technion.cs.smarthouse.system.services.communication_services.PhoneService in project Smartcity-Smarthouse by TechnionYP5777.
the class AlertsManager method sendAlert.
/**
* Report an abnormality in the expected schedule. The system will contact
* the needed personal, according to the urgency level
*
* @param message
* Specify the abnormality, will be presented to the contacted
* personal
* @param eLevel
* The level of personnel needed in the situation
*/
public final void sendAlert(final String message, final EmergencyLevel eLevel) {
final UserInformation user = systemCore.getUser();
if (user == null) {
log.debug("systemCore.getUser() returned a null");
return;
}
final PhoneService ps = (PhoneService) getAnotherService(ServiceType.PHONE_SERVICE);
final SmsService ss = (SmsService) getAnotherService(ServiceType.SMS_SERVICE);
final EmailService es = (EmailService) getAnotherService(ServiceType.EMAIL_SERVICE);
final List<Contact> $ = user.getContacts(eLevel);
switch(eLevel) {
case SMS_EMERGENCY_CONTACT:
$.stream().forEach(c -> ss.sendMsg(c.getPhoneNumber(), message));
break;
case CALL_EMERGENCY_CONTACT:
case CONTACT_HOSPITAL:
case CONTACT_POLICE:
case CONTACT_FIRE_FIGHTERS:
$.stream().forEach(c -> ps.makeCall(c.getPhoneNumber()));
break;
case EMAIL_EMERGENCY_CONTACT:
$.stream().forEach(c -> es.sendMsg(c.getEmailAddress(), message));
break;
default:
log.warn(eLevel + " is not handled");
}
}
Aggregations