Files
xStringService/Helpers/XStringServiceHelper.cs
T

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
}
}