private void AddRuntimeRequestDirectives(MappedSelectionItem mappedItem) { var selItem = mappedItem.Item; // request directives first; map dir args if (selItem.Directives != null) { foreach (var dir in selItem.Directives) { dir.MappedArgs = MapArguments(dir.Args, dir.Def.Args, dir); mappedItem.AddDirective(new RuntimeRequestDirective(dir)); } } }
private static bool ShouldInclude(this RequestContext requestContext, MappedSelectionItem mappedItem, ref bool hasIncludeSkip) { if (!mappedItem.HasDirectives) { return(true); } foreach (var dir in mappedItem.Directives) { var action = dir.Def.Handler as ISkipDirectiveAction; if (action == null) { continue; } hasIncludeSkip = true; var argValues = dir.GetArgValues(requestContext); if (action.ShouldSkip(requestContext, mappedItem, argValues)) { return(false); } } return(true); }
public bool ShouldSkip(RequestContext context, MappedSelectionItem item, object[] argValues) { var boolArg = (bool)argValues[0]; return(boolArg); }