private void TestParseSelect(string input) { var parser = new ODataExpressionLanguageParser(typeof(A), input); var parsed = parser.ParseSelectColumnList(); parsed.ToDelimitedString().ShouldEqual(input); var dynamicParser = new ODataExpressionLanguageParser(typeof(ODataEntity), input); var dynamicParsed = dynamicParser.ParseSelectColumnList(); dynamicParsed.ToDelimitedString().ShouldEqual(input); }
public void TestParseSortKeys(string input, string expected = null) { var parser = new ODataExpressionLanguageParser(typeof(A), input); var parsed = parser.ParseSortKeyList(); parsed.ToDelimitedString().ShouldEqual(expected ?? input); var dynamicParser = new ODataExpressionLanguageParser(typeof(ODataEntity), input); var dynamicParsed = dynamicParser.ParseSortKeyList(); dynamicParsed.ToDelimitedString().ShouldEqual(expected ?? input); }
private void TestParseExpressionLanguage(string input, Type type = null) { var parser = new ODataExpressionLanguageParser(type ?? typeof(A), input); var parsed = parser.Parse(); parsed.ToString().ShouldEqual(input); var dynamicParser = new ODataExpressionLanguageParser(typeof(ODataEntity), input); var dynamicParsed = dynamicParser.Parse(); parsed.ToString().ShouldEqual(input, "dynamic parse"); }
private void TestParseSelect(string input) { var parser = new ODataExpressionLanguageParser(typeof(A), input); var parsed = parser.ParseSelectColumnList(); parsed.ToDelimitedString().ShouldEqual(input); }
private void TestParseExpressionLanguage(string input) { var parser = new ODataExpressionLanguageParser(typeof(A), input); var parsed = parser.Parse(); parsed.ToString().ShouldEqual(input); }
public void TestParseSortKeys(string input, string expected = null) { var parser = new ODataExpressionLanguageParser(typeof(A), input); var parsed = parser.ParseSortKeyList(); parsed.ToDelimitedString().ShouldEqual(expected ?? input); }
public static ODataQueryExpression Parse(Type elementType, NameValueCollection parameters) { Throw.IfNull(elementType, "elementType"); Throw.IfNull(parameters, "parameters"); ODataExpression filter = null; var filterString = parameters["$filter"]; if (filterString != null) { var parser = new ODataExpressionLanguageParser(elementType, filterString); filter = parser.Parse(); } IReadOnlyList<ODataSortKeyExpression> orderBy = Empty<ODataSortKeyExpression>.Array; var orderByString = parameters["$orderby"]; if (orderByString != null) { var parser = new ODataExpressionLanguageParser(elementType, orderByString); orderBy = parser.ParseSortKeyList(); } int? top = null; var topString = parameters["$top"]; if (topString != null) { int topValue; if (!int.TryParse(topString, out topValue)) { throw new ODataParseException("Expected an integer value for $top: " + topString); } top = topValue; } var skip = 0; var skipString = parameters["$skip"]; if (skipString != null) { if (!int.TryParse(skipString, out skip)) { throw new ODataParseException("Expected an integer value for $skip: " + skipString); } } IReadOnlyList<ODataSelectColumnExpression> select = Empty<ODataSelectColumnExpression>.Array; var selectString = parameters["$select"]; if (selectString != null) { var parser = new ODataExpressionLanguageParser(elementType, selectString); select = parser.ParseSelectColumnList(); } var format = parameters["$format"]; var inlineCount = ODataInlineCountOption.None; var inlineCountString = parameters["$inlinecount"]; if (inlineCountString != null) { if (!Enum.TryParse(inlineCountString, ignoreCase: true, result: out inlineCount)) { throw new ODataParseException("Unexpected value " + inlineCountString + " for $inlinecount"); } } return ODataExpression.Query( filter: filter, orderBy: orderBy, top: top, skip: skip, select: select, format: format, inlineCount: inlineCount ); }