private boolean isCamposEventoValidos(EventoDTO eventoDTO) {
   if (StringUtils.isNotBlank(eventoDTO.getNome())
       && StringUtils.isNotBlank(eventoDTO.getNomeProfessor())
       && StringUtils.isNotBlank(eventoDTO.getDescricao())
       && StringUtils.isNotBlank(eventoDTO.getAno())
       && SacSystemUtil.isNotNull(eventoDTO.getNumeroVagas())) {
     return true;
   } else {
     SacSystemUtil.adicionarMensagemErro(
         ConstantesMensagens.MSG_ERRO_AO_SALVAR_EVENTO_UM_OU_MAIS_CAMPOS_NAO_PREENCHIDOS);
     return false;
   }
 }
  @Override
  @Transactional(readOnly = true)
  public List<EventoDTO> consultarEventos(EventoFiltroDTO eventoFiltroDTO) {

    List<EventoDTO> eventos = eventoDAO.consultarEventos(eventoFiltroDTO);

    for (EventoDTO eventoDTO : eventos) {
      List<HorarioDTO> horarios = horarioManager.consultarHorariosDTO(eventoDTO.getId());
      eventoDTO.setHorarios(horarios);
    }

    return eventos;
  }
  @Override
  @Transactional(rollbackFor = Exception.class)
  public void inserirEvento(EventoDTO eventoDTO) {

    List<Horario> horarios = horarioManager.obterHorarios(eventoDTO.getHorarios());

    Evento evento = obterEvento(eventoDTO);
    eventoDAO.saveOrUpdate(evento);
    removerHorarios(evento);
    configurarInserirHorarios(horarios, evento);
  }
 private Evento obterEvento(EventoDTO eventoDTO) {
   Evento evento = new Evento();
   evento.setId(eventoDTO.getId());
   evento.setNumeroVagas(eventoDTO.getNumeroVagas());
   evento.setNome(eventoDTO.getNome());
   evento.setNomeProfessor(eventoDTO.getNomeProfessor());
   evento.setDescricao(eventoDTO.getDescricao());
   evento.setAno(eventoDTO.getAno());
   return evento;
 }
 @Override
 @Transactional(rollbackFor = Exception.class)
 public void excluirEvento(EventoDTO eventoDTO) {
   Evento evento = eventoDAO.findById(eventoDTO.getId());
   eventoDAO.delete(evento);
 }