private string GetContainsQuery(PredicateModel predicate, string columnName) { var value = RemoveApostrophes(predicate.Value); var operatorAndValue = $"{GetSqlOperator(predicate.Operator)}'%{value}%'"; return($"{columnName} {operatorAndValue}"); }
private void LoadSelectionOfParentPredicates() { InteractionManager interactionManager = new InteractionManager(); var rootPredicates = interactionManager.GetAll <Predicate>().Where(p => p.Parent == null); List <PredicateModel> parentSelectionList = new List <PredicateModel>(); rootPredicates.ToList().ForEach(p => parentSelectionList.Add(PredicateModel.Convert(p))); ViewData["Parents"] = parentSelectionList; }
public void Insert(PredicateModel node) { if (_root == null) { _root = new QueryNode(node); return; } //otherwise recurse down InsertRec(_root, new QueryNode(node)); }
// GET: Predicate public ActionResult Index() { SubjectManager subjectManager = new SubjectManager(); List <PredicateModel> Model = new List <PredicateModel>(); var predicates = subjectManager.GetAll <Predicate>(); predicates.ToList().ForEach(p => Model.Add(PredicateModel.Convert(p))); return(View(Model)); }
private string GetEqualQuery(PredicateModel predicate) { var stringBuilder = new StringBuilder(); stringBuilder.Append("{ \"match\" : {"); stringBuilder.Append($"\"{GetField(predicate.Field)}\" : {{"); stringBuilder.Append($"\"query\" : \"{predicate.Value}\","); stringBuilder.Append($"\"operator\" : \"and\""); stringBuilder.Append("}}}"); return(stringBuilder.ToString()); }
private string GetNotEqualQuery(PredicateModel predicate) { var stringBuilder = new StringBuilder(); stringBuilder.Append($"{{\"bool\": {{"); stringBuilder.Append("\"must_not\" : ["); stringBuilder.Append("{ \"match\" : {"); stringBuilder.Append($" \"{GetField(predicate.Field)}\" : {{"); stringBuilder.Append($"\"query\" : \"{predicate.Value}\","); stringBuilder.Append($"\"operator\" : \"and\""); stringBuilder.Append("}}}]}}"); var query = stringBuilder.ToString(); return(query); }
private string GetPredicateQuery(PredicateModel predicate, string entityName) { var columnName = GetColumnName(RemoveApostrophes(predicate.Field), entityName); switch (predicate.Operator) { case FilterQueryOperator.startsWith: return(GetStartsWithQuery(predicate, columnName)); case FilterQueryOperator.contains: return(GetContainsQuery(predicate, columnName)); default: return($"{columnName} {GetSqlOperator(predicate.Operator)} {predicate.Value}"); } }
private void PredicateCondition(QueryTree queryTree) { var predicate = new PredicateModel(); if (_lookaheadFirst.Value == null) { throw new ApplicationException("Illegal query detected, enclose strings with a beginning ' and ending '"); } predicate.Field = _lookaheadFirst.Value; DiscardToken(); predicate.Operator = GetOperator(_lookaheadFirst); DiscardToken(); predicate.Value = _lookaheadFirst.Value; DiscardToken(); queryTree.Insert(predicate); }
private string GetPredicateQuery(PredicateModel predicate) { if (predicate.Operator == FilterQueryOperator.equal) { return(GetEqualQuery(predicate)); } if (predicate.Operator == FilterQueryOperator.notEqual) { return(GetNotEqualQuery(predicate)); } var stringBuilder = new StringBuilder(); stringBuilder.Append("{"); stringBuilder.Append($"\"{GetESOperator(predicate.Operator)}\" : {{"); stringBuilder.Append($"\"{GetField(predicate.Field)}\" : \"{GetString(predicate.Value)}\" }}"); stringBuilder.Append("}"); var predicateQuery = stringBuilder.ToString(); return(predicateQuery); }
public QueryNode(PredicateModel predicate) { Predicate = predicate; }