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));
        }
        public ActionResult PopularValidarUsuarioSenha(string chaveurl, string returnUrl)
        {
            try
            {
                List <ParametroCriptografia> param = Cripto.DescriptografarUrl(chaveurl, Key);
                int idContratante;
                Int32.TryParse(param.First(p => p.Name == "idContratante").Value, out idContratante);
                string cnpj  = param.First(p => p.Name == "cnpj").Value;
                string senha = param.First(p => p.Name == "senha").Value;

                InclusaoLinkExternoVM model = new WebForLink.Web.Areas.Externo.Models.InclusaoLinkExternoVM()
                {
                    IdContratante  = idContratante,
                    CPF            = cnpj,
                    isValidarSenha = false,
                    Senha          = senha
                };
                if (!Acessar(model.CPF, model.Senha, model.IdContratante))
                {
                    throw new Exception("usuário Inválido");
                }
                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);
                    model.FichaCadastral.ChaveUrl = returnUrl;
                    break;

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

                default:
                    break;
                }
                model.FichaCadastral.CNPJ_CPF = PontuarCnpjCpf(cnpj);
                ViewBag.ExibirFicha           = true;
                ViewBag.Imagem = RetornarEnderecoImagemContratante(model.IdContratante);
                return(View("Index", model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return(View());
            }
        }
        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());
            }
        }