From 710940a638d842dbed18a10cc2ad34fda11b0dbe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 09:07:35 -0800 Subject: [PATCH] Fix GraphQL contentitem-status filter Fix #17115 (#17471) --- .../Queries/ContentItemsFieldType.cs | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/OrchardCore/OrchardCore.ContentManagement.GraphQL/Queries/ContentItemsFieldType.cs b/src/OrchardCore/OrchardCore.ContentManagement.GraphQL/Queries/ContentItemsFieldType.cs index 37b3346a80c..68d14343323 100644 --- a/src/OrchardCore/OrchardCore.ContentManagement.GraphQL/Queries/ContentItemsFieldType.cs +++ b/src/OrchardCore/OrchardCore.ContentManagement.GraphQL/Queries/ContentItemsFieldType.cs @@ -84,7 +84,7 @@ private async ValueTask> ResolveAsync(IResolveFieldCont var query = preQuery.With(); - query = FilterVersion(query, GetVersionOptions(context)); + query = FilterVersion(query, context.GetArgument("status")); query = FilterContentType(query, context); query = OrderBy(query, context); @@ -209,29 +209,19 @@ private static IQuery FilterContentType(IQuery q.ContentType == contentType); } - private static VersionOptions GetVersionOptions(IResolveFieldContext context) + private static IQuery FilterVersion(IQuery query, PublicationStatusEnum status) { - if (context.HasPopulatedArgument("status")) + if (status == PublicationStatusEnum.Published) { - return GetVersionOption(context.GetArgument("status")); + query = query.Where(q => q.Published); } - - return VersionOptions.Published; - } - - private static IQuery FilterVersion(IQuery query, VersionOptions versionOption) - { - if (versionOption.IsPublished) - { - query = query.Where(q => q.Published == true); - } - else if (versionOption.IsDraft) + else if (status == PublicationStatusEnum.Draft) { - query = query.Where(q => q.Latest == true && q.Published == false); + query = query.Where(q => q.Latest && !q.Published); } - else if (versionOption.IsLatest) + else if (status == PublicationStatusEnum.Latest) { - query = query.Where(q => q.Latest == true); + query = query.Where(q => q.Latest); } return query;