public JsonResult SalvarEntregaDeSolicitacao(EntregaDaSolicitacaoViewModel viewModel)
        {
            var requisicao = new RealizarEntregaDeUmaSolicitacaoRequisicao
            {
                Observacoes         = viewModel.Observacao,
                CodigoDaSolicitacao = viewModel.Codigo,
                CodigoDoResponsavel = User.ToPessoa().Codigo,
                Aceita           = viewModel.Aceita,
                CodigoDoPrograma = Session.ProgramaAtivo().Codigo
            };

            var resposta = _solicitacaoServicoDeAplicacao.RealizarEntregaDeUmaSolicitacao(requisicao);

            return(Json(new { resposta.Sucesso, resposta.Erros, Solicitacao = resposta.Solicitacao != null ? resposta.Solicitacao.ToViewModel() : null }));
        }
        public RealizarEntregaDeUmaSolicitacaoResposta RealizarEntregaDeUmaSolicitacao(RealizarEntregaDeUmaSolicitacaoRequisicao requisicao)
        {
            var resposta = new RealizarEntregaDeUmaSolicitacaoResposta();

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