public PactoViewModel AtualizarStatus(PactoViewModel pactoViewModel, UsuarioViewModel usuario, eAcaoPacto eAcao, bool commit = true) { BeginTransaction(); if (!usuario.IsDirigente && pactoViewModel.StatusAprovacaoDirigente != null) { pactoViewModel.CpfUsuarioSolicitante = usuario.CPF; pactoViewModel.StatusAprovacaoSolicitante = 1; pactoViewModel.DataAprovacaoSolicitante = DateTime.Now; } CriaHistoricoAcaoEmPacto(pactoViewModel, usuario.IsDirigente, usuario, eAcao); var pacto = Mapper.Map <PactoViewModel, Pacto>(pactoViewModel); var usr = Mapper.Map <UsuarioViewModel, Usuario>(usuario); if (eAcao == eAcaoPacto.Avaliando) { if (pactoViewModel.DataTerminoReal != null) { pacto.DataTerminoReal = pactoViewModel.DataTerminoReal.Value; } pacto.EntregueNoPrazo = 1; } pacto = _pactoService.AtualizarStatus(pacto, usr, eAcao, usuario.IsDirigente, false); if (pacto.ValidationResult.IsValid) { if (eAcao == eAcaoPacto.Assinando) { pacto.ValidationResult.Message = Mensagens.MS_006; } string oper = Domain.Enums.Operacao.Alteração.ToString(); switch (eAcao.ToString()) { case "Suspendendo": oper = Domain.Enums.Operacao.Suspensão.ToString(); break; case "Interrompendo": oper = Domain.Enums.Operacao.Interrupção.ToString(); break; case "Avaliando": oper = Domain.Enums.Operacao.Avaliacao.ToString(); break; case "VoltandoSuspensao": oper = Domain.Enums.Operacao.VoltandoSuspensão.ToString(); break; } _logService.Logar(pacto, usuario.CPF, oper); List <ValidationError> lstErros = Commit(); if (lstErros?.Count > 0) { lstErros.ForEach(e => { // LogManagerComum.LogarErro(null, null, " Erro ao salvar a ação. " + e.Message); pacto.ValidationResult.Add(e); }); pacto.ValidationResult.Message = Mensagens.MS_010; } } pactoViewModel = Mapper.Map <Pacto, PactoViewModel>(pacto); return(pactoViewModel); }