Ejemplo n.º 1
0
        public TResult Execute <TResult>(Expression expression)
        {
            Type itemType = TypeHelper.GetElementType(expression.Type);

            var    translator  = new ExpressionToFTSRequestTranslator();
            string queryString = translator.Translate(expression);

            return((TResult)_e3sClient.SearchFTS(itemType, queryString));
        }
        public void TestContains()
        {
            var translator = new ExpressionToFTSRequestTranslator();
            Expression <Func <EmployeeEntity, bool> > expression
                = employee => employee.Workstation.Contains("IZHW006");

            string translated = translator.Translate(expression);

            Assert.AreEqual("Workstation:(*IZHW006*)", translated);
        }
        public void TestBinaryEquals()
        {
            var translator = new ExpressionToFTSRequestTranslator();
            Expression <Func <EmployeeEntity, bool> > expression
                = employee => employee.Workstation == "EPRUIZHW006";

            string translated = translator.Translate(expression);

            Assert.AreEqual("Workstation:(EPRUIZHW006)", translated);
        }
        public void TestBinaryEqualsQueryable()
        {
            var translator = new ExpressionToFTSRequestTranslator();
            Expression <Func <IQueryable <EmployeeEntity>, IQueryable <EmployeeEntity> > > expression
                = query => query.Where(e => e.Workstation == "EPRUIZHW006");

            string translated = translator.Translate(expression);

            Assert.AreEqual("Workstation:(EPRUIZHW006)", translated);
        }
Ejemplo n.º 5
0
        public void Where_Contains()
        {
            //arrange
            var translator = new ExpressionToFTSRequestTranslator();
            Expression <Func <EmployeeEntity, bool> > expr = c => c.workstation.Contains("BYMINW613");
            var expected = "workstation:(*BYMINW613*)";

            // Act
            var actual = translator.Translate(expr);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 6
0
        public void When_Use_Provider()
        {
            //arrange
            var translator = new ExpressionToFTSRequestTranslator();
            Expression <Func <EmployeeEntity, bool> > expr = c => c.workstation == "EPBYMINW6137";
            var expected = "workstation:(EPBYMINW6137)";

            // Act
            var actual = translator.Translate(expr);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 7
0
        public void When_Use_And_Operator()
        {
            //arrange
            var translator = new ExpressionToFTSRequestTranslator();
            Expression <Func <EmployeeEntity, bool> > expr = c => c.workstation.StartsWith("EPBYMINW613") && c.superior.Contains("Bakunovich");
            var expected = "workstation:(EPBYMINW613*) AND superior:(*Bakunovich*)";

            // Act
            var actual = translator.Translate(expr);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 8
0
        public void TestAndQueryable()
        {
            var translator = new ExpressionToFTSRequestTranslator();
            Expression <Func <IQueryable <EmployeeEntity>, IQueryable <EmployeeEntity> > > expression
                = query => query.Where(e => e.Workstation == "EPRUIZHW006" && e.Manager.StartsWith("John"));

            /*
             * The expression above should be converted to the following FTSQueryRequest and then serialized inside FTSRequestGenerator:
             * "statements": [
             *  { "query":"Workstation:(EPRUIZHW006)"},
             *  { "query":"Manager:(John*)"}
             *  // Operator between queries is AND, in other words result set will fit to both statements above
             * ],
             */

            string translated = translator.Translate(expression);
            string expected   = "Workstation:(EPRUIZHW006),Manager:(John*)";

            Assert.AreEqual(expected, translated);
        }