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