コード例 #1
0
        public void ParsesEmpty()
        {
            var context = new FilteringContext(Enumerable.Empty<KeyValuePair<string, string>>());

            var actual = context.Properties;

            Assert.Equal(Enumerable.Empty<FilteringProperty>(), actual);
        }
コード例 #2
0
        /// <summary>
        /// See base class documentation.
        /// </summary>
        /// <param name="actionContext">The action context.</param>
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            var queryParams = actionContext.Request.GetQueryNameValuePairs().ToList();
            var sorting = new SortingContext(queryParams);
            var filtering = new FilteringContext(queryParams);

            var queryContext = GetQueryContext(actionContext);

            queryContext.Sorting = sorting;
            queryContext.Filtering = filtering;

            base.OnActionExecuting(actionContext);
        }
コード例 #3
0
        internal void ParsesCorrectly(string[] names, string[] values, string[] properties)
        {
            var context = new FilteringContext(GetQuery(names, values));
            var expected = properties.Zip(values, (n, v) => new
            {
                Name = n,
                Value = v
            }).ToList();
            var actual = context.Properties.Select(p => new
            {
                p.Name,
                p.Value
            }).ToList();

            Assert.Equal(expected, actual);
        }
コード例 #4
0
ファイル: Query.cs プロジェクト: markwalsh-liverpool/saule
        public static object ApplyFiltering(object data, FilteringContext context, ApiResource resource)
        {
            var queryable = data as IQueryable;
            if (queryable != null)
            {
                return new FilteringInterpreter(context, resource).Apply(queryable);
            }

            var enumerable = data as IEnumerable;
            if (enumerable != null)
            {
                // all queryables are enumerable, so this needs to be after
                // the queryable case
                return new FilteringInterpreter(context, resource).Apply(enumerable);
            }

            return data;
        }
コード例 #5
0
 public FilteringInterpreter(FilteringContext context, ApiResource resource)
 {
     _context  = context;
     _resource = resource;
 }
コード例 #6
0
 public FilteringInterpreter(FilteringContext context, ApiResource resource)
 {
     _context = context;
     _resource = resource;
 }