/// <summary>
		/// Builds a Linq To SQL expression from the given query filtering expression.
		/// </summary>
		/// <param name="expression">An expression to interpret.</param>
		/// <param name="entityParameter">The expression entity parameter.</param>
		/// <returns>A Linq To SQL expression.</returns>
		/// <exception cref="System.ArgumentNullException">The <paramref name="expression"/> is null.</exception>
		/// <exception cref="System.ArgumentException">The <paramref name="expression"/> contains an unknown filtering expression.</exception>
		public virtual Expression Interpret(QueryFilterExpression expression, ParameterExpression entityParameter)
		{
			Error.ArgumentNullException_IfNull(expression, "expression");
			Error.ArgumentNullException_IfNull(entityParameter, "entityParameter");

			var result = InterpretCondition(ExpressionBuilder.Contains, expression as ContainsCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.NotContains, expression as NotContainsCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.Equals, expression as EqualsCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.NotEquals, expression as NotEqualsCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.GreaterThan, expression as GreaterThanCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.GreaterThanOrEquals, expression as GreaterThanOrEqualsCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.LessThan, expression as LessThanCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.LessThanOrEquals, expression as LessThanOrEqualsCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.IsNull, expression as IsNullCondition, entityParameter)
				?? InterpretCondition(ExpressionBuilder.IsNotNull, expression as IsNotNullCondition, entityParameter)
				?? InterpretOperator(ExpressionBuilder.And, expression as AndOperator, entityParameter)
				?? InterpretOperator(ExpressionBuilder.Or, expression as OrOperator, entityParameter)
				?? InterpretOperator(ExpressionBuilder.Not, expression as NotOperator, entityParameter);

			if (result != null)
			{
				return result;
			}

			DAError.ArgumentException_UnknownQueryFilterExpression(expression);

			return null;
		}
        public void TestQueryFilterWithEmptyFilter()
        {
            QueryFilterExpression filter = new QueryFilterExpression();
            string result = filter.GetFilterQuery();

            Assert.AreEqual(result, "");
        }
        /// <summary>
        /// Builds a Linq To SQL expression from the given query filtering expression.
        /// </summary>
        /// <param name="expression">An expression to interpret.</param>
        /// <param name="entityParameter">The expression entity parameter.</param>
        /// <returns>A Linq To SQL expression.</returns>
        /// <exception cref="System.ArgumentNullException">The <paramref name="expression"/> is null.</exception>
        /// <exception cref="System.ArgumentException">The <paramref name="expression"/> contains an unknown filtering expression.</exception>
        public virtual Expression Interpret(QueryFilterExpression expression, ParameterExpression entityParameter)
        {
            Error.ArgumentNullException_IfNull(expression, "expression");
            Error.ArgumentNullException_IfNull(entityParameter, "entityParameter");

            var result = InterpretCondition(ExpressionBuilder.Contains, expression as ContainsCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.NotContains, expression as NotContainsCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.Equals, expression as EqualsCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.NotEquals, expression as NotEqualsCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.GreaterThan, expression as GreaterThanCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.GreaterThanOrEquals, expression as GreaterThanOrEqualsCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.LessThan, expression as LessThanCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.LessThanOrEquals, expression as LessThanOrEqualsCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.IsNull, expression as IsNullCondition, entityParameter)
                ?? InterpretCondition(ExpressionBuilder.IsNotNull, expression as IsNotNullCondition, entityParameter)
                ?? InterpretOperator(ExpressionBuilder.And, expression as AndOperator, entityParameter)
                ?? InterpretOperator(ExpressionBuilder.Or, expression as OrOperator, entityParameter)
                ?? InterpretOperator(ExpressionBuilder.Not, expression as NotOperator, entityParameter);

            if (result != null)
            {
                return result;
            }

            DAError.ArgumentException_UnknownQueryFilterExpression(expression);

            return null;
        }
Example #4
0
        public void SetUp()
        {
            Client = new ManagementClient(@"C:\Repositories\AzureAPIManagement\Azure.ApiManagement.Test\APIMKeys.json");

            filter = new QueryFilterExpression()
            {
                Skip = 1,
            };
        }
        public void TestQueryFilterWithTopFilter()
        {
            QueryFilterExpression filter = new QueryFilterExpression()
            {
                Top = 1
            };

            string result = filter.GetFilterQuery();

            Assert.AreEqual(result, string.Format("{0}={1}", "$top", filter.Top));
        }
Example #6
0
        public void TestApiOperationCollectionWithFilter()
        {
            QueryFilterExpression filter = new QueryFilterExpression()
            {
                Filter = new OperationFilterExpression(OperationOption.EQ, new QueryKeyValuePair(QueryableConstants.Operation.Method, "post")),
                Skip   = 1
            };

            string apiId = _apiId;
            EntityCollection <APIOperation> collection = Client.GetOperationsByAPIAsync(apiId, filter).Result;
        }
Example #7
0
        public void TestApiCollection_FilterByApiName()
        {
            QueryFilterExpression filter = new QueryFilterExpression()
            {
                Filter = new OperationFilterExpression(OperationOption.GT, new QueryKeyValuePair(QueryableConstants.Api.Id, "api_08e0084f4fe243aeb6ae04452b3fa4c3"))
            };

            EntityCollection <API> collection = Client.GetAPIsAsync(filter).Result;

            Assert.IsNotNull(collection);
        }
        public void TestQueryFilter()
        {
            QueryFilterExpression filter = new QueryFilterExpression()
            {
                Filter = new FunctionFilterExpression(FunctionOption.CONTAINS, new QueryKeyValuePair("name", "value")),
                Skip   = 1,
                Top    = 1
            };

            string result = filter.GetFilterQuery();
            //Assert.AreEqual(result, string.Format("{0}={1}&{2}={3}", "$skip", filter.Skip, "$top", filter.Top));
        }
Example #9
0
        public void TestApiCollection_FilterByApiServiceUrl()
        {
            QueryFilterExpression filter = new QueryFilterExpression()
            {
                Filter = new FunctionFilterExpression(FunctionOption.CONTAINS, new QueryKeyValuePair("path", "v1")),
                Skip   = 1
            };

            EntityCollection <API> collection = Client.GetAPIsAsync(filter).Result;

            Assert.IsNotNull(collection);
        }
Example #10
0
        public void TestApiCollection_FilterByApiPath()
        {
            QueryFilterExpression filter = new QueryFilterExpression()
            {
                Filter = new FunctionFilterExpression(FunctionOption.CONTAINS, new QueryKeyValuePair(QueryableConstants.Api.Name, "(Staging)"))
            };

            EntityCollection <API> collection = Client.GetAPIsAsync(filter).Result;

            Assert.IsNotNull(collection);

            string json = JsonConvert.SerializeObject(collection);
        }
Example #11
0
 public new IQueryable <EFEntity> SetupGetQueryFiltering(DbContext context, IQueryable <EFEntity> query, QueryFilterExpression expression)
 {
     return(base.SetupGetQueryFiltering(context, query, expression));
 }
Example #12
0
 public static void ArgumentException_UnknownQueryFilterExpression(QueryFilterExpression expression)
 {
     throw new ArgumentException(string.Format(Resources.UnknownQueryFilterExpression1,
                                               expression != null ? expression.GetType().FullName : string.Empty));
 }