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
                }
            };
        }
Example #7
0
        /// <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
            });
        }