public ActionResult Visualizar(int id)
        {
            Processo processo = _bus.Obter(id);

            if (!Validacao.EhValido)
            {
                return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
            }

            SalvarVM vm = new SalvarVM(_busLista.TiposProcesso, processo.Tipo.Id);

            vm.RequerimentoVM.IsVisualizar           = true;
            vm.RequerimentoVM.IsRequerimentoProcesso = true;
            vm.SetProcesso(processo, _busLista.ResponsavelFuncoes);

            vm.IsEditar = false;
            vm.RequerimentoVM.IsEditar = false;

            if (Request.IsAjaxRequest())
            {
                return(PartialView("VisualizarModal", vm));
            }
            else
            {
                return(View(vm));
            }
        }
        public ActionResult Editar(int id)
        {
            ActionResult retorno = Redirecionar(id, true);

            if (retorno != null)
            {
                return(retorno);
            }

            Processo processo = _bus.Obter(id);

            if (!Validacao.EhValido)
            {
                return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
            }

            SalvarVM vm = new SalvarVM(_busLista.TiposProcesso, processo.Tipo.Id);

            vm.SetProcesso(processo, _busLista.ResponsavelFuncoes);
            vm.IsEditar = true;
            vm.RequerimentoVM.IsEditar = true;
            vm.PodeAutuar = User.IsInRole(ePermissao.ProcessoAutuar.ToString());

            if (Request.IsAjaxRequest())
            {
                return(Json(new { @EhValido = Validacao.EhValido, @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "ProcessoPartial", vm) }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(View(vm));
            }
        }
        private ActionResult Redirecionar(int id, bool isEditar = false)
        {
            if (Request.IsAjaxRequest())
            {
                _validarJuntarApensar.Apensado(id);

                if (Validacao.EhValido && isEditar)
                {
                    _validar.VerificarPossuiAtividadesNaoEncerrada(id);
                }

                if (Validacao.EhValido)
                {
                    _validar.EmPosse(id, 2);
                }

                if (!isEditar)
                {
                    Validacao.Erros.RemoveAll(x => x.Tipo == eTipoMensagem.Advertencia);
                }
                else if (Validacao.EhValido)
                {
                    return(null);
                }

                Processo processo = _bus.Obter(id);

                SalvarVM vm = new SalvarVM(_busLista.TiposProcesso, processo.Tipo.Id);
                vm.RequerimentoVM.IsVisualizar           = true;
                vm.RequerimentoVM.IsRequerimentoProcesso = true;
                vm.SetProcesso(processo, _busLista.ResponsavelFuncoes);

                vm.IsEditar = false;
                vm.RequerimentoVM.IsEditar = false;

                return(Json(new { @EhValido = Validacao.EhValido, @SetarHtml = true, @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "VisualizarPartial", vm), @Msg = Validacao.Erros }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                _validarJuntarApensar.Apensado(id);

                if (Validacao.EhValido && isEditar)
                {
                    _validar.VerificarPossuiAtividadesNaoEncerrada(id);
                }

                if (Validacao.EhValido)
                {
                    _validar.EmPosse(id, 1);
                }

                if (!Validacao.EhValido)
                {
                    return(RedirectToAction("", Validacao.QueryParamSerializer()));
                }
            }

            return(null);
        }