public void FixtureSetup() { var memberNameResolver = new MemberNameResolver(); _factory = new SelectExpressionFactory<FakeItem>(memberNameResolver, new RuntimeTypeProvider(memberNameResolver)); _items = new[] { new FakeItem { IntValue = 2, DoubleValue = 5 }, new FakeItem { IntValue = 1, DoubleValue = 4 }, new FakeItem { IntValue = 3, DoubleValue = 4 } }; }
public void WhenCreatingSelectExpressionFromXmlMemberOnPropertyThenGetsPropertyValue() { var nameResolver = new MemberNameResolver(); var factory = new SelectExpressionFactory<FakeItem>(nameResolver, new RuntimeTypeProvider(nameResolver)); var items = new[] { new FakeItem { IntValue = 2 } }; var expression = factory.Create("Number"); dynamic result = items.AsQueryable().Select(expression).First(); Assert.AreEqual(2, result.Number); }
public void WhenCreatingSelectExpressionFromDataMemberOnFieldThenGetsFieldValue() { var nameResolver = new MemberNameResolver(); var factory = new SelectExpressionFactory<FakeItem>(nameResolver, new RuntimeTypeProvider(nameResolver)); var items = new[] { new FakeItem { StringValue = "test" } }; var expression = factory.Create("Text"); dynamic result = items.AsQueryable().Select(expression).First(); Assert.AreEqual("test", result.Text); }
public void WhenCreatingSelectExpressionFromXmlMemberOnPropertyThenGetsPropertyValue() { var nameResolver = new MemberNameResolver(); var factory = new SelectExpressionFactory <FakeItem>(nameResolver, new RuntimeTypeProvider(nameResolver)); var items = new[] { new FakeItem { IntValue = 2 } }; var expression = factory.Create("Number"); dynamic result = items.AsQueryable().Select(expression).First(); Assert.AreEqual(2, result.Number); }
public void WhenCreatingSelectExpressionFromDataMemberOnFieldThenGetsFieldValue() { var nameResolver = new MemberNameResolver(); var factory = new SelectExpressionFactory <FakeItem>(nameResolver, new RuntimeTypeProvider(nameResolver)); var items = new[] { new FakeItem { StringValue = "test" } }; var expression = factory.Create("Text"); dynamic result = items.AsQueryable().Select(expression).First(); Assert.AreEqual("test", result.Text); }
public void FixtureSetup() { var memberNameResolver = new MemberNameResolver(); _factory = new SelectExpressionFactory <FakeItem>(memberNameResolver, new RuntimeTypeProvider(memberNameResolver)); _items = new[] { new FakeItem { IntValue = 2, DoubleValue = 5 }, new FakeItem { IntValue = 1, DoubleValue = 4 }, new FakeItem { IntValue = 3, DoubleValue = 4 } }; }
/// <summary> /// To the query options. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="odataQueryOptions">The o data query options.</param> /// <returns>QueryOptions{``0}.</returns> public static QueryOptions <T> ToQueryOptions <T>(this ODataQueryOptions <T> odataQueryOptions) { if (odataQueryOptions == null) { return(null); } var nameResolver = new MemberNameResolver(); var selectFactory = new SelectExpressionFactory <T>(nameResolver, new RuntimeTypeProvider(nameResolver)); var filterFactiory = new FilterExpressionFactory(nameResolver, Enumerable.Empty <IValueExpressionFactory>()); var orderFactory = new SortExpressionFactory(nameResolver); return(new QueryOptions <T> { Top = odataQueryOptions.Top?.Value, Skip = odataQueryOptions.Skip?.Value, Select = !string.IsNullOrEmpty(odataQueryOptions.SelectExpand?.RawSelect) ? selectFactory.Create(odataQueryOptions.SelectExpand.RawSelect) : null, Expand = !string.IsNullOrEmpty(odataQueryOptions.SelectExpand?.RawExpand) ? odataQueryOptions.SelectExpand.RawExpand.Split(',').ToList() : null, OrderBy = !string.IsNullOrEmpty(odataQueryOptions.OrderBy?.RawValue) ? orderFactory.Create <T>(odataQueryOptions.OrderBy.RawValue) .Select( description => new SortDescription( description.KeySelector, (SortDirection)description.Direction)) .ToList() : null, Filter = !string.IsNullOrEmpty(odataQueryOptions.Filter?.RawValue) ? filterFactiory.Create <T>(odataQueryOptions.Filter.RawValue) : null }); }