public void RetornarSuspensaoAutomaticamente() { BeginTransaction(); var pactosAReiniciar = _pactoService.ObterTodosSuspensosComPrazoParaRetorno(); pactosAReiniciar.ToList().ForEach(p => { _pactoService.ReiniciarPacto(p, false); if (p.ValidationResult.IsValid) { _logService.Logar(p, "Tarefa Automática", Domain.Enums.Operacao.Alteração.ToString()); // O envio de email não precisa dar rollback na transação em caso de erro try { _notificadorAppService.EnviarEmailNotificacaoReativacaoAutomaticaPacto(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."); } } else { // LogManagerComum.LogarErro(null, null, " => O Plano de Trabalho " + p.IdPacto + " não teve o status alterado para Em execução. Erro: " + p.ValidationResult.Erros?.FirstOrDefault()?.Message); } }); Commit(); }