public override QueryNode Visit(SearchTermNode nodeIn) { return(nodeIn); }
/// <summary> /// Visit a SearchTermNode /// </summary> /// <param name="nodeIn">The node to visit</param> /// <returns>The translated expression</returns> public override bool Visit(SearchTermNode nodeIn) { validate(nodeIn); return(true); }
public override Expression <Func <string, bool> > Visit(SearchTermNode nodeIn) { return(_ => _.Contains(nodeIn.Text)); }
public override string Visit(SearchTermNode nodeIn) { return(nodeIn.Text); }
public void ODataUriBuilderWithEntitySet() { Uri fullUri = new Uri("http://www.example.com/People?$filter=MyDog%2FColor%20eq%20%27Brown%27&$select=ID&$expand=MyDog%2CMyCat/$ref&$orderby=ID&$top=1&$skip=2&$count=true&$search=FA"); ODataUriParser odataUriParser = new ODataUriParser(this.GetModel(), serviceRoot, fullUri); odataUriParser.UrlKeyDelimiter = ODataUrlKeyDelimiter.Parentheses; SetODataUriParserSettingsTo(this.settings, odataUriParser.Settings); ODataUri odataUri = odataUriParser.ParseUri(); //verify path EntitySetSegment entitySet = (EntitySetSegment)odataUri.Path.FirstSegment; Assert.AreEqual(entitySet.EntitySet.Name, "People"); Assert.AreEqual(odataUri.Path.Count, 1); //verify $filter BinaryOperatorNode binaryOperator = (BinaryOperatorNode)odataUri.Filter.Expression; SingleValuePropertyAccessNode singleValueProperty = (SingleValuePropertyAccessNode)binaryOperator.Left; SingleNavigationNode singleNavigation = (SingleNavigationNode)singleValueProperty.Source; ConstantNode constantNode = (ConstantNode)binaryOperator.Right; Assert.AreEqual(binaryOperator.OperatorKind, BinaryOperatorKind.Equal); Assert.AreEqual(singleValueProperty.Property.Name, "Color"); Assert.AreEqual(singleNavigation.NavigationProperty.Name, "MyDog"); Assert.AreEqual(constantNode.LiteralText, "'Brown'"); //verify $select and $expand IEnumerable <SelectItem> selectItems = odataUri.SelectAndExpand.SelectedItems; IEnumerable <ExpandedNavigationSelectItem> expandedNavigationSelectItem = selectItems.Where(I => I.GetType() == typeof(ExpandedNavigationSelectItem)).OfType <ExpandedNavigationSelectItem>(); IEnumerable <ExpandedReferenceSelectItem> expandedReferenceSelectItem = selectItems.Where(I => I.GetType() == typeof(ExpandedReferenceSelectItem)).OfType <ExpandedReferenceSelectItem>(); IEnumerable <PathSelectItem> pathSelectItem = selectItems.Where(I => I.GetType() == typeof(PathSelectItem)).OfType <PathSelectItem>(); Assert.AreEqual(expandedNavigationSelectItem.Count(), 1); Assert.AreEqual(expandedReferenceSelectItem.Count(), 1); Assert.AreEqual(pathSelectItem.Count(), 2); NavigationPropertySegment navigationProperty = (NavigationPropertySegment)expandedNavigationSelectItem.First().PathToNavigationProperty.FirstSegment; Assert.AreEqual(navigationProperty.NavigationProperty.Name, "MyDog"); navigationProperty = (NavigationPropertySegment)expandedReferenceSelectItem.First().PathToNavigationProperty.FirstSegment; Assert.AreEqual(navigationProperty.NavigationProperty.Name, "MyCat"); //verify $orderby SingleValuePropertyAccessNode orderby = (SingleValuePropertyAccessNode)odataUri.OrderBy.Expression; Assert.AreEqual(orderby.Property.Name, "ID"); //verify $top Assert.AreEqual(odataUri.Top, 1); //verify $skip Assert.AreEqual(odataUri.Skip, 2); //verify $count Assert.AreEqual(odataUri.QueryCount, true); //verify $search SearchTermNode searchTermNode = (SearchTermNode)odataUri.Search.Expression; Assert.AreEqual(searchTermNode.Text, "FA"); Uri actualUri = odataUri.BuildUri(ODataUrlKeyDelimiter.Parentheses); Assert.AreEqual(new Uri("http://www.example.com/People?$filter=MyDog%2FColor%20eq%20%27Brown%27&$select=ID%2CMyCat&$expand=MyDog%2CMyCat%2F%24ref&$orderby=ID&$top=1&$skip=2&$count=true&$search=FA"), actualUri); actualUri = odataUri.BuildUri(ODataUrlKeyDelimiter.Slash); Assert.AreEqual(new Uri("http://www.example.com/People?$filter=MyDog%2FColor%20eq%20%27Brown%27&$select=ID%2CMyCat&$expand=MyDog%2CMyCat%2F%24ref&$orderby=ID&$top=1&$skip=2&$count=true&$search=FA"), actualUri); }
public void ODataUriBuilderWithEntitySet() { Uri fullUri = new Uri("http://www.example.com/People?$filter=MyDog%2FColor%20eq%20%27Brown%27&$select=ID&$expand=MyDog&$orderby=ID&$top=1&$skip=2&$count=true&$search=FA"); ODataUriParser odataUriParser = new ODataUriParser(this.GetModel(), serviceRoot, fullUri); odataUriParser.UrlConventions = ODataUrlConventions.Default; SetODataUriParserSettingsTo(this.settings, odataUriParser.Settings); ODataUri odataUri = odataUriParser.ParseUri(); //verify path EntitySetSegment entitySet = (EntitySetSegment)odataUri.Path.FirstSegment; Assert.AreEqual(entitySet.EntitySet.Name, "People"); Assert.AreEqual(odataUri.Path.Count, 1); //verify $filter BinaryOperatorNode binaryOperator = (BinaryOperatorNode)odataUri.Filter.Expression; SingleValuePropertyAccessNode singleValueProperty = (SingleValuePropertyAccessNode)binaryOperator.Left; SingleNavigationNode singleNavigation = (SingleNavigationNode)singleValueProperty.Source; ConstantNode constantNode = (ConstantNode)binaryOperator.Right; Assert.AreEqual(binaryOperator.OperatorKind, BinaryOperatorKind.Equal); Assert.AreEqual(singleValueProperty.Property.Name, "Color"); Assert.AreEqual(singleNavigation.NavigationProperty.Name, "MyDog"); Assert.AreEqual(constantNode.LiteralText, "'Brown'"); //verify $select and $expand IEnumerable <SelectItem> selectItems = odataUri.SelectAndExpand.SelectedItems; foreach (ExpandedNavigationSelectItem selectItem in selectItems) { NavigationPropertySegment navigationProperty = (NavigationPropertySegment)selectItem.PathToNavigationProperty.FirstSegment; Assert.AreEqual(navigationProperty.NavigationProperty.Name, "MyDog"); break; } //verify $orderby SingleValuePropertyAccessNode orderby = (SingleValuePropertyAccessNode)odataUri.OrderBy.Expression; Assert.AreEqual(orderby.Property.Name, "ID"); //verify $top Assert.AreEqual(odataUri.Top, 1); //verify $skip Assert.AreEqual(odataUri.Skip, 2); //verify $count Assert.AreEqual(odataUri.QueryCount, true); //verify $search SearchTermNode searchTermNode = (SearchTermNode)odataUri.Search.Expression; Assert.AreEqual(searchTermNode.Text, "FA"); ODataUriBuilder odataUriBuilder = new ODataUriBuilder(ODataUrlConventions.Default, odataUri); Uri actualUri = odataUriBuilder.BuildUri(); Assert.AreEqual(new Uri("http://www.example.com/People?$filter=MyDog%2FColor%20eq%20%27Brown%27&$select=ID%2CMyDog&$expand=MyDog&$orderby=ID&$top=1&$skip=2&$count=true&$search=FA"), actualUri); ODataUriBuilder uriBuilderWithKeyAsSegment = new ODataUriBuilder(ODataUrlConventions.KeyAsSegment, odataUri); actualUri = uriBuilderWithKeyAsSegment.BuildUri(); Assert.AreEqual(new Uri("http://www.example.com/People?$filter=MyDog%2FColor%20eq%20%27Brown%27&$select=ID%2CMyDog&$expand=MyDog&$orderby=ID&$top=1&$skip=2&$count=true&$search=FA"), actualUri); }
public override T Visit(SearchTermNode nodeIn) => DebuggerBreakVisited(nodeIn);
/// <summary> /// Visit a SearchTermNode /// </summary> /// <param name="nodeIn">The node to visit</param> /// <returns>The translated expression</returns> public override Expression Visit(SearchTermNode nodeIn) { this.CheckArgumentNull(nodeIn, "SearchTermNode"); return(new SearchHelper(nodeIn.Text, this.ImplicitVariableParameterExpression).Build()); }
/// <summary> /// Visit a SearchTermNode /// </summary> /// <param name="nodeIn">The node to visit</param> /// <returns>The translated expression</returns> public virtual T Visit(SearchTermNode nodeIn) { throw new NotImplementedException(); }
public override object Visit(SearchTermNode nodeIn) { return(null); }
/// <summary> /// Writes single value function call node to string. /// </summary> /// <param name="node">Node to write to string</param> /// <returns>String representation of node.</returns> private static string ToString(SearchTermNode node) { if (node != null) { return tabHelper.Prefix + "SearchTermNode" + tabHelper.Indent(() => tabHelper.Prefix + "Text = " + node.Text ); } return String.Empty; }