public void ComplexTest_With_Substring()
		{
			var oDataVisitor = new ODataVisitor();
			string model = "X";
			Expression<Func<IQueryable<Car>, IEnumerable<Car>>> expression = (IQueryable<Car> data) =>
				data.Where(x => x.Model.Substring(0,1) == model);

			var result = oDataVisitor.Translate(expression);
			Console.WriteLine(result);
			Assert.AreEqual("$filter=(substring(Model,0,1) eq 'X')", result);
		}
		public void TopTest()
		{
			var oDataVisitor = new ODataVisitor();
			int count = 50;
			Expression<Func<IQueryable<Car>, IEnumerable<Car>>> expression = (IQueryable<Car> data) =>
				data.Take(50);

			var result = oDataVisitor.Translate(expression);
			Console.WriteLine(result);
			Assert.AreEqual("$top=50", result);
		}
		public void FilterTest_ORELSE()
		{
			var oDataVisitor = new ODataVisitor();
			string name1 = "ali";
			Expression<Func<IQueryable<Car>, IEnumerable<Car>>> expression = (IQueryable<Car> data) =>
				data.Where(x => x.Make == "Fiat" || x.MaxSpeed == 130);

			var result = oDataVisitor.Translate(expression);
			Console.WriteLine(result);
			Assert.AreEqual("$filter=((Make eq 'Fiat') OR (MaxSpeed eq 130))", result);
		}
		public void ComplexTest()
		{
			var oDataVisitor = new ODataVisitor();
			int count = 50;
			int skip = 20;
			string model = "X3";
			Expression<Func<IQueryable<Car>, IEnumerable<Car>>> expression = (IQueryable<Car> data) =>
				data.Where(x=>x.Model == model).Skip(skip).Take(count);

			var result = oDataVisitor.Translate(expression);
			Console.WriteLine(result);
			Assert.AreEqual("$filter=(Model eq 'X3')&$skip=20&$top=50", result);
		}
		public void ComplexTest_withOrdering_desc()
		{
			var oDataVisitor = new ODataVisitor();
			int count = 50;
			int skip = 20;
			string model = "X3";
			Expression<Func<IQueryable<Car>, IEnumerable<Car>>> expression = (IQueryable<Car> data) =>
				data.Where(x => x.Model == model)
				.Skip(skip)
				.OrderByDescending(x => x.Price);

			var result = oDataVisitor.Translate(expression);
			Console.WriteLine(result);
			Assert.AreEqual("$filter=(Model eq 'X3')&$skip=20&$orderby=Price DESC", result);
		}
Exemple #6
0
		protected override string GetQueryString(Expression expression)
		{
			var odataVisitor = new ODataVisitor();
			return odataVisitor.Translate(expression);
		}