示例#1
0
        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));
        }
示例#2
0
 public async Task <IActionResult> List([FromQuery] AuditSearchRequest request)
 {
     return(Json(await GetEventsAsync(request)));
 }