Search in sources :

Example 1 with SmsService

use of il.ac.technion.cs.smarthouse.system.services.communication_services.SmsService 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");
    }
}
Also used : UserInformation(il.ac.technion.cs.smarthouse.system.user_information.UserInformation) PhoneService(il.ac.technion.cs.smarthouse.system.services.communication_services.PhoneService) SmsService(il.ac.technion.cs.smarthouse.system.services.communication_services.SmsService) EmailService(il.ac.technion.cs.smarthouse.system.services.communication_services.EmailService) Contact(il.ac.technion.cs.smarthouse.system.user_information.Contact)

Aggregations

EmailService (il.ac.technion.cs.smarthouse.system.services.communication_services.EmailService)1 PhoneService (il.ac.technion.cs.smarthouse.system.services.communication_services.PhoneService)1 SmsService (il.ac.technion.cs.smarthouse.system.services.communication_services.SmsService)1 Contact (il.ac.technion.cs.smarthouse.system.user_information.Contact)1 UserInformation (il.ac.technion.cs.smarthouse.system.user_information.UserInformation)1