示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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;
            }
        }
示例#4
0
        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;
                }
            }
        }