public Task <IEnumerable <IAuditLog> > GetLogsAsync([NotNull] AuditLogsQuery query)
        {
            if (string.IsNullOrWhiteSpace(query.Type))
            {
                throw new ArgumentNullException(nameof(query.Type));
            }

            if (query.StartDate.HasValue && query.EndDate.HasValue && query.StartDate > query.EndDate)
            {
                throw new ArgumentException($"{nameof(query.EndDate)} must be greater than {nameof(query.StartDate)}");
            }

            return(_auditLogsRepository.GetLogsAsync(query));
        }
示例#2
0
        public async Task <IEnumerable <IAuditLog> > GetLogsAsync(AuditLogsQuery query)
        {
            IEnumerable <IAuditLog> logs;

            if (!string.IsNullOrEmpty(query.Author))
            {
                var authorIndexes = await _authorIndex.GetDataAsync(AuditLogEntity.GenerateAuthorIndexPk(query.Author));

                logs = (await _tableStorage.GetDataAsync(authorIndexes))
                       .Where(entity => entity.PartitionKey == AuditLogEntity.GenerateTypePk(query.Type));
            }
            else
            {
                logs = await _tableStorage.GetDataAsync(AuditLogEntity.GenerateTypePk(query.Type));
            }

            return(logs.Where(item => (!query.StartDate.HasValue || item.CreateDate >= query.StartDate) && (!query.EndDate.HasValue || item.CreateDate <= query.EndDate)));
        }
示例#3
0
        public async Task <IActionResult> Query(AuditLogsQuery query)
        {
            var logs = await _auditLogsService.GetLogsAsync(query);

            return(PartialView("_AuditLogsList", logs));
        }