public ActionResult Index(InclusaoLinkExternoVM model)
        {
            var modelCpfCnpj = Mascara.RemoverMascaraCpfCnpj(model.CPF);

            var filtroPesquisaFornecedor = PredicateBuilder.New <Fornecedor>();

            filtroPesquisaFornecedor = filtroPesquisaFornecedor.And(x => x.CNPJ == modelCpfCnpj || x.CPF == modelCpfCnpj);

            DadosExternoPreCadastro preCadastro = new DadosExternoPreCadastro(pjpfBaseBp.ListarPorDocumento(modelCpfCnpj), modelCpfCnpj, 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;

            default:
                break;
            }
            ViewBag.ExibirFicha = true;
            ViewBag.Imagem      = RetornarEnderecoImagemContratante(model.IdContratante);
            return(View(model));
        }
        private ActionResult ExibirInputSenha(InclusaoLinkExternoVM model, bool modelError)
        {
            if (modelError)
            {
                ModelState.AddModelError("Senha", "Senha Incorreta");
            }

            ModelState.Remove("isValidarSenha"); // Se for removido o modelo não aceitará receber novo valor
            model.isValidarSenha = true;
            return(PartialView("~/Areas/Externo/Views/PreCadastro/_PreCadastro_ValidarUsuario_Editavel.cshtml", model));
        }
        // GET: Externo/PreCadastro/
        public ActionResult Index(string chaveurl)
        {
            List <ParametroCriptografia> param = Cripto.DescriptografarUrl(chaveurl, Key);
            int idContratante;

            Int32.TryParse(param.First(p => p.Name == "idContratante").Value, out idContratante);
            InclusaoLinkExternoVM modelo = new InclusaoLinkExternoVM(idContratante, param.First(p => p.Name == "idChave").Value, chaveurl);

            ViewBag.ExibirFicha   = false;
            modelo.isValidarSenha = true;
            ViewBag.Imagem        = RetornarEnderecoImagemContratante(idContratante);
            return(View(modelo));
        }
        public ActionResult ValidarUsuarioSenhaPreCadastro(InclusaoLinkExternoVM model)
        {
            var modelCpfCnpj = model.isCNPJ
                ? model.CNPJ.Replace(".", "").Replace("-", "").Replace("/", "")
                : model.CPF.Replace(".", "").Replace("-", "");

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

            if (model.isCNPJ)
            {
                ModelState.Remove("CPF");
            }
            else
            {
                ModelState.Remove("CNPJ");
            }

            if (ModelState.IsValid)
            {
                string  urlRetorno = Url.Action("Index", "PreCadastro", new { area = "Externo", chaveurl = model.Link });
                Usuario usuario    = usuarioBP.BuscarPorLogin(modelCpfCnpj);
                if (usuario != null)
                {
                    return(RedirectToAction("Acesso", "Home",
                                            new
                    {
                        area = "",
                        chaveurl = Cripto.Criptografar(string.Format("tipocadastro={0}&cnpj={1}&idContratante={2}&Login={1}&SolicitacaoID=0&TravaLogin=1",
                                                                     (int)EnumTipoCadastroNovoUsuario.PreCadastrado, modelCpfCnpj, model.IdContratante), Key),
                        ReturnUrl = urlRetorno
                    }));
                }
                else //RedirectToAction CRIAR USUÁRIO
                {
                    return(RedirectToAction("CadastrarUsuario", "Home",
                                            new
                    {
                        area = "",
                        chaveurl = Cripto.Criptografar(string.Format("id=0&tipocadastro={0}&cnpj={1}&idContratante={2}",
                                                                     (int)EnumTipoCadastroNovoUsuario.PreCadastrado, modelCpfCnpj, model.IdContratante), Key)
                    }));
                }
            }
            return(View(model));
        }
        private ActionResult ExibirInputCnpj(InclusaoLinkExternoVM model, bool usuarioInvalido)
        {
            if (usuarioInvalido)
            {
                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)
                }));
            }

            ModelState.AddModelError("CNPJ", "CNPJ Inválido. Usuário não encontrado.");
            ModelState.Remove("isValidarSenha"); // Se for removido o modelo não aceitará receber novo valor
            model.isValidarSenha = false;
            return(PartialView("~/Areas/Externo/Views/PreCadastro/_PreCadastro_ValidarUsuario_Editavel.cshtml", model));
        }
        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());
            }
        }