private async Task <IEnumerable <AuditEventDescriptor> > GetEventsAsync(AuditSearchRequest request) { QueryContainer query = new QueryContainer(); if (!string.IsNullOrWhiteSpace(request.EventType)) { query &= new MatchPhraseQuery { Field = "eventType", Query = request.EventType }; } if (request.StartDate.HasValue || request.EndDate.HasValue) { query &= new DateRangeQuery { GreaterThanOrEqualTo = request.StartDate, LessThanOrEqualTo = request.EndDate }; } var response = await _elasticClient.SearchAsync <AuditEventIntercept>(s => s .Index("demoapi*") .From(request.From) .Size(request.Size) .Query(q => q .Bool(b => b .Filter(f => f .MatchAll() && query)))); return(response.Hits.Select(MapHit)); }
public async Task <IActionResult> List([FromQuery] AuditSearchRequest request) { return(Json(await GetEventsAsync(request))); }