public async Task CanProcessQueryAsync(string query, string expected, bool isValid, bool usesPremiumFeatures) { var context = new ElasticQueryVisitorContext(); IQueryNode result; try { result = await _parser.ParseAsync(query, QueryType.Query, context).AnyContext(); } catch (Exception ex) { _logger.Error(ex, $"Error parsing query: {query}. Message: {ex.Message}"); if (isValid) { throw; } return; } // NOTE: we have to do this because we don't have access to the right query parser instance. result = await EventFieldsQueryVisitor.RunAsync(result, context); Assert.Equal(expected, await GenerateQueryVisitor.RunAsync(result, context)); var info = await _validator.ValidateQueryAsync(result); _logger.Info(() => $"UsesPremiumFeatures: {info.UsesPremiumFeatures} IsValid: {info.IsValid} Message: {info.Message}"); Assert.Equal(isValid, info.IsValid); Assert.Equal(usesPremiumFeatures, info.UsesPremiumFeatures); }
private async Task <FindResults <PersistentEvent> > GetByFilterAsync(string filter) { var result = await _validator.ValidateQueryAsync(filter); Assert.True(result.IsValid); Log.SetLogLevel <EventRepository>(LogLevel.Trace); return(await _repository.GetByFilterAsync(null, filter, null, null, DateTime.MinValue, DateTime.MaxValue)); }
private async Task <FindResults <PersistentEvent> > GetEventsAsync(string search) { var result = await _validator.ValidateQueryAsync(search); Assert.True(result.IsValid); Log.SetLogLevel <EventRepository>(LogLevel.Trace); return(await _repository.FindAsync(q => q.SearchExpression(search))); }
public async Task <ActionResult <QueryValidator.QueryProcessResult> > ValidateAsync(string query) { var eventResults = await _eventQueryValidator.ValidateQueryAsync(query); var stackResults = await _stackQueryValidator.ValidateQueryAsync(query); return(Ok(new QueryValidator.QueryProcessResult { IsValid = eventResults.IsValid || stackResults.IsValid, UsesPremiumFeatures = eventResults.UsesPremiumFeatures && stackResults.UsesPremiumFeatures, Message = eventResults.Message ?? stackResults.Message })); }
public async Task <ActionResult <QueryValidator.QueryProcessResult> > ValidateAsync(string query) { return(Ok(await _validator.ValidateQueryAsync(query))); }
public async Task <IHttpActionResult> ValidateAsync(string query) { return(Ok(await _validator.ValidateQueryAsync(query))); }