public async Task <FileDto> GetEntityChangesToExcel(GetEntityChangeInput input) { var entityChanges = await CreateEntityChangesAndUsersQuery(input) .AsNoTracking() .OrderByDescending(ec => ec.EntityChange.EntityChangeSetId) .ThenByDescending(ec => ec.EntityChange.ChangeTime) .ToListAsync(); var entityChangeListDtos = ConvertToEntityChangeListDtos(entityChanges); return(_auditLogListExcelExporter.ExportToFile(entityChangeListDtos)); }
public async Task <PagedResultDto <EntityChangeListDto> > GetEntityChanges(GetEntityChangeInput input) { var query = CreateEntityChangesAndUsersQuery(input); var resultCount = await query.CountAsync(); var results = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var entityChangeListDtos = ConvertToEntityChangeListDtos(results); return(new PagedResultDto <EntityChangeListDto>(resultCount, entityChangeListDtos)); }
private IQueryable <EntityChangeAndUser> CreateEntityChangesAndUsersQuery(GetEntityChangeInput input) { var query = from entityChangeSet in _entityChangeSetRepository.GetAll() join entityChange in _entityChangeRepository.GetAll() on entityChangeSet.Id equals entityChange.EntityChangeSetId join user in _userRepository.GetAll() on entityChangeSet.UserId equals user.Id where entityChange.ChangeTime >= input.StartDate && entityChange.ChangeTime <= input.EndDate select new EntityChangeAndUser { EntityChange = entityChange, User = user }; query = query .WhereIf(!input.UserName.IsNullOrWhiteSpace(), item => item.User.UserName.Contains(input.UserName)) .WhereIf(!input.EntityTypeFullName.IsNullOrWhiteSpace(), item => item.EntityChange.EntityTypeFullName.Contains(input.EntityTypeFullName)); return(query); }