public JsonResult Entrar([Bind(Include = "Senha,  EmailAutenticacao")] Pessoa pessoa, string actionRedirect, string controllerRedirect) {
            
            var pessoaResult = context.Pessoa.Where(x =>
                x.Senha == pessoa.Senha &&
                x.Email == pessoa.EmailAutenticacao
            ).FirstOrDefault();

            if (pessoaResult != null) {
                   
                var session = new SessionAutenticacaoClient();
                session.Id = pessoaResult.Id.ToString();
                session.Email = pessoaResult.EmailAutenticacao;
                session.Nome = pessoaResult.NomeRazao;
                session.AutenticacaoTipo = Utils.AutenticacaoTipo.Sistema;

                Session.Add("autenticacao", session);

                if (actionRedirect != null) {
                    return Json(new { RedirectUrl = Url.Action(actionRedirect, controllerRedirect), result = true }, JsonRequestBehavior.AllowGet);
                }

                return Json(new { RedirectUrl = Url.Action("Index","Home"), result = true }, JsonRequestBehavior.AllowGet);
            }

            return Json(new { RedirectUrl = "", result = "Usuário ou senha inválidos." }, JsonRequestBehavior.AllowGet);
            
            
        }
        public ActionResult Facebook(Pessoa pessoa) {
            try
            {
                ViewBag.Menus = context.Menu;

                if (!String.IsNullOrEmpty(pessoa.FacebookId))
                {
                    if (Session["autenticacao"] == null)
                    {
                        var session = new SessionAutenticacaoClient();
                        session.Id = pessoa.FacebookId;
                        session.Email = pessoa.Email;
                        session.Nome = pessoa.NomeRazao;
                        session.AutenticacaoTipo = AutenticacaoTipo.Facebook;


                        var pessoaFacebook = db.Pessoa.Where(x => x.FacebookId == session.Id).FirstOrDefault();

                        if (pessoaFacebook == null)
                        {
                            pessoa.ApelidoFantasia = pessoa.NomeRazao;
                            pessoa.Sexo = Utils.Enum.SexoTipo.Masculino;
                            pessoa.Senha = "senha_facebook";
                            pessoa.Tipo = Utils.Enum.PessoaTipo.Fisica;
                            pessoa.EmailAutenticacao = pessoa.Email;
                            pessoa.ConfirmarSenha = pessoa.Senha;
                            pessoa.Sexo = Utils.Enum.SexoTipo.Masculino;

                            db.Pessoa.Add(pessoa);
                            db.SaveChanges();
                        }

                        Session.Add("autenticacao", session);
                    }

                    return Json(new { RedirectUrl = Url.Action("Index", "Home") }, JsonRequestBehavior.AllowGet);
                }

                return Json(new { RedirectUrl = Url.Action("Index", "Login") }, JsonRequestBehavior.AllowGet);
            }
            catch (DbEntityValidationException error) {
                throw;
            }
        }
        public JsonResult registrar([Bind(Include = "NomeRazao, ApelidoFantasia, Senha, Sexo, Email,ConfirmarSenha")] Pessoa Pessoa)
        {
            ViewBag.Menus = db.Menu;
            ViewBag.Produtos = db.Slide;

            ModelState.Remove("EmailAutenticacao");

            if (ModelState.IsValid)
            {
                Pessoa.EmailAutenticacao = Pessoa.Email;

                db.Pessoa.Add(Pessoa);

                try
                {
                    db.SaveChanges();
                }
                catch (DbEntityValidationException e)
                {
                    throw;
                }
              

                var session = new SessionAutenticacaoClient();
                session.Id = Pessoa.Id.ToString();
                session.Email = Pessoa.Email;
                session.Nome = Pessoa.NomeRazao;
                session.AutenticacaoTipo = AutenticacaoTipo.Sistema;

                Session.Add("autenticacao", session);

                return Json(new { RedirectUrl = Url.Action("Index", "Home") }, JsonRequestBehavior.AllowGet);
            }

            return Json(new { RedirectUrl = Url.Action("registro", "Login") }, JsonRequestBehavior.AllowGet);
        }