コード例 #1
0
        public ActionResult ValidarUsuarioSenha(InclusaoLinkExternoVM model)
        {
            try
            {
                ViewBag.NomeEmpresa = contratanteBP.BuscarPorId(model.IdContratante).RAZAO_SOCIAL;
                ViewBag.ExibirFicha = false;

                //Validando apenas Login
                if (!model.isValidarSenha)
                {
                    ModelState.Remove("Senha");
                }

                if (ModelState.IsValid)
                {
                    Usuario usuario = usuarioBP.BuscarPorLogin(model.CPF);
                    if (!model.isValidarSenha)
                    {
                        if (usuario != null)
                        {
                            return(RedirectToAction("Acesso", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}&Login={2}&SolicitacaoID=0&TravaLogin=0",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                        else //RedirectToAction CRIAR USUÁRIO
                        {
                            return(RedirectToAction("CadastrarUsuario", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                    }
                    else
                    {
                        if (usuario == null)
                        {
                            return(RedirectToAction("CadastrarUsuario", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                        ProcessoLoginDTO processoLogin = _processoLoginService.ExecutarLogin(model.CPF, model.Senha);
                        if (!processoLogin.Status)
                        {
                            return(RedirectToAction("CadastrarUsuario", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                        else
                        {
                            ModelState.Remove("FichaCadastral");

                            var filtroPesquisaFornecedor = PredicateBuilder.New <Fornecedor>();
                            filtroPesquisaFornecedor = filtroPesquisaFornecedor.And(x => x.CNPJ == model.CPF || x.CPF == model.CPF);

                            DadosExternoPreCadastro preCadastro = new DadosExternoPreCadastro(pjpfBaseBp.ListarPorDocumento(model.CPF), model.CPF, model.IdContratante);
                            preCadastro.PopularDados();

                            switch (preCadastro.PreCadastroEnum)
                            {
                            case CasosPreCadastroEnum.PreCadastradoOutroContratante:
                                model.FichaCadastral = new FichaCadastralWebForLinkVM(model.IdContratante, CasosPreCadastroEnum.PreCadastradoOutroContratante);
                                break;

                            case CasosPreCadastroEnum.PreCadastradoProprio:
                                model.FichaCadastral = PopularFichaCadastral(preCadastro.FornecedorBaseProprio, model.IdContratante, CasosPreCadastroEnum.PreCadastradoProprio, model.Link);
                                break;

                            //case CasosPreCadastroEnum.CadastradoOutroContratante:
                            //    model.FichaCadastral = PopularFichaCadastral(preCadastro.FornecedorList.FirstOrDefault(), true, model.IdContratante, CasosPreCadastroEnum.CadastradoOutroContratante);
                            //    break;
                            //case CasosPreCadastroEnum.CadastradoProprio:
                            //    model.FichaCadastral = PopularFichaCadastral(preCadastro.FornecedorProprio, false, model.IdContratante, CasosPreCadastroEnum.CadastradoProprio);
                            //    break;
                            default:
                                break;
                            }
                        }
                    }
                }
                ViewBag.ExibirFicha = true;
                return(PartialView("~/Areas/Externo/Views/PreCadastro/Index.cshtml", model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return(View());
            }
        }
コード例 #2
0
        public ActionResult Acesso(AcessoVM model)
        {
            string chave = Path.GetRandomFileName().Replace(".", "");

            try
            {
                var usuarioLogado = _usuarioService.BuscarPorLogin(model.Login);

                //Valida Usuário Existe
                if (usuarioLogado == null)
                {
                    Log.Info("Usuário inválido!");
                    FinalizarAcesso();
                    ModelState.AddModelError("", "Usuário inválido!");
                }

                if (ModelState.IsValid)
                {
                    ProcessoLoginDTO processoLogin = _processoLoginService.ExecutarLogin(model.Login, model.Senha);
                    if (usuarioLogado.ATIVO)
                    {
                        if (Acessar(model.Login, model.Senha))
                        {
                            if (model.TipoCadastroNovoUsuario == EnumTipoCadastroNovoUsuario.PreCadastrado)
                            {
                                return(RedirectToAction("PopularValidarUsuarioSenha", "PreCadastro", new
                                {
                                    area = "Externo",
                                    chaveurl = Cripto.Criptografar(string.Format("idContratante={0}&cnpj={1}&senha={2}",
                                                                                 model.ContratanteId, model.Login, model.Senha), Key),
                                    returnUrl = model.ReturnUrl
                                }));
                            }
                            if (usuarioLogado.CONTRATANTE_ID == null) //Se for Fornecedor vá pra essa página
                            {
                                if (model.SolicitacaoId == null)
                                {
                                    var pjpf = _pjPfService.BuscarIdFornecedorPorCnpj(model.Login);

                                    if (pjpf == 0)
                                    {
                                        model.SolicitacaoId = _solicitacaoCadastroFornecedorService.BuscarIdSolicitacaoPorCnpj(model.Login);
                                    }
                                    else
                                    {
                                        model.FornecedorId = pjpf;
                                    }
                                }
                                return(RedirectToActionPermanent("FichaCadastral", "Documento", new
                                {
                                    chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}&FornecedorID={1}&ContratanteID=0", model.SolicitacaoId, model.FornecedorId), Key)
                                }));
                            }
                            if (usuarioLogado.PRIMEIRO_ACESSO == true)
                            {
                                usuarioLogado.TROCAR_SENHA = chave;
                                _usuarioService.AlterarUsuario(usuarioLogado);
                                return(RedirectToAction("TrocaSenhaEsqueceu", "Home",
                                                        new
                                {
                                    chaveurl = Cripto.Criptografar(string.Format("id={0}&chave={1}", usuarioLogado.ID, chave), Key)
                                }));
                            }
                            if (string.IsNullOrEmpty(model.ReturnUrl))
                            {
                                return(RedirectToAction("Index", "HomeAdmin"));
                            }
                            else
                            {
                                string[] url = model.ReturnUrl.Split(new char[] { '/' });
                                if (url.Length > 0)
                                {
                                    return(Redirect(model.ReturnUrl));
                                }
                                else
                                {
                                    return(RedirectToAction("Index", "HomeAdmin"));
                                }
                            }
                        }
                    }
                    else
                    {
                        Log.Error(processoLogin.Mensagem);
                        ModelState.AddModelError("", processoLogin.Mensagem);
                    }
                }
                Log.Info("Erro ao tentar logar!");
                FinalizarAcesso();
                ModelState.AddModelError("", "Erro ao tentar logar confirme login e senha de seu usuário");
                return(View(model));
            }
            catch (EntityException ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", "Ocorreu um erro de conexão.");
                FinalizarAcesso();
                return(View(model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", ex.Message);
                FinalizarAcesso();
                return(View(model));
            }
        }