public async Task <List <TProjection> > GetProjectionByIds <TProjection>(List <TKey> ids, bool includeDeleted = false, CancellationToken ct = default(CancellationToken)) { var source = includeDeleted ? Entities : NotDeletedEntities; var projections = await source.Where(GenericExpressions <T, TKey> .IsOneOf(ids)).ProjectTo <TProjection>(_mapper.ConfigurationProvider).ToListAsync(ct); return(projections); }
public async Task <List <T> > GetByIds(List <TKey> ids, bool includeDeleted = false, CancellationToken ct = default(CancellationToken)) { var source = includeDeleted ? Entities : NotDeletedEntities; var entities = await source.Where(GenericExpressions <T, TKey> .IsOneOf(ids)).ToListAsync(ct); return(entities); }
public async Task RestoreAsync(IEnumerable <TKey> ids, CancellationToken ct = default(CancellationToken)) { var entities = await Entities.Where(GenericExpressions <T, TKey> .IsOneOf(ids)).ToListAsync(ct); foreach (var entity in entities) { entity.IsDeleted = false; } }
public async Task Delete(IEnumerable <TKey> ids, bool hard = false, CancellationToken ct = default(CancellationToken)) { var entities = await(hard ? Entities : NotDeletedEntities).Where(GenericExpressions <T, TKey> .IsOneOf(ids)).ToListAsync(ct); if (hard) { Entities.RemoveRange(entities); } else { foreach (var entity in entities) { entity.IsDeleted = true; } } }