diff --git a/Saule/Http/HandlesQueryAttribute.cs b/Saule/Http/HandlesQueryAttribute.cs index bed5e67..336a711 100644 --- a/Saule/Http/HandlesQueryAttribute.cs +++ b/Saule/Http/HandlesQueryAttribute.cs @@ -6,6 +6,7 @@ using System.Web.Http.Controllers; using System.Web.Http.Filters; using Saule.Queries; +using Saule.Queries.Fieldset; using Saule.Queries.Filtering; using Saule.Queries.Including; using Saule.Queries.Sorting; @@ -33,6 +34,7 @@ public override void OnActionExecuting(HttpActionContext actionContext) queryContext.IsHandledQuery = true; queryContext.Sort = new SortContext(queryParams); queryContext.Filter = new FilterContext(queryParams); + queryContext.Fieldset = new FieldsetContext(queryParams); if (queryContext.Include == null) { @@ -43,17 +45,6 @@ public override void OnActionExecuting(HttpActionContext actionContext) queryContext.Include.SetIncludes(queryParams); } - // we validate if action has QueryContext parameter - // and if it has it, then we pass it - var parameters = actionContext.ActionDescriptor.GetParameters(); - foreach (var parameter in parameters) - { - if (parameter.ParameterType == typeof(QueryContext)) - { - actionContext.ActionArguments[parameter.ParameterName] = queryContext; - } - } - base.OnActionExecuting(actionContext); } diff --git a/Saule/Http/QueryContextUtils.cs b/Saule/Http/QueryContextUtils.cs index 7e0824c..23a9e61 100644 --- a/Saule/Http/QueryContextUtils.cs +++ b/Saule/Http/QueryContextUtils.cs @@ -19,6 +19,17 @@ internal static QueryContext GetQueryContext(HttpActionContext actionContext) { query = new QueryContext(); actionContext.Request.Properties.Add(Constants.PropertyNames.QueryContext, query); + + // we validate if action has QueryContext parameter + // and if it has it, then we pass it + var parameters = actionContext.ActionDescriptor.GetParameters(); + foreach (var parameter in parameters) + { + if (parameter.ParameterType == typeof(QueryContext)) + { + actionContext.ActionArguments[parameter.ParameterName] = query; + } + } } return query;