public List <string> ExecuteQuery(string query) { SyntaxParser1 syntaxParser = new SyntaxParser1(); var tokens = syntaxParser.Tokenize(query); CommandExecutor commandExecutor = new CommandExecutor(mDB); List <string> result = commandExecutor.RunDBAction(tokens); return(result); }
public void SyntaxParserTest() { // Arrange SyntaxParser1 syntaxParser1 = new SyntaxParser1(); // Act var result = syntaxParser1.Tokenize("db.students.find({First: \"Dina\"})"); // CommandExecutor commandExecutor = db.GetCommandExecutor(); List <string> rc = db.CommandExecutor.RunDBAction(result); }
public List <string> RunDBAction(IEnumerable <DslToken> tokens) { string sTokens = ""; List <DslToken> kk = new List <DslToken>(); foreach (DslToken t1 in tokens) { sTokens += SyntaxParser1.GetKey(t1.tokenType); // fix collection name - remove db.****. keep only collection name if (t1.tokenType == TokenType.CollectionName) { t1.value = t1.value.Substring(3, t1.value.Length - 4); } kk.Add(t1); } List <string> result = null; // Do routing to the relevant method switch (sTokens) { case "dbcol.find(json)": result = Find(kk); break; case "dbcol.find(json,json)": result = FindWithFields(kk); break; default: // err !!!!!!!!!!!!! break; } return(result); }