public static IGraphQLRequest ExecuteItemQuery(InputItemFilter filter, InputSortParam sort, IPagination pagination, string customMetaFilter, ContentIncludeMode contentIncludeMode, bool includeContainerItems, IContextData contextData, IContextData globaContextData) { QueryBuilder builder = new QueryBuilder().WithQueryResource("ItemQuery", false); // We only include the fragments that will be required based on the item types in the // input item filter if (filter.ItemTypes != null) { string fragmentList = filter.ItemTypes.Select(itemType => $"{Enum.GetName(typeof (ContentModel.FilterItemType), itemType).Capitialize()}Fields") .Aggregate(string.Empty, (current, fragment) => current + $"...{fragment}\n"); // Just a quick and easy way to replace markers in our queries with vars here. builder.ReplaceTag("fragmentList", fragmentList); builder.LoadFragments(); } return(builder.WithIncludeRegion("includeContainerItems", includeContainerItems). WithPagination(pagination). WithCustomMetaFilter(customMetaFilter). WithContentIncludeMode(contentIncludeMode). WithInputItemFilter(filter). WithInputSortParam(sort). WithContextData(contextData). WithContextData(globaContextData). WithConvertor(new ItemConvertor()). Build()); }
public ItemConnection ExecuteItemQuery(InputItemFilter filter, InputSortParam sort, IPagination pagination, string customMetaFilter, ContentIncludeMode contentIncludeMode, bool includeContainerItems, IContextData contextData) => _client.Execute <ContentQuery>(GraphQLRequests.ExecuteItemQuery(filter, sort, pagination, customMetaFilter, contentIncludeMode, includeContainerItems, contextData, GlobalContextDataInternal)).TypedResponseData.Items;
protected InputSortParam BuildSort(SimpleBrokerQuery queryParams) { if (!string.IsNullOrEmpty(queryParams.Sort) && queryParams.Sort.ToLower() != "none") { InputSortParam sort = new InputSortParam(); sort.Order = queryParams.Sort.ToLower().EndsWith("asc") ? SortOrderType.Ascending : SortOrderType.Descending; int idx = queryParams.Sort.Trim().IndexOf(" ", StringComparison.Ordinal); string sortColumn = idx > 0 ? queryParams.Sort.Trim().Substring(0, idx) : queryParams.Sort.Trim(); switch (sortColumn.ToLower()) { case "title": sort.SortBy = SortFieldType.TITLE; break; case "pubdate": sort.SortBy = SortFieldType.LAST_PUBLISH_DATE; break; default: sort.SortBy = SortFieldType.CREATION_DATE; break; } return(sort); } return(null); }
public IEnumerable <IItem> ExecuteQueryItems(SimpleBrokerQuery queryParams) { InputItemFilter filter = BuildFilter(queryParams); InputSortParam sort = BuildSort(queryParams); var client = ApiClientFactory.Instance.CreateClient(); int pageSize = queryParams.PageSize > 0 ? queryParams.PageSize + 1 : queryParams.PageSize; var results = client.ExecuteItemQuery(filter, sort, new Pagination { First = pageSize, After = queryParams.Cursor }, null, ContentIncludeMode.Exclude, false, null); var resultList = results.Edges.Select(edge => edge.Node).ToList(); if (pageSize == -1) { // returning all items with pageSize = -1 Cursor = null; return(resultList); } HasMore = results.Edges.Count > queryParams.PageSize; int n = HasMore ? queryParams.PageSize : results.Edges.Count; Cursor = n > 0 ? results.Edges[n - 1].Cursor : null; return(HasMore ? resultList.GetRange(0, queryParams.PageSize) : resultList); }
public IEnumerable <string> ExecuteQuery(SimpleBrokerQuery queryParams) { InputItemFilter filter = BuildFilter(queryParams); InputSortParam sort = BuildSort(queryParams); var client = ApiClientFactory.Instance.CreateClient(); var results = client.ExecuteItemQuery(filter, sort, new Pagination { First = queryParams.PageSize + 1, After = queryParams.Cursor }, null, ContentIncludeMode.Exclude, false, null); HasMore = results.Edges.Count > queryParams.PageSize; int n = HasMore ? queryParams.PageSize : results.Edges.Count; var resultList = new List <string>(); for (int i = 0; i < n; i++) { resultList.Add(results.Edges[i].Node.CmUri()); } Cursor = n > 0 ? results.Edges[n - 1].Cursor : null; return(resultList); }
public QueryBuilder WithInputSortParam(InputSortParam sort) => WithVariable("inputSortParam", sort);
public async Task <ItemConnection> ExecuteItemQueryAsync(InputItemFilter filter, InputSortParam sort, IPagination pagination, string customMetaFilter, ContentIncludeMode contentIncludeMode, bool includeContainerItems, IContextData contextData, CancellationToken cancellationToken = default(CancellationToken)) => ( await _client.ExecuteAsync <ContentQuery>( GraphQLRequests.ExecuteItemQuery(filter, sort, pagination, customMetaFilter, contentIncludeMode, includeContainerItems, contextData, GlobalContextDataInternal) , cancellationToken).ConfigureAwait(false)).TypedResponseData.Items;
public async Task <ComponentPresentationConnection> GetComponentPresentationsAsync(ContentNamespace ns, int publicationId, InputComponentPresentationFilter filter, InputSortParam sort, IPagination pagination, string customMetaFilter, ContentIncludeMode contentIncludeMode, IContextData contextData, CancellationToken cancellationToken) => (await _client.ExecuteAsync <ContentQuery>( GraphQLRequests.ComponentPresentations(ns, publicationId, filter, sort, pagination, customMetaFilter, contentIncludeMode, contextData, GlobalContextDataInternal), cancellationToken).ConfigureAwait(false)) .TypedResponseData.ComponentPresentations;
public ComponentPresentationConnection GetComponentPresentations(ContentNamespace ns, int publicationId, InputComponentPresentationFilter filter, InputSortParam sort, IPagination pagination, string customMetaFilter, ContentIncludeMode contentIncludeMode, IContextData contextData) => _client.Execute <ContentQuery>( GraphQLRequests.ComponentPresentations(ns, publicationId, filter, sort, pagination, customMetaFilter, contentIncludeMode, contextData, GlobalContextDataInternal)) .TypedResponseData.ComponentPresentations;
public static IGraphQLRequest ComponentPresentations(ContentNamespace ns, int publicationId, InputComponentPresentationFilter filter, InputSortParam sort, IPagination pagination, string customMetaFilter, ContentIncludeMode contentIncludeMode, IContextData contextData, IContextData globalContextData) => new QueryBuilder().WithQueryResource("ComponentPresentations", true) .WithNamespace(ns) .WithPublicationId(publicationId) .WithInputComponentPresentationFilter(filter) .WithInputSortParam(sort) .WithPagination(pagination) .WithCustomMetaFilter(customMetaFilter) .WithContentIncludeMode(contentIncludeMode) .WithContextData(contextData) .WithContextData(globalContextData) .WithConvertor(new ItemConvertor()) .Build();