//public void Deletar(Paciente p) {
        //    try {
        //        using (Conexao Con = new Conexao()) {
        //            Con.Entry(p).State = EntityState.Deleted;
        //            Con.SaveChanges();
        //        }
        //    }
        //    catch (Exception e) {
        //        throw new Exception(e.ToString());
        //    }
        //}

        public void Delete(Paciente p)
        {
            try {
                using (Conexao Con = new Conexao()) {
                    p.User   = null;
                    p.Sangue = null;
                    User            u     = new User();
                    List <Consulta> lista = Con.Consultas.AsNoTracking().Where(c => c.IdPaciente == p.Id).ToList();
                    lista.ForEach(l => l.Paciente.User = null);
                    lista.ForEach(l => l.Medico        = null);
                    lista.ForEach(l => l.Paciente      = p);

                    foreach (var item in lista)
                    {
                        Con.Entry(item).State = EntityState.Deleted;
                    }
                    Con.Entry(p).State = EntityState.Deleted;
                    Con.SaveChanges();
                    UserRoles urs = UserRolesDal.FindByUserId(p.IdUser);
                    UserRolesDal.Deletar(urs);
                    UserDal.Deletar(UserDal.FindByKey(p.IdUser));
                    Con.SaveChanges();
                }
            }
            catch (Exception e) {
                throw new Exception("Erro ao Deletar Consulta: " + e.ToString());
            }
        }
        public static void Inserir(Paciente p)
        {
            try {
                using (Conexao Con = new Conexao()) {
                    User u = new User();        //criar user
                    u.UserName        = p.Nome; //setar valor de username = nome do paciente no user
                    u.Password        = p.Cpf;  //setar valor de senha = cpf do paciente no user
                    u.UserEmailAdress = p.Email;
                    p.User            = u;      //setar paciente.user como null
                    //UserDal.Insertt(u); //adicionar user no banco
                    PacienteDal.Insertt(p);     //adicionar paciente no banco

                    //setar valor de email = email do paciente no user
                    p.IdUser = u.UserId;                //setar paciente.idUser como user.UserId
                    UserRoles uroles = new UserRoles(); //criar novo userRoles
                    uroles.RoleId = 2;                  //userRoles.roleId recebe valor 2 pois paciente é usuario do tipo 2
                    uroles.UserId = u.UserId;           //userRoles.userId recebe valor de user.userId
                    UserRolesDal.Insertt(uroles);
                    Con.SaveChanges();                  //atirar bala de comandos engatilhada
                }
            }
            catch (Exception e) {
                throw new Exception(e.ToString());
            }
        }