281 lines
8.6 KiB
C#
281 lines
8.6 KiB
C#
using GraphQL.Types;
|
|
using MongoDB.Bson.Serialization.Serializers;
|
|
using xDataHelper.Providers.GraphQL;
|
|
using xDataService.Db;
|
|
using xDataService.Models;
|
|
using xDataService.Providers;
|
|
using xStringService.Interfaces;
|
|
using xStringService.Interfaces.Entities;
|
|
using xStringService.Models.Entities;
|
|
using xStringService.Providers.Entities;
|
|
using xStringService.Providers.GraphQL;
|
|
|
|
namespace xStringService.Helpers
|
|
{
|
|
public static class XStringServiceHelper
|
|
{
|
|
//
|
|
#region EF Repository Descriptor Provider(s) ...
|
|
public static XEFRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringEFRepository<TContext>,
|
|
TContext
|
|
> GetXStringEfRepositoryDescriptor<TContext>()
|
|
where TContext : XDbContext
|
|
{
|
|
//
|
|
var result = new XEFRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringEFRepository<TContext>,
|
|
TContext
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XEFRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringEFRepository<TContext>,
|
|
TContext,
|
|
IXStringSeeder,
|
|
TSeederImplementation
|
|
> GetXStringEfRepositoryDescriptor<TContext, TSeederImplementation>()
|
|
where TContext : XDbContext
|
|
where TSeederImplementation : XBaseDbSeeder<XString, int>
|
|
{
|
|
//
|
|
var result = new XEFRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringEFRepository<TContext>,
|
|
TContext,
|
|
IXStringSeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region Mongo Repository Descriptor Provider(s) ...
|
|
public static XMongoRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringMongoRepository
|
|
> GetXStringMongoRepositoryDescriptor()
|
|
{
|
|
//
|
|
var result = new XMongoRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringMongoRepository
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XMongoRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringMongoRepository,
|
|
IXStringSeeder,
|
|
TSeederImplementation
|
|
> GetXStringMongoRepositoryDescriptor<TSeederImplementation>()
|
|
where TSeederImplementation : XBaseDbSeeder<XString, int>
|
|
{
|
|
//
|
|
var result = new XMongoRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringMongoRepository,
|
|
IXStringSeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region InMemory Repository Descriptor Provider(s) ...
|
|
public static XInMemoryRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringInMemoryRepository
|
|
> GetXStringInMemoryRepositoryDescriptor()
|
|
{
|
|
//
|
|
var result = new XInMemoryRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringInMemoryRepository
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XInMemoryRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringInMemoryRepository,
|
|
IXStringSeeder,
|
|
TSeederImplementation
|
|
> GetXStringInMemoryRepositoryDescriptor<TSeederImplementation>()
|
|
where TSeederImplementation : XBaseDbSeeder<XString, int>
|
|
{
|
|
//
|
|
var result = new XInMemoryRepositoryDescriptor<
|
|
XString,
|
|
int,
|
|
IXStringKeyGenerator,
|
|
XStringKeyGenerator,
|
|
IXStringRepositoryEvents,
|
|
XStringRepositoryEvents,
|
|
XStringGraphType,
|
|
IntGraphType,
|
|
XStringGraphQuery,
|
|
IXStringGraphQLTypeHelper,
|
|
XStringGraphQLTypeHelper,
|
|
XStringGraphSchema,
|
|
IXStringRepository,
|
|
XStringInMemoryRepository,
|
|
IXStringSeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
}
|
|
} |