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)); }
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))); }
public async Task <IActionResult> Query(AuditLogsQuery query) { var logs = await _auditLogsService.GetLogsAsync(query); return(PartialView("_AuditLogsList", logs)); }