Exemplo n.º 1
0
        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();
        }