public async Task <IReadOnlyCollection <ErrorLog> > SearchErrorLogs(ErrorSearchModel errorFilter) { errorFilter.BeginDate = errorFilter.BeginDate == null?DateTime.Parse("01/01/1900") : errorFilter.BeginDate; errorFilter.EndDate = errorFilter.EndDate == null ? DateTime.Now : errorFilter.EndDate; var response = elasticClient.Search <ErrorLog>(s => s .From(errorFilter.Page) .Size(errorFilter.RowCount) .Sort(ss => ss.Descending(p => p.DateCreated)) .Query(q => q .Bool(b => b .Must( q => q.Term(t => t.UserId, errorFilter.UserId), q => q.Term(t => t.Path.ToFilter(), errorFilter.Path.ToFilter()), q => q.Term(t => t.Method.ToFilter(), errorFilter.Method.ToFilter()), q => q.Term(t => t.StatusCode, errorFilter.StatusCode), q => q.DateRange(r => r .Field(f => f.DateCreated) .GreaterThanOrEquals(DateMath.Anchored(((DateTime)errorFilter.BeginDate).AddDays(-1))) .LessThanOrEquals(DateMath.Anchored(((DateTime)errorFilter.EndDate).AddDays(1))) )) ) ) .Index(IndexType.error_log.ToString()) ); return(response.Documents); }
public async Task <IActionResult> SearchErrorLogs(ErrorSearchModel errorFilter) { var result = await elasticSearchService.SearchErrorLogs(errorFilter); return(Ok(result)); }