public AbrirUmaSolicitacaoResposta AbrirUmaSolicitacao(AbrirUmaSolicitacaoRequisicao requisicao)
 {
     var resposta = new AbrirUmaSolicitacaoResposta();
     try
     {
         var tipoDaSolicitacao = _tipoDaSolicitacaoRepositorio.ObterPor(requisicao.CodigoDoTipoDaSolicitacao);
         var responsavel = _pessoaRepositorio.ObterPor(requisicao.CodigoDoResponsavel);
         var programa = _programaRepositorio.ObterPor(requisicao.CodigoDoPrograma);
         var solicitacao = _solicitacaoServico.RealizarAbertura(tipoDaSolicitacao, responsavel, requisicao.Protocolo, requisicao.Descricao, programa);
         _solicitacaoRepositorio.Adicionar(solicitacao);
         _unitOfWork.Commit();
         resposta.Solicitacao = solicitacao;
         resposta.Sucesso = true;
     }
     catch (RegraException regraException)
     {
         resposta.Erros = regraException.Erros;
     }
     return resposta;
 }
 public JsonResult AddSolicitacao(NovaSolicitacaoViewModel novaSolicitacaoViewModel)
 {
     var requisicao = new AbrirUmaSolicitacaoRequisicao
     {
         CodigoDoResponsavel = User.ToPessoa().Codigo,
         CodigoDoTipoDaSolicitacao = novaSolicitacaoViewModel.CodigoDoTipoDaSolicitacao,
         Descricao = novaSolicitacaoViewModel.Solicitacao,
         Protocolo = novaSolicitacaoViewModel.Protocolo,
         CodigoDoPrograma = Session.ProgramaAtivo().Codigo
     };
     var resposta = _solicitacaoServicoDeAplicacao.AbrirUmaSolicitacao(requisicao);
     return Json(new { resposta.Sucesso, resposta.Erros, Solicitacao = resposta.Solicitacao.ToViewModel() });
 }