diff --git a/DigitalData.Core.Infrastructure/DbRepository.cs b/DigitalData.Core.Infrastructure/DbRepository.cs index 0fece54..8184835 100644 --- a/DigitalData.Core.Infrastructure/DbRepository.cs +++ b/DigitalData.Core.Infrastructure/DbRepository.cs @@ -21,6 +21,7 @@ public class DbRepository : IRepository where TDbC Mapper = mapper; } + #region Create public virtual async Task CreateAsync(TEntity entity, CancellationToken cancel = default) { Entities.Add(entity); @@ -35,17 +36,21 @@ public class DbRepository : IRepository where TDbC return entities; } - public Task CreateAsync(TDto dto, CancellationToken cancel = default) => CreateAsync(Mapper!.Map(dto), cancel); + public virtual Task CreateAsync(TDto dto, CancellationToken cancel = default) => CreateAsync(Mapper!.Map(dto), cancel); - public Task> CreateAsync(IEnumerable dtos, CancellationToken cancel = default) + public virtual Task> CreateAsync(IEnumerable dtos, CancellationToken cancel = default) => CreateAsync(Mapper!.Map>(dtos), cancel); + #endregion Create - public IQueryable Where(Expression> expression) => Entities.AsNoTracking().Where(expression); + #region Read + public virtual IQueryable Where(Expression> expression) => Entities.AsNoTracking().Where(expression); - public IEnumerable GetAll() => Entities.AsNoTracking().ToList(); + public virtual IEnumerable GetAll() => Entities.AsNoTracking().ToList(); - public async Task> GetAllAsync(CancellationToken cancel = default) => await Entities.AsNoTracking().ToListAsync(cancel); + public virtual async Task> GetAllAsync(CancellationToken cancel = default) => await Entities.AsNoTracking().ToListAsync(cancel); + #endregion Read + #region Update public virtual Task UpdateAsync(TDto dto, Expression> expression, CancellationToken cancel = default) => UpdateAsync(dto, q => q.Where(expression), cancel); public virtual async Task UpdateAsync(TDto dto, Func, IQueryable> query, CancellationToken cancel = default) @@ -60,7 +65,9 @@ public class DbRepository : IRepository where TDbC await Context.SaveChangesAsync(cancel); } + #endregion Update + #region Delete public virtual Task DeleteAsync(Expression> expression, CancellationToken cancel = default) => DeleteAsync(q => q.Where(expression), cancel); public virtual async Task DeleteAsync(Func, IQueryable> query, CancellationToken cancel = default) @@ -74,13 +81,14 @@ public class DbRepository : IRepository where TDbC await Context.SaveChangesAsync(cancel); } + #endregion Delete #region Obsolete [Obsolete("Use IRepository.Where")] - public IQueryable Read() => Entities.AsQueryable(); + public virtual IQueryable Read() => Entities.AsQueryable(); [Obsolete("Use IRepository.Get")] - public IQueryable ReadOnly() => Entities.AsNoTracking(); + public virtual IQueryable ReadOnly() => Entities.AsNoTracking(); #endregion }