/// <summary> /// Método responsável por cumprir o requisito de Autorizar Usuários Cadastrados em Aplicativos /// previamente cadastrados. /// Quando chamado em GET - Retorna a tela de Autorizar Usuário /// Quando chamado em POST - Retorna a tela de Cadastrar /// </summary> /// <returns>A tela de Cadastrar Aplicativo (GET) ou A tela de Index /// podendo ou não conter uma mensamge de erro (Post)</returns> public ActionResult AutorizarUsuario(AutorizarUsuarioViewModel dados) { #region Decidir se deve proseguir com a requisição AutorizarUsuarioViewModel model = new AutorizarUsuarioViewModel(); ActionResult urlRetorno = DecideUrlFormulários("/Autorizacao/AutorizarUsuario", model); if (urlRetorno != null) { if (usuario != null) // Usuario preenchido com os dados da seção na superclasse { model = PreencheModel(model); } return(urlRetorno); // ação que deve ser retornada para o browser } #endregion IList <Autorizacao> autorizacoes = new List <Autorizacao>(); dados.UsuarioLiberacao = usuario; autorizacoes = dados.CriarModelo(); IFachada <Autorizacao> fachada = new FachadaAdmWeb <Autorizacao>(); string retorno; if (Request["Salvar"] != null) { retorno = fachada.SalvarTodos(autorizacoes); } else if (Request["Alterar"] != null) { retorno = fachada.AlterarTodos(autorizacoes); } else if (Request["Inativar"] != null) { Autorizacao auxiliar = new Autorizacao(); auxiliar.OrgaoAutorizado = autorizacoes[0].OrgaoAutorizado; auxiliar.Usuario = autorizacoes[0].Usuario; retorno = fachada.Excluir(autorizacoes[0]); } else { retorno = "Opção Inválida"; } if (retorno != null) // se retornar null, é porque ocorreu tudo bem { ViewBag.Mensagem = retorno; model = PreencheModel(autorizacoes, model); return(View(model)); } ViewBag.Mensagem = "Autorizado com sucesso!"; return(View("../Home/Index")); } // AutorizarUsuario
public ActionResult CopiarAutorizacao(CopiarAutorizacaoViewModel model, AutorizarUsuarioViewModel modelRetorno) { #region Decidir se deve proseguir com a requisição ActionResult urlRetorno = DecideUrlFormulários("/Autorizacao/AutorizarUsuario", modelRetorno); if (urlRetorno != null) { if (usuario != null) // Usuario preenchido com os dados da seção na superclasse { modelRetorno = PreencheModel(modelRetorno); } return(urlRetorno); // ação que deve ser retornada para o browser } #endregion modelRetorno.UsuarioLiberacao = model.UsuarioLiberacao = usuario; IList <Autorizacao> autorizacoes = modelRetorno.CriarModelo(); CopiaDeAutorizacao copia = model.CriarModelo(); IList <CopiaDeAutorizacao> retorno = new List <CopiaDeAutorizacao>(); IFachada <CopiaDeAutorizacao> fachada = new FachadaAdmWeb <CopiaDeAutorizacao>(); fachada.DefineTemQueFecharConexao(false); // manter transação e conexão aberta string msgValidacao = fachada.ConsultarComValidacao(copia, retorno); if (msgValidacao != null) { ViewBag.Mensagem = msgValidacao; fachadaVM = new FachadaAdmWeb <AutorizarUsuarioViewModel>(); fachadaVM.SalvaConexaoAtiva(fachada.RetornaConexaoAtiva()); // mantém conexão anterior fachadaVM.SalvaTransacaoAtiva(fachada.RetornaTransacaoAtiva()); // mantém transação anterior return(View("AutorizarUsuario", PreencheModel(autorizacoes, modelRetorno))); } else if (retorno == null || retorno.Count == 0) { fachadaVM = new FachadaAdmWeb <AutorizarUsuarioViewModel>(); // Por padrão fecha a conexão fachadaVM.SalvaConexaoAtiva(fachada.RetornaConexaoAtiva()); // mantém conexão anterior fachadaVM.SalvaTransacaoAtiva(fachada.RetornaTransacaoAtiva()); // mantém transação anterior ViewBag.Mensagem = "Não há validações para copiar"; return(View("AutorizarUsuario", PreencheModel(autorizacoes, modelRetorno))); } fachada.DefineTemQueFecharConexao(true); // a próxima operação é a última msgValidacao = fachada.SalvarTodos(retorno); if (msgValidacao != null) { ViewBag.Mensagem = msgValidacao; } else { ViewBag.Mensagem = "Autorizações copiadas com sucesso."; } //return View("AutorizarUsuario", PreencheModel(autorizacoes, modelRetorno)); return(View("../Home/Index")); } // CopiarAutorizações