/// <summary> /// Validates the query sentence. /// </summary> /// <param name="sentence">The sentence.</param> /// <param name="configuration">The configuration.</param> /// <returns></returns> private Domain.Entities.ValidationResult ValidateQuerySentence(Query sentence, Configuration configuration) { QueryValidator validator = new QueryValidator(configuration.MatrixDimension); FluentValidation.Results.ValidationResult results = validator.Validate(sentence); return(GetValidationResultResponse(results)); }
public async Task <QueryResponse> Handle(SearchQuery request, CancellationToken cancellationToken) { var validator = new QueryValidator(); var validationResult = await validator.ValidateAsync(request); if (!validationResult.IsValid) { var vm = request.Adapt <ViewModel>(); return(new ModelWithErrors <ViewModel>(vm, validationResult)); } var searchResults = await _standardsAndFrameworksCache.SearchStandards(request.Search); return(new ViewModel() { Search = request.Search, SearchWasDone = true, Results = searchResults .Select(s => new ViewModelResult() { ApprenticeshipTitle = s.StandardName, NotionalNVQLevelv2 = s.NotionalNVQLevelv2, OtherBodyApprovalRequired = s.OtherBodyApprovalRequired, StandardCode = s.StandardCode, StandardVersion = s.Version }) .ToList() }); }
public void ValidateQuery_ShouldReturnTrue(string queryToValidate) { QueryValidator validator = new QueryValidator(); bool result = validator.ValidateQuery(queryToValidate); Assert.True(result, $"{queryToValidate} should return true"); }
public void ValidateQuery_SelectSuchThat_InvalidQueries(string queryToValidate) { QueryValidator validator = new QueryValidator(); var result = validator.ValidateQuery(queryToValidate); Assert.True(result); }
public byte[] Run(byte[] file) { var reader = new JsonReader(file); var writer = new JsonWriter(); if (QueryValidator.IsAggregateQuery(_query)) { ProcessAggregate(ref reader, ref writer); } else { var recordsProcessed = 0; var limit = _query.Limit.Match(x => x.Limit, _ => int.MaxValue); while (ProcessRecord(ref reader, ref writer, ref recordsProcessed)) { if (recordsProcessed >= limit) { break; } } } return(writer.ToUtf8ByteArray()); }
public void SelectValidator_ShouldReturnTrue_WhenValidSelectWith_PlusAnd(string queryToValidate) { QueryValidator queryValidator = new QueryValidator(); bool result = queryValidator.ValidateQuery(queryToValidate); Assert.True(result); }
public void QueryValidator_ShouldHaveRules() { var queryValidator = new QueryValidator(); queryValidator.ShouldHaveValidationErrorFor(v => v.Person, null as Person); queryValidator.ShouldHaveChildValidator(v => v.Person, typeof(EmployeeValidator)); }
public void ValidateWith_ShouldReturnTrue(string queryToValidate) { QueryValidator validator = new QueryValidator(); bool result = validator.ValidateQuery(queryToValidate); Assert.True(result); }
public void GetProducts_NullOrEmptyOrWhitespaceContent(string content) { IQueryValidator validator = new QueryValidator(new string[] { }); var results = validator.GetProducts(content, 1); Assert.IsNull(results); }
public void ValidateQuery_ShouldReturnTrue_WhenTheSameVariablesDefinedWithLowerAndUpperCase() { // Can we declare lower and uppercase? (Compare with how PipeTester works) QueryValidator validator = new QueryValidator(); bool result = validator.ValidateQuery("Procedure p; While P; Select P"); Assert.True(result); }
public void GetProducts_ProductNotInProductsList() { IQueryValidator validator = new QueryValidator(new string[] { "prok", "tegj" }); var results = validator.GetProducts("glob pish Silver", 1); Assert.IsNull(results); }
public async Task <Response> Handle(Query request, CancellationToken cancellationToken) { var validator = new QueryValidator(); await validator.ValidateAndThrowAsync(request, cancellationToken : cancellationToken); return(new Response { TimeSheet = await _timeSheetService.GetTimeSheetById(request.TimeSheetId) }); }
public QueryExecuter(ISchema schema, int cacheSize) { _schema = schema ?? throw new ArgumentNullException(nameof(schema)); _queryValidator = new QueryValidator(schema); _queryCache = new Cache <QueryInfo>(cacheSize); _operationCache = new Cache <OperationExecuter>(cacheSize * 10); _useCache = cacheSize > 0; CacheSize = cacheSize; }
public void ValidateSelectBoolean_ShouldReturnFalse_WhenModifiesIsAmbiguous() { // Use of underscore must not lead to ambiguities. For example, the following query should be rejected // as incorrect as it is not clear if underscore refers to a statement or to a procedure QueryValidator validator = new QueryValidator(); bool result = validator.ValidateQuery("select boolean such that Modifies (_, \"x\")"); Assert.False(result); }
public async Task <ActionResult> SuggestPlace(string text) { if (!QueryValidator.ValidatePlaceSuggestionQuery(text)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } return(Json(await _placesService.SearchAsync(text, true))); }
public JsonLinesEvaluator(Query query) { var validator = new QueryValidator(); validator.Validate(query); validator.ThrowIfErrors(); _query = query; _recordWriter = new JsonRecordWriter(query.From, query.Select); }
public void ValidateQuery_ShouldReturnFalse_WhenNotExistingDeclarationIsUsed(string queryToValidate) { // arrange QueryValidator validator = new QueryValidator(); // act Action act = () => validator.ValidateQuery(queryToValidate); // assert Assert.Throws <InvalidQueryException>(act); }
public void ValidateQuery_ShouldReturnFalse_WhenTheSameVariablesAreDefined() { // arrange QueryValidator validator = new QueryValidator(); // act Action act = () => validator.ValidateQuery("Procedure p; While p; Select p"); // assert Assert.Throws <InvalidQueryException>(act); }
public void GetProducts_ValidProducts() { IQueryValidator validator = new QueryValidator(new string[] { "glob", "Silver", "pish", "Gold" }); var results = validator.GetProducts("glob pish Silver", 1); Assert.IsNotNull(results); IEnumerable <string> output = new[] { "glob", "pish", "Silver" }; CollectionAssert.AreEqual(output, results); }
public void TestEndDateSoonerThanBeginDateShouldReturnTrue() { var theme = "pruebaDates"; var begin_date = "20180907"; var end_date = "20180903"; var queryValidator = new QueryValidator(); listOfExceptions = queryValidator.ValidateData(theme, begin_date, end_date); Assert.IsTrue(listOfExceptions.HasWrongDatesException(), "Should have a WrongDatesException"); }
public void TestEmptyParametersShouldReturnTrue() { var theme = String.Empty; var begin_date = String.Empty; var end_date = String.Empty; var queryValidator = new QueryValidator(); listOfExceptions = queryValidator.ValidateData(theme, begin_date, end_date); Assert.IsTrue(listOfExceptions.HasEmptyDataException(), "Should have an empty data exception"); }
public static string ProcessQuery(string query) { try { QueryValidator queryValidator = new QueryValidator(); bool isQueryValid = queryValidator.ValidateQuery(query); } catch (Exception e) { Console.WriteLine("none"); } return("OK"); }
public static string ProcessQuery(string query) { try { QueryValidator queryValidator = new QueryValidator(); bool isQueryValid = queryValidator.ValidateQuery(query); } catch (Exception e) { //return $"#{e.Message} - {e.GetType()}"; Console.WriteLine("none"); //return "none"; } return("OK"); }
public IHttpActionResult GetInternal(string systemFilter = null, string userFilter = null, string sort = null, string time = null, string offset = null, string mode = null, int page = 1, int limit = 10) { page = GetPage(page); limit = GetLimit(limit); var skip = GetSkip(page + 1, limit); if (skip > MAXIMUM_SKIP) { return(Ok(new object[0])); } var validationResult = QueryValidator.Validate(userFilter); if (!validationResult.IsValid) { return(BadRequest(validationResult.Message)); } if (String.IsNullOrEmpty(systemFilter)) { systemFilter = GetAssociatedOrganizationsFilter(_organizationRepository, validationResult.UsesPremiumFeatures, HasOrganizationOrProjectFilter(userFilter)); } var sortBy = GetSort(sort); var timeInfo = GetTimeInfo(time, offset); var options = new PagingOptions { Page = page, Limit = limit }; var events = _repository.GetByFilter(systemFilter, userFilter, sortBy.Item1, sortBy.Item2, timeInfo.Field, timeInfo.UtcRange.Start, timeInfo.UtcRange.End, options); if (!String.IsNullOrEmpty(mode) && String.Equals(mode, "summary", StringComparison.InvariantCultureIgnoreCase)) { return(OkWithResourceLinks(events.Select(e => { var summaryData = _formattingPluginManager.GetEventSummaryData(e); return new EventSummaryModel { TemplateKey = summaryData.TemplateKey, Id = e.Id, Date = e.Date, Data = summaryData.Data }; }).ToList(), options.HasMore, page)); } return(OkWithResourceLinks(events, options.HasMore && !NextPageExceedsSkipLimit(page, limit), page)); }
public IHttpActionResult FrequentInternal(string systemFilter = null, string userFilter = null, string time = null, string offset = null, string mode = null, int page = 1, int limit = 10) { page = GetPage(page); limit = GetLimit(limit); var skip = GetSkip(page, limit); if (skip > MAXIMUM_SKIP) { return(Ok(new object[0])); } var validationResult = QueryValidator.Validate(userFilter); if (!validationResult.IsValid) { return(BadRequest(validationResult.Message)); } if (String.IsNullOrEmpty(systemFilter)) { systemFilter = GetAssociatedOrganizationsFilter(_organizationRepository, validationResult.UsesPremiumFeatures, HasOrganizationOrProjectFilter(userFilter)); } var timeInfo = GetTimeInfo(time, offset); var terms = _eventStats.GetTermsStats(timeInfo.UtcRange.Start, timeInfo.UtcRange.End, "stack_id", systemFilter, userFilter, timeInfo.Offset, GetSkip(page + 1, limit) + 1).Terms; if (terms.Count == 0) { return(Ok(new object[0])); } var stackIds = terms.Skip(skip).Take(limit + 1).Select(t => t.Term).ToArray(); var stacks = _stackRepository.GetByIds(stackIds).Select(s => s.ApplyOffset(timeInfo.Offset)).ToList(); if (!String.IsNullOrEmpty(mode) && String.Equals(mode, "summary", StringComparison.InvariantCultureIgnoreCase)) { var summaries = GetStackSummaries(stacks, terms); return(OkWithResourceLinks(GetStackSummaries(stacks, terms).Take(limit).ToList(), summaries.Count > limit, page)); } return(OkWithResourceLinks(stacks.Take(limit).ToList(), stacks.Count > limit, page)); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "sites/state")] Query message, [CosmosDB(ConnectionStringSetting = "CosmosDBConnectionString")] DocumentClient client, ILogger log) { // Validate input var validationResult = new QueryValidator().Validate(message); if (!validationResult.IsValid) { return(new BadRequestObjectResult(validationResult.Errors.Select(e => new { Field = e.PropertyName, Error = e.ErrorMessage }))); } log.LogInformation("Finding points at the requested distance."); //Query the database to find the parking bays Uri collectionUri = UriFactory.CreateDocumentCollectionUri("parkingdb", "sitesstate"); // The distance is in meters according to https://stackoverflow.com/questions/54453190/what-units-does-st-distance-return var distance = message.Distance ?? 1000; // From http://dontcodetired.com/blog/post/Reading-Azure-Cosmos-DB-Data-In-Azure-Functions and // https://docs.microsoft.com/en-us/sandbox/functions-recipes/cosmos-db?tabs=csharp IDocumentQuery <SiteState> query = client.CreateDocumentQuery <SiteState>(collectionUri, // new FeedOptions() { EnableCrossPartitionQuery = true }) //https://dontpaniclabs.com/blog/post/2017/09/07/getting-started-azure-cosmos-db-part-4-partition-keys/ //https://www.lytzen.name/2016/12/06/find-docs-with-no-partitionkey-in-azure.html new FeedOptions() { PartitionKey = new PartitionKey(null) }) //Undefined.Value) }) .Where(siteState => siteState.RecordState != SiteState.EntityState.Deleted && siteState.Location.Distance(new Point(message.Longitude.Value, message.Latitude.Value)) < distance) .AsDocumentQuery(); // More of the SDK https://joonasw.net/view/exploring-cosmos-db-sdk-v3 var result = await query.ToListAsync(); return(new OkObjectResult(result)); }
public IHttpActionResult GetInternal(string systemFilter, string userFilter = null, string time = null, string offset = null) { var timeInfo = GetTimeInfo(time, offset); var validationResult = QueryValidator.Validate(userFilter); if (!validationResult.IsValid) { return(BadRequest(validationResult.Message)); } if (String.IsNullOrEmpty(systemFilter)) { systemFilter = GetAssociatedOrganizationsFilter(_organizationRepository, validationResult.UsesPremiumFeatures, HasOrganizationOrProjectFilter(userFilter)); } var result = _stats.GetOccurrenceStats(timeInfo.UtcRange.Start, timeInfo.UtcRange.End, systemFilter, userFilter, timeInfo.Offset); return(Ok(result)); }
private static void ExecuteSearchQuery(string userInput) { var queryValidator = new QueryValidator(); try { queryValidator.Validate(userInput); var queryGenerator = new StudentQueryGenerator(); PrintFoundData(StudentRepository.Find(queryGenerator.Generate(userInput))); } catch (QueryNotMatchException ex) { Console.WriteLine(ex.Message); Console.ReadKey(); } catch (ParseException ex) { Console.WriteLine("The query generator is key sensitive, please use the properties listed previously."); Console.ReadKey(); } }
public IHttpActionResult GetInternal(string systemFilter, string userFilter = null, string sort = null, string time = null, string offset = null, string mode = null, int page = 1, int limit = 10) { page = GetPage(page); limit = GetLimit(limit); var skip = GetSkip(page + 1, limit); if (skip > MAXIMUM_SKIP) { return(Ok(new object[0])); } var validationResult = QueryValidator.Validate(userFilter); if (!validationResult.IsValid) { return(BadRequest(validationResult.Message)); } if (String.IsNullOrEmpty(systemFilter)) { systemFilter = GetAssociatedOrganizationsFilter(_organizationRepository, validationResult.UsesPremiumFeatures, HasOrganizationOrProjectFilter(userFilter), "last"); } var sortBy = GetSort(sort); var timeInfo = GetTimeInfo(time, offset); var options = new PagingOptions { Page = page, Limit = limit }; var stacks = _repository.GetByFilter(systemFilter, userFilter, sortBy.Item1, sortBy.Item2, timeInfo.Field, timeInfo.UtcRange.Start, timeInfo.UtcRange.End, options).Select(s => s.ApplyOffset(timeInfo.Offset)).ToList(); if (!String.IsNullOrEmpty(mode) && String.Equals(mode, "summary", StringComparison.InvariantCultureIgnoreCase)) { return(OkWithResourceLinks(GetStackSummaries(stacks, timeInfo.Offset, timeInfo.UtcRange.UtcStart, timeInfo.UtcRange.UtcEnd), options.HasMore, page)); } return(OkWithResourceLinks(stacks, options.HasMore && !NextPageExceedsSkipLimit(page, limit), page)); }
public IHttpActionResult GetById(string id, string filter = null, string time = null, string offset = null) { var model = GetModel(id); if (model == null) { return(NotFound()); } var timeInfo = GetTimeInfo(time, offset); var validationResult = QueryValidator.Validate(filter); if (!validationResult.IsValid) { return(BadRequest(validationResult.Message)); } var systemFilter = GetAssociatedOrganizationsFilter(_organizationRepository, validationResult.UsesPremiumFeatures, HasOrganizationOrProjectFilter(filter)); return(OkWithLinks(model, GetEntityResourceLink(_repository.GetPreviousEventId(model, systemFilter, filter, timeInfo.UtcRange.Start, timeInfo.UtcRange.End), "previous"), GetEntityResourceLink(_repository.GetNextEventId(model, systemFilter, filter, timeInfo.UtcRange.Start, timeInfo.UtcRange.End), "next"), GetEntityResourceLink <Stack>(model.StackId, "parent"))); }
public QueryableFilterAttribute(QueryValidator queryValidator) { this._queryValidator = queryValidator; }
public QueryableAttribute() { _queryValidator = QueryValidator.Instance; }