Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }