Files
xAiModels/Helpers/XAiModelsHelper.cs
2026-07-26 21:19:40 +03:30

816 lines
27 KiB
C#

using System;
using GraphQL.Types;
using xAiModels.Interfaces.Entities;
using xAiModels.Models.Entities;
using xAiModels.Providers.Entities;
using xAiModels.Providers.GraphQL;
using xDataService.Db;
using xDataService.Models;
using xDataService.Providers;
namespace xAiModels.Helpers
{
public static class XAiModelsHelper
{
//
#region XAiConversation ...
//
#region EF Repository Descriptor Provider(s) ...
public static XEFRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationEFRepository<TContext>,
TContext
> GetXAiConversationEFRepositoryDescriptor<TContext>()
where TContext : XDbContext
{
//
var result = new XEFRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationEFRepository<TContext>,
TContext
>();
//
return result;
}
public static XEFRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationEFRepository<TContext>,
TContext,
IXAiConversationSeeder,
TSeederImplementation
> GetXAiConversationEFRepositoryDescriptor<TContext, TSeederImplementation>()
where TContext : XDbContext
where TSeederImplementation : XBaseDbSeeder<XAiConversation, Guid>
{
//
var result = new XEFRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationEFRepository<TContext>,
TContext,
IXAiConversationSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region Mongo Repository Descriptor Provider(s) ...
public static XMongoRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationMongoRepository
> GetXAiConversationMongoRepositoryDescriptor()
{
//
var result = new XMongoRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationMongoRepository
>();
//
return result;
}
public static XMongoRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationMongoRepository,
IXAiConversationSeeder,
TSeederImplementation
> GetXAiConversationMongoRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XAiConversation, Guid>
{
//
var result = new XMongoRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationMongoRepository,
IXAiConversationSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region InMemory Repository Descriptor Provider(s) ...
public static XInMemoryRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationInMemoryRepository
> GetXAiConversationInMemoryRepositoryDescriptor()
{
//
var result = new XInMemoryRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationInMemoryRepository
>();
//
return result;
}
public static XInMemoryRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationInMemoryRepository,
IXAiConversationSeeder,
TSeederImplementation
> GetXAiConversationInMemoryRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XAiConversation, Guid>
{
//
var result = new XInMemoryRepositoryDescriptor<
XAiConversation,
Guid,
IXAiConversationKeyGenerator,
XAiConversationKeyGenerator,
IXAiConversationRepositoryEvents,
XAiConversationRepositoryEvents,
XAiConversationGraphType,
GuidGraphType,
XAiConversationGraphQuery,
IXAiConversationGraphQLTypeHelper,
XAiConversationGraphQLTypeHelper,
XAiConversationGraphSchema,
IXAiConversationRepository,
XAiConversationInMemoryRepository,
IXAiConversationSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
#endregion
//
#region XAiMessage ...
//
#region EF Repository Descriptor Provider(s) ...
public static XEFRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageEFRepository<TContext>,
TContext
> GetXAiMessageEFRepositoryDescriptor<TContext>()
where TContext : XDbContext
{
//
var result = new XEFRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageEFRepository<TContext>,
TContext
>();
//
return result;
}
public static XEFRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageEFRepository<TContext>,
TContext,
IXAiMessageSeeder,
TSeederImplementation
> GetXAiMessageEFRepositoryDescriptor<TContext, TSeederImplementation>()
where TContext : XDbContext
where TSeederImplementation : XBaseDbSeeder<XAiMessage, Guid>
{
//
var result = new XEFRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageEFRepository<TContext>,
TContext,
IXAiMessageSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region Mongo Repository Descriptor Provider(s) ...
public static XMongoRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageMongoRepository
> GetXAiMessageMongoRepositoryDescriptor()
{
//
var result = new XMongoRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageMongoRepository
>();
//
return result;
}
public static XMongoRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageMongoRepository,
IXAiMessageSeeder,
TSeederImplementation
> GetXAiMessageMongoRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XAiMessage, Guid>
{
//
var result = new XMongoRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageMongoRepository,
IXAiMessageSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region InMemory Repository Descriptor Provider(s) ...
public static XInMemoryRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageInMemoryRepository
> GetXAiMessageInMemoryRepositoryDescriptor()
{
//
var result = new XInMemoryRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageInMemoryRepository
>();
//
return result;
}
public static XInMemoryRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageInMemoryRepository,
IXAiMessageSeeder,
TSeederImplementation
> GetXAiMessageInMemoryRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XAiMessage, Guid>
{
//
var result = new XInMemoryRepositoryDescriptor<
XAiMessage,
Guid,
IXAiMessageKeyGenerator,
XAiMessageKeyGenerator,
IXAiMessageRepositoryEvents,
XAiMessageRepositoryEvents,
XAiMessageGraphType,
GuidGraphType,
XAiMessageGraphQuery,
IXAiMessageGraphQLTypeHelper,
XAiMessageGraphQLTypeHelper,
XAiMessageGraphSchema,
IXAiMessageRepository,
XAiMessageInMemoryRepository,
IXAiMessageSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
#endregion
//
#region XAiProject ...
//
#region EF Repository Descriptor Provider(s) ...
public static XEFRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectEFRepository<TContext>,
TContext
> GetXAiProjectEFRepositoryDescriptor<TContext>()
where TContext : XDbContext
{
//
var result = new XEFRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectEFRepository<TContext>,
TContext
>();
//
return result;
}
public static XEFRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectEFRepository<TContext>,
TContext,
IXAiProjectSeeder,
TSeederImplementation
> GetXAiProjectEFRepositoryDescriptor<TContext, TSeederImplementation>()
where TContext : XDbContext
where TSeederImplementation : XBaseDbSeeder<XAiProject, Guid>
{
//
var result = new XEFRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectEFRepository<TContext>,
TContext,
IXAiProjectSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region Mongo Repository Descriptor Provider(s) ...
public static XMongoRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectMongoRepository
> GetXAiProjectMongoRepositoryDescriptor()
{
//
var result = new XMongoRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectMongoRepository
>();
//
return result;
}
public static XMongoRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectMongoRepository,
IXAiProjectSeeder,
TSeederImplementation
> GetXAiProjectMongoRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XAiProject, Guid>
{
//
var result = new XMongoRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectMongoRepository,
IXAiProjectSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region InMemory Repository Descriptor Provider(s) ...
public static XInMemoryRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectInMemoryRepository
> GetXAiProjectInMemoryRepositoryDescriptor()
{
//
var result = new XInMemoryRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectInMemoryRepository
>();
//
return result;
}
public static XInMemoryRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectInMemoryRepository,
IXAiProjectSeeder,
TSeederImplementation
> GetXAiProjectInMemoryRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XAiProject, Guid>
{
//
var result = new XInMemoryRepositoryDescriptor<
XAiProject,
Guid,
IXAiProjectKeyGenerator,
XAiProjectKeyGenerator,
IXAiProjectRepositoryEvents,
XAiProjectRepositoryEvents,
XAiProjectGraphType,
GuidGraphType,
XAiProjectGraphQuery,
IXAiProjectGraphQLTypeHelper,
XAiProjectGraphQLTypeHelper,
XAiProjectGraphSchema,
IXAiProjectRepository,
XAiProjectInMemoryRepository,
IXAiProjectSeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
#endregion
}
}