public T Obter(int id)
 {
     using (var db = new CodeFirstDBContext())
     {
         return(db.Set <T>().Find(id));
     }
 }
 public List <T> Listar()
 {
     using (var db = new CodeFirstDBContext())
     {
         return(db.Set <T>().Where(x => !x.FlagExcluido).ToList());
     }
 }
 public void Excluir(T modelo)
 {
     using (var db = new CodeFirstDBContext())
     {
         modelo.FlagExcluido = true;
         Atualizar(modelo);
     }
 }
        public T Atualizar(T modelo)
        {
            using (var db = new CodeFirstDBContext())
            {
                db.ChangeTracker.AutoDetectChangesEnabled = false;

                db.Entry(modelo).State = EntityState.Modified;

                db.SaveChanges();

                return(modelo);
            }
        }
        public T Inserir(T modelo)
        {
            using (var db = new CodeFirstDBContext())
            {
                db.ChangeTracker.AutoDetectChangesEnabled = false;
                AtualizarValoresPadroes(modelo);
                db.Set <T>().Add(modelo);

                db.SaveChanges();

                return(modelo);
            }
        }
        public List <Video> ListarVideosCompletos()
        {
            using (var db = new CodeFirstDBContext())
            {
                IQueryable <Video> query = db.Video.Where(x => !x.FlagExcluido);

                //Indica que deve trazer a entidade Responsável
                query = query.Include(x => x.Responsavel);

                //Indica de deve trazer a Entidade Categoria associada através da VideoCategoria
                query = query.Include("VideoCategorias.Categoria");

                return(query.ToList());
            }
        }
        public Video ObterVideoCompleto(int id)
        {
            using (var db = new CodeFirstDBContext())
            {
                //Define que será realizada uma pesquisa pelo campo ID
                IQueryable <Video> query = db.Video.Where(x => x.IdVideo == id);

                //Indica que deve trazer a entidade Responsável
                query = query.Include(x => x.Responsavel);

                //Indica de deve trazer a Entidade Categoria associada através da VideoCategoria
                query = query.Include("VideoCategorias.Categoria");

                return(query.FirstOrDefault());
            }
        }