@Override
protected void execute(PrevalentSystem system) throws BusinessException {
Registration systemRegistration = system.getRegistrations().get(registrationId);
RegistrationAppointment registrationAppointment = getAppointment(systemRegistration.getRegistrationAppointment());
if(!registrationAppointment.isReplacement()) {
//Desativa o horario antigo
registrationAppointment.setActive(false);
//Cria o novo horario
registrationAppointment = new RegistrationAppointment(newGdDate, systemRegistration, false);
systemRegistration.getRegistrationAppointment().add(registrationAppointment);
} else {
registrationAppointment.setAppointmentDate(newGdDate);
}
//Remover o agendamento antigo do mapa
int i = 0;
String oldKey = String.valueOf(gdDate.getWeekDay()) + String.valueOf(gdDate.getHourOfDay());
List<RegistrationAppointment> registrationAppointlements = system.getAppointmentMap().get(oldKey);
for (i = 0; i < registrationAppointlements.size(); i++) {
RegistrationAppointment appointment = registrationAppointlements.get(i);
if(appointment.getRegistration().getIdPerson().equals(systemRegistration.getIdPerson())){
break;
}
}
registrationAppointlements.remove(i);