Пример #1
0
		/// <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;
		}
Пример #2
0
        public void TestQueryFilterWithEmptyFilter()
        {
            QueryFilterExpression filter = new QueryFilterExpression();
            string result = filter.GetFilterQuery();

            Assert.AreEqual(result, "");
        }
Пример #3
0
        /// <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;
        }
Пример #4
0
        public void SetUp()
        {
            Client = new ManagementClient(@"C:\Repositories\AzureAPIManagement\Azure.ApiManagement.Test\APIMKeys.json");

            filter = new QueryFilterExpression()
            {
                Skip = 1,
            };
        }
Пример #5
0
        public void TestQueryFilterWithTopFilter()
        {
            QueryFilterExpression filter = new QueryFilterExpression()
            {
                Top = 1
            };

            string result = filter.GetFilterQuery();

            Assert.AreEqual(result, string.Format("{0}={1}", "$top", filter.Top));
        }
Пример #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;
        }
Пример #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);
        }
Пример #8
0
        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));
        }
Пример #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);
        }
Пример #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);
        }
Пример #11
0
 public new IQueryable <EFEntity> SetupGetQueryFiltering(DbContext context, IQueryable <EFEntity> query, QueryFilterExpression expression)
 {
     return(base.SetupGetQueryFiltering(context, query, expression));
 }
Пример #12
0
 public static void ArgumentException_UnknownQueryFilterExpression(QueryFilterExpression expression)
 {
     throw new ArgumentException(string.Format(Resources.UnknownQueryFilterExpression1,
                                               expression != null ? expression.GetType().FullName : string.Empty));
 }