Пример #1
0
        public async Task <int> DeleteLogsAsync(DeleteLogsFilterDto filter)
        {
            var startDate = filter.StartDate?.ToUniversalTime();
            var endDate   = filter.EndDate?.ToUniversalTime();

            var where = new List <Expression <Func <LogItem, bool> > >();
            where.Add(x => x.AppName == _options.AppName);
            where.AddIfTrue(startDate.HasValue, x => startDate <= x.DateCreated);
            where.AddIfTrue(endDate.HasValue, x => x.DateCreated <= endDate);
            where.AddIfTrue(filter.LogType.HasValue, x => filter.LogType == x.LogType);

            var queryable = GetMany(x => true);

            queryable = where.Aggregate(queryable, (current, expression) => current.Where(expression));

            var deletedNumber = BulkDelete(await queryable.ToListAsync(), item => item.Id);

            return(deletedNumber);
        }
Пример #2
0
 public Task <int> DeleteLogsAsync(DeleteLogsFilterDto filter)
 {
     return(_logRepository.DeleteLogsAsync(filter));
 }