Files
xCategoryService/Helpers/XCategoryServiceHelper.cs
T

279 lines
9.3 KiB
C#

using GraphQL.Types;
using xCategoryService.Interfaces;
using xCategoryService.Interfaces.Entities;
using xCategoryService.Models.Entities;
using xCategoryService.Providers.Entities;
using xCategoryService.Providers.GraphQL;
using xDataService.Db;
using xDataService.Models;
using xDataService.Providers;
namespace xCategoryService.Helpers
{
public static class XCategoryServiceHelper
{
//
#region EF Repository Descriptor Provider(s) ...
public static XEFRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryEFRepository<TContext>,
TContext
> GetXSubCategoryEFRepositoryDescriptor<TContext>()
where TContext : XDbContext
{
//
var result = new XEFRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryEFRepository<TContext>,
TContext
>();
//
return result;
}
public static XEFRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryEFRepository<TContext>,
TContext,
IXSubCategorySeeder,
TSeederImplementation
> GetXSubCategoryEFRepositoryDescriptor<TContext, TSeederImplementation>()
where TContext : XDbContext
where TSeederImplementation : XBaseDbSeeder<XSubCategory, int>
{
//
var result = new XEFRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryEFRepository<TContext>,
TContext,
IXSubCategorySeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region Mongo Repository Descriptor Provider(s) ...
public static XMongoRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryMongoRepository
> GetXSubCategoryMongoRepositoryDescriptor()
{
//
var result = new XMongoRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryMongoRepository
>();
//
return result;
}
public static XMongoRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryMongoRepository,
IXSubCategorySeeder,
TSeederImplementation
> GetXSubCategoryMongoRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XSubCategory, int>
{
//
var result = new XMongoRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryMongoRepository,
IXSubCategorySeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
//
#region InMemory Repository Descriptor Provider(s) ...
public static XInMemoryRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryInMemoryRepository
> GetXSubCategoryInMemoryRepositoryDescriptor()
{
//
var result = new XInMemoryRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryInMemoryRepository
>();
//
return result;
}
public static XInMemoryRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryInMemoryRepository,
IXSubCategorySeeder,
TSeederImplementation
> GetXSubCategoryInMemoryRepositoryDescriptor<TSeederImplementation>()
where TSeederImplementation : XBaseDbSeeder<XSubCategory, int>
{
//
var result = new XInMemoryRepositoryDescriptor<
XSubCategory,
int,
IXSubCategoryKeyGenerator,
XSubCategoryKeyGenerator,
IXSubCategoryRepositoryEvents,
XSubCategoryRepositoryEvents,
XSubCategoryGraphType,
IntGraphType,
XSubCategoryGraphQuery,
IXSubCategoryGraphQLTypeHelper,
XSubCategoryGraphQLTypeHelper,
XSubCategoryGraphSchema,
IXSubCategoryRepository,
XSubCategoryInMemoryRepository,
IXSubCategorySeeder,
TSeederImplementation
>();
//
return result;
}
#endregion
}
}