using System; using GraphQL.Server; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using xAiApi.AI.DataHelper.GraphQL; using xAiApi.AI.Interfaces.Entities; using xAiApi.AI.Models.Entities; using xAiApi.Data.GraphQL; using xAiApi.Data.Interfaces; using xAiApi.Data.Models.Entities; using xDataService.Configuration; using xDataService.GraphQL; using xDataService.Interfaces; namespace xAiApi.Data.Helpers { public class XAiApiDataHelperGraphQLHelper : IXGraphQLHelper { public void AddXGraphEnumTypes(IServiceCollection services) { } public void AddXGraphInputTypes(IServiceCollection services) { } public void AddXGraphMutations(IServiceCollection services) { } public void AddXGraphObjectTypes(IServiceCollection services) { // // XTest ... services.AddSingleton(); services.AddSingleton>(); // // XAiMessage ... services.AddSingleton(); services.AddSingleton>(); // // XAiProject ... services.AddSingleton(); services.AddSingleton>(); // // XAiConversation ... services.AddSingleton(); services.AddSingleton>(); } public void AddXGraphQueries(IServiceCollection services) { // // XTest ... services.AddSingleton(); services.AddScoped(); // // XAiMessage ... services.AddSingleton(); services.AddScoped(); // // XAiProject ... services.AddSingleton(); services.AddScoped(); // // XAiConversation ... services.AddSingleton(); services.AddScoped(); } public void AddXGraphSchemas(IServiceCollection services) { // services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); } public void AddXGraphSubscriptions(IServiceCollection services) { } public IGraphQLBuilder AddXGraphTypes(IGraphQLBuilder builder) { // builder.AddGraphTypes(typeof(XTestGraphSchema)); // return builder; } public void UseXGraph(IApplicationBuilder app) { // using (var scope = app.ApplicationServices.CreateScope()) { // // XDataServiceConfiguration ... var dataServiceConfiguration = scope.ServiceProvider.GetService(); // // XTest ... var testHelper = scope.ServiceProvider.GetService(); app.UseGraphQL(testHelper.GetGraphQLPath()); app.UseGraphQLWebSockets(); // // XAiMessage ... var aiMessageHelper = scope.ServiceProvider.GetService(); app.UseGraphQL(aiMessageHelper.GetGraphQLPath()); app.UseGraphQLWebSockets(); // // XAiProject ... var aiProjectHelper = scope.ServiceProvider.GetService(); app.UseGraphQL(aiProjectHelper.GetGraphQLPath()); app.UseGraphQLWebSockets(); // // XAiConversation ... var aiConversationHelper = scope.ServiceProvider.GetService(); app.UseGraphQL(aiConversationHelper.GetGraphQLPath()); app.UseGraphQLWebSockets(); } } } }