diff --git a/Directory.Build.props b/Directory.Build.props index 7b696a1..754cdf2 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,7 +2,7 @@ - 3.816.0 + 3.900.0 $(VersionSuffix)-$(BuildNumber) diff --git a/src/VirtoCommerce.PushMessages.ExperienceApi/Schemas/PushMessagesSchema.cs b/src/VirtoCommerce.PushMessages.ExperienceApi/Schemas/PushMessagesSchema.cs index 8fe7179..8676446 100644 --- a/src/VirtoCommerce.PushMessages.ExperienceApi/Schemas/PushMessagesSchema.cs +++ b/src/VirtoCommerce.PushMessages.ExperienceApi/Schemas/PushMessagesSchema.cs @@ -2,7 +2,6 @@ using System.Threading.Tasks; using GraphQL; using GraphQL.Resolvers; -using GraphQL.Subscription; using GraphQL.Types; using Microsoft.AspNetCore.Authorization; using VirtoCommerce.PushMessages.ExperienceApi.Authorization; @@ -20,12 +19,12 @@ public class PushMessagesSchema(IPushMessageHub eventBroker, IAuthorizationServi { public void Build(ISchema schema) { - var messageAddedEventStreamFieldType = new EventStreamFieldType + var messageAddedEventStreamFieldType = new FieldType { Name = "pushMessageCreated", - Type = GraphTypeExtenstionHelper.GetActualType>(), + Type = GraphTypeExtensionHelper.GetActualType>(), Resolver = new FuncFieldResolver(ResolveMessage), - AsyncSubscriber = new AsyncEventStreamResolver(Subscribe) + StreamResolver = new SourceStreamResolver(Subscribe) }; schema.Subscription.AddField(messageAddedEventStreamFieldType); } @@ -35,7 +34,7 @@ private ExpPushMessage ResolveMessage(IResolveFieldContext context) return context.Source as ExpPushMessage; } - private async Task> Subscribe(IResolveEventStreamContext context) + private async ValueTask> Subscribe(IResolveFieldContext context) { var authorizationResult = await authorizationService.AuthorizeAsync(context.GetCurrentPrincipal(), null, new PushMessagesAuthorizationRequirement()); if (!authorizationResult.Succeeded) diff --git a/src/VirtoCommerce.PushMessages.ExperienceApi/VirtoCommerce.PushMessages.ExperienceApi.csproj b/src/VirtoCommerce.PushMessages.ExperienceApi/VirtoCommerce.PushMessages.ExperienceApi.csproj index 500632f..6d55131 100644 --- a/src/VirtoCommerce.PushMessages.ExperienceApi/VirtoCommerce.PushMessages.ExperienceApi.csproj +++ b/src/VirtoCommerce.PushMessages.ExperienceApi/VirtoCommerce.PushMessages.ExperienceApi.csproj @@ -12,7 +12,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/VirtoCommerce.PushMessages.Web/Module.cs b/src/VirtoCommerce.PushMessages.Web/Module.cs index 18e8184..fc76c65 100644 --- a/src/VirtoCommerce.PushMessages.Web/Module.cs +++ b/src/VirtoCommerce.PushMessages.Web/Module.cs @@ -1,12 +1,11 @@ using System; -using GraphQL.Server; -using MediatR; +using GraphQL; +using GraphQL.MicrosoftDI; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Builder; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; using VirtoCommerce.CustomerModule.Core.Events; using VirtoCommerce.Platform.Core.Events; using VirtoCommerce.Platform.Core.Modularity; @@ -32,7 +31,6 @@ using VirtoCommerce.StoreModule.Core.Model; using VirtoCommerce.Xapi.Core.Extensions; using VirtoCommerce.Xapi.Core.Infrastructure; -using VirtoCommerce.Xapi.Core.Models; namespace VirtoCommerce.PushMessages.Web; @@ -83,12 +81,11 @@ public void Initialize(IServiceCollection serviceCollection) serviceCollection.AddSingleton(); // GraphQL - var assemblyMarker = typeof(AssemblyMarker); - var graphQlBuilder = new CustomGraphQLBuilder(serviceCollection); - graphQlBuilder.AddGraphTypes(assemblyMarker); - serviceCollection.AddMediatR(assemblyMarker); - serviceCollection.AddAutoMapper(assemblyMarker); - serviceCollection.AddSchemaBuilders(assemblyMarker); + _ = new GraphQLBuilder(serviceCollection, builder => + { + builder.AddSchema(serviceCollection, typeof(AssemblyMarker)); + }); + serviceCollection.AddDistributedMessageService(Configuration); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); @@ -99,8 +96,7 @@ public void PostInitialize(IApplicationBuilder appBuilder) { var serviceProvider = appBuilder.ApplicationServices; - var playgroundOptions = appBuilder.ApplicationServices.GetService>(); - appBuilder.UseSchemaGraphQL>(playgroundOptions?.Value?.Enable ?? true, "pushMessages"); + appBuilder.UseScopedSchema("pushMessages"); // Register settings var settingsRegistrar = serviceProvider.GetRequiredService(); diff --git a/src/VirtoCommerce.PushMessages.Web/module.manifest b/src/VirtoCommerce.PushMessages.Web/module.manifest index 5db2437..1f81a26 100644 --- a/src/VirtoCommerce.PushMessages.Web/module.manifest +++ b/src/VirtoCommerce.PushMessages.Web/module.manifest @@ -1,13 +1,13 @@ VirtoCommerce.PushMessages - 3.816.0 + 3.900.0 3.853.0 - + Push Messages @@ -37,7 +37,7 @@ VirtoCommerce.PushMessages.Web.Module, VirtoCommerce.PushMessages.Web First version. - Copyright © 2024 VirtoCommerce. All rights reserved + Copyright © 2024–2025 VirtoCommerce. All rights reserved extension module false