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