public JsonResult SalvarAprovacaoDeSolicitacao(AprovacaoDeSolicitacaoViewModel viewModel)
        {
            var requisicao = new RealizarAprovacaoDeUmaSolicitacaoRequisicao
            {
                Aprovado            = viewModel.Aprovado,
                Observacoes         = viewModel.Observacao,
                CodigoDaSolicitacao = viewModel.Codigo,
                CodigoDoResponsavel = User.ToPessoa().Codigo,
                CodigoDoPrograma    = Session.ProgramaAtivo().CodPrograma
            };
            var resposta = _solicitacaoServicoDeAplicacao.RealizarAprovacaoDeUmaSolicitacao(requisicao);

            return(Json(new { resposta.Sucesso, resposta.Erros, Solicitacao = resposta.Solicitacao != null ? resposta.Solicitacao.ToViewModel() : null }));
        }
        public RealizarAprovacaoDeUmaSolicitacaoResposta RealizarAprovacaoDeUmaSolicitacao(RealizarAprovacaoDeUmaSolicitacaoRequisicao requisicao)
        {
            var resposta = new RealizarAprovacaoDeUmaSolicitacaoResposta();

            try
            {
                var solicitacao = _solicitacaoRepositorio.ObterPor(requisicao.CodigoDaSolicitacao);
                var responsavel = _clienteRepositorio.ObterPor(requisicao.CodigoDoResponsavel);
                var programa    = _programaRepositorio.ObterPor(requisicao.CodigoDoPrograma);
                solicitacao = _solicitacaoServico.RealizarAprovacao(solicitacao, responsavel, requisicao.Aprovado,
                                                                    requisicao.Observacoes, programa);
                _unitOfWork.Commit();
                resposta.Solicitacao = solicitacao;
                resposta.Sucesso     = true;
            }
            catch (RegraException regraException)
            {
                resposta.Erros = regraException.Erros;
            }
            return(resposta);
        }