Exemple #1
0
        public async Task <IEnumerable <T> > GetByFilter(Expression <Func <T, bool> > predicate = null,
                                                         Func <IQueryable <T>, IOrderedQueryable <T> > orderBy            = null,
                                                         Func <IQueryable <T>, IIncludableQueryable <T, object> > include = null,
                                                         bool enableTracking = true)
        {
            using (var context = new GestionSanatorialContext())
            {
                IQueryable <T> query = context.Set <T>();

                if (enableTracking)
                {
                    query = query.AsNoTracking();
                }

                if (include != null)
                {
                    query = include(query);
                }

                if (predicate != null)
                {
                    query = query.Where(predicate);
                }
                return(orderBy != null
                    ? await orderBy(query).ToListAsync()
                    : await query.ToListAsync());
            }
        }
Exemple #2
0
 public async Task Delete(T entity)
 {
     using (var context = new GestionSanatorialContext())
     {
         context.Entry(entity).State = EntityState.Deleted;
         context.Set <T>().Remove(entity);
         await context.SaveChangesAsync();
     }
 }
Exemple #3
0
        public async Task Create(T entity)
        {
            using (var context = new GestionSanatorialContext())
            {
                await context.Set <T>().AddAsync(entity);

                await context.SaveChangesAsync();
            }
        }
Exemple #4
0
        public async Task <T> GetById(long id,
                                      Func <IQueryable <T>, IIncludableQueryable <T, object> > include = default,
                                      bool enableTracking = true)
        {
            using (var context = new GestionSanatorialContext())
            {
                IQueryable <T> query = context.Set <T>();

                if (enableTracking)
                {
                    query = query.AsNoTracking();
                }

                if (include != null)
                {
                    query = include(query);
                }
                return(await query.FirstOrDefaultAsync(x => x.Id == id));
            }
        }