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); }
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); }
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); }
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); }
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); }