public IGraphQLRequest Build() { // Replace tags in graphQL query. ReplaceTag("customMetaArgs", string.IsNullOrEmpty(_customMetaFilter) ? "" : $"(filter: \"{_customMetaFilter}\")"); ReplaceTag("renderContentArgs", $"(renderContent: {(_contentIncludeMode == ContentIncludeMode.IncludeDataAndRender || _contentIncludeMode == ContentIncludeMode.IncludeJsonAndRender ? "true" : "false")})"); if (_variables != null) { ReplaceTag("variantsArgs", _variables.ContainsKey("url") ? $"(url: \"{_variables["url"]}\")" : ""); } var query = QueryHelpers.ParseIncludeRegions(_query.ToString(), "includeContent", _contentIncludeMode == ContentIncludeMode.IncludeData || _contentIncludeMode == ContentIncludeMode.IncludeDataAndRender); query = QueryHelpers.ParseIncludeRegions(query, "includeJsonContent", _contentIncludeMode == ContentIncludeMode.IncludeJson || _contentIncludeMode == ContentIncludeMode.IncludeJsonAndRender); QueryHelpers.ExpandRecursiveFragment(ref query, null, _descendantLevels); QueryHelpers.RemoveUnusedFragments(ref query); if (_contextData != null) { WithVariable("contextData", _contextData.ClaimValues); } return(new GraphQLRequest { OperationName = _operationName, Query = query, Variables = _variables, Convertors = _convertors }); }