public void FinalizarAutomaticamente() { BeginTransaction(); var pactosFinalizados = _pactoService.ObterTodosEmAndamentoComPrazoFinalizado(); pactosFinalizados.ToList().ForEach(p => { _pactoService.FinalizarPacto(p, false); _logService.Logar(p, "Tarefa Automática", Domain.Enums.Operacao.Alteração.ToString()); CriaHistoricoAcaoEmPacto(p, eAcaoPacto.Finalizando); // O envio de email não precisa dar rollback na transação em caso de erro try { _notificadorAppService.EnviarEmailNotificacaoFinalizacaoPacto(Mapper.Map <PactoViewModel>(p)); } catch (Exception ex) { // LogManagerComum.LogarErro(ex, null, " => O Plano de Trabalho " + p.IdPacto + " teve o status alterado para PENDENTE PARA AVALIAÇÃO mas não foi possível notificar os interessados."); } }); Commit(); }