public ActionResult ContaPF()
        {
            try
            {
                ModelViewPessoaFisica pf = new ModelViewPessoaFisica();
                var id = Session["id"];

                c = new Conexao();
                c.con.Open();
                c.query = new MySqlCommand(String.Format("SELECT * FROM PessoaFisica where IDPessoaFisica = {0}", id), c.con);
                c.rd    = c.query.ExecuteReader();
                while (c.rd.Read())
                {
                    pf.IDPessoaFisica = Convert.ToInt32(c.rd["IDPessoaFIsica"].ToString());
                    pf.CPF            = c.rd["CPF"].ToString();
                    pf.RG             = c.rd["RG"].ToString();
                }
                c.con.Close();

                return(View(pf));
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
        public ActionResult Details(int id)
        {
            try
            {
                ModelViewPessoaFisica pf     = new ModelViewPessoaFisica();
                ModelViewPessoa       person = new ModelViewPessoa();

                c = new Conexao();
                c.con.Open();
                c.query = new MySqlCommand(String.Format("SELECT * FROM Pessoa inner join PessoaFisica on IDPessoa = IDPessoaFisica where IDPessoa = {0}", id), c.con);
                c.rd    = c.query.ExecuteReader();

                while (c.rd.Read())
                {
                    person.Email     = c.rd["Email"].ToString();
                    person.Nome      = c.rd["Nome"].ToString();
                    person.Telefone  = c.rd["Telefone"].ToString();
                    person.Descricao = c.rd["Descricao"].ToString();
                    person.Imagem    = c.rd["Imagem"].ToString();

                    pf.RG  = c.rd["RG"].ToString();
                    pf.CPF = c.rd["CPF"].ToString();


                    pf.Pessoa = person;
                }
                c.con.Close();

                return(View(pf));
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Create(ModelViewPessoaFisica pf)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    //pega o objeto imagem do input
                    HttpPostedFileBase foto = Request.Files["Pessoa.Imagem"];


                    // pega o nome do arquivo
                    var nomeArquivo = Path.GetFileName(foto.FileName);
                    //cria o caminho final da imagem
                    var caminho = Path.Combine(Server.MapPath(Url.Content("~/assets/perfil/")), nomeArquivo);
                    //salva a foto no caminho
                    foto.SaveAs(caminho);
                    //imagem da pessoafisica criado recebe o caminho da imagem salva
                    pf.Pessoa.Imagem = Path.Combine(Url.Content("/assets/perfil/"), nomeArquivo);


                    c = new Conexao();
                    c.con.Open();
                    c.query             = c.con.CreateCommand();
                    c.query.CommandText = "INSERT INTO Pessoa (Email,Senha,Telefone,Nome,Descricao,Imagem) VALUES (@email,@senha,@telefone,@nome,@descricao,@imagem)";
                    c.query.Parameters.AddWithValue("@email", pf.Pessoa.Email);
                    c.query.Parameters.AddWithValue("@senha", pf.Pessoa.Senha);
                    c.query.Parameters.AddWithValue("@nome", pf.Pessoa.Nome);
                    c.query.Parameters.AddWithValue("@telefone", pf.Pessoa.Telefone);
                    c.query.Parameters.AddWithValue("@descricao", pf.Pessoa.Descricao);
                    c.query.Parameters.AddWithValue("@imagem", pf.Pessoa.Imagem);
                    c.query.ExecuteNonQuery();

                    //pega o id da pessoa que foi inserida e atribui à pessoafisica
                    pf.Pessoa.IDPessoa = Convert.ToInt32(c.query.LastInsertedId);
                    c.con.Close();


                    c.con.Open();
                    c.query.CommandText = "INSERT INTO PessoaFisica (IDPessoaFisica,RG,CPF) VALUES (@idpessoafisica, @rg, @cpf)";
                    c.query.Parameters.AddWithValue("@idpessoafisica", pf.Pessoa.IDPessoa);
                    c.query.Parameters.AddWithValue("@rg", pf.RG);
                    c.query.Parameters.AddWithValue("@cpf", pf.CPF);
                    c.query.ExecuteNonQuery();

                    c.con.Close();


                    return(RedirectToAction("Index", "Home"));
                }
                catch
                {
                    return(View());
                }
            }

            return(View());
        }
        public ActionResult Index()
        {
            try
            {
                List <ModelViewPessoaFisica> lista = new List <ModelViewPessoaFisica>();


                c = new Conexao();
                c.con.Open();
                c.query = new MySqlCommand("SELECT * FROM Pessoa inner join PessoaFisica on IDPessoa = IDPessoaFisica", c.con);
                c.rd    = c.query.ExecuteReader();

                while (c.rd.Read())
                {
                    ModelViewPessoaFisica pf     = new ModelViewPessoaFisica();
                    ModelViewPessoa       person = new ModelViewPessoa();


                    pf.IDPessoaFisica = Convert.ToInt32(c.rd["IDPessoaFisica"].ToString());
                    pf.CPF            = c.rd["CPF"].ToString();
                    pf.RG             = c.rd["RG"].ToString();

                    person.Nome      = c.rd["Nome"].ToString();
                    person.Imagem    = c.rd["Imagem"].ToString();
                    person.Descricao = c.rd["Descricao"].ToString();
                    person.Telefone  = c.rd["Telefone"].ToString();

                    pf.Pessoa = person;

                    lista.Add(pf);
                }
                c.con.Close();


                return(View(lista));
            }
            catch
            {
                return(View(new List <ModelViewPessoaFisica>()));
            }
        }
        public ActionResult EditConta(int id)
        {
            try
            {
                if (Session["id"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }


                ModelViewPessoaFisica   pf = new ModelViewPessoaFisica();
                ModelViewPessoaJuridica pj = new ModelViewPessoaJuridica();



                ///Pessoa Fisica
                c = new Conexao();
                c.con.Open();
                c.query = new MySqlCommand(String.Format("SELECT * FROM PessoaFisica where IDPessoaFisica = {0}", id), c.con);
                c.rd    = c.query.ExecuteReader();
                while (c.rd.Read())
                {
                    pf.IDPessoaFisica = Convert.ToInt32(c.rd["IDPessoaFIsica"].ToString());
                    pf.CPF            = c.rd["CPF"].ToString();
                    pf.RG             = c.rd["RG"].ToString();
                }
                c.con.Close();


                ///Pessoa Juridica
                c = new Conexao();
                c.con.Open();
                c.query = new MySqlCommand(String.Format("SELECT * FROM PessoaJuridica where IDPessoaJuridica = {0}", id), c.con);
                c.rd    = c.query.ExecuteReader();
                while (c.rd.Read())
                {
                    pj.IDPessoaJuridica = Convert.ToInt32(c.rd["IDPessoaJuridica"].ToString());
                    pj.RazaoSocial      = c.rd["RazaoSocial"].ToString();
                    pj.CNPJ             = c.rd["CNPJ"].ToString();
                    pj.Logradouro       = c.rd["Logradouro"].ToString();
                    pj.CEP           = c.rd["CEP"].ToString();
                    pj.Cidade        = c.rd["Cidade"].ToString();
                    pj.Bairro        = c.rd["Bairro"].ToString();
                    pj.Numero        = c.rd["Numero"].ToString();
                    pj.Complemento   = c.rd["Complemento"].ToString();
                    pj.AreaDeAtuacao = c.rd["AreaDeAtuacao"].ToString();
                }
                c.con.Close();


                if (pf.IDPessoaFisica != 0)
                {
                    return(RedirectToAction("ContaPF", "Perfil"));
                }
                if (pj.IDPessoaJuridica != 0)
                {
                    return(RedirectToAction("ContaPJ", "Perfil"));
                }



                return(RedirectToAction("Index", "Perfil"));
            }

            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }