552 lines
18 KiB
C#
552 lines
18 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) ...
|
|
//
|
|
#region Category
|
|
public static XEFRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryEFRepository<TContext>,
|
|
TContext
|
|
> GetXCategoryEFRepositoryDescriptor<TContext>()
|
|
where TContext : XDbContext
|
|
{
|
|
//
|
|
var result = new XEFRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryEFRepository<TContext>,
|
|
TContext
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XEFRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryEFRepository<TContext>,
|
|
TContext,
|
|
IXCategorySeeder,
|
|
TSeederImplementation
|
|
> GetXCategoryEFRepositoryDescriptor<TContext, TSeederImplementation>()
|
|
where TContext : XDbContext
|
|
where TSeederImplementation : XBaseDbSeeder<XCategory, int>
|
|
{
|
|
//
|
|
var result = new XEFRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryEFRepository<TContext>,
|
|
TContext,
|
|
IXCategorySeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region SubCategory
|
|
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
|
|
#endregion
|
|
|
|
//
|
|
#region Mongo Repository Descriptor Provider(s) ...
|
|
//
|
|
#region Category
|
|
public static XMongoRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryMongoRepository
|
|
> GetXCategoryMongoRepositoryDescriptor()
|
|
{
|
|
//
|
|
var result = new XMongoRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryMongoRepository
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XMongoRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryMongoRepository,
|
|
IXCategorySeeder,
|
|
TSeederImplementation
|
|
> GetXCategoryMongoRepositoryDescriptor<TSeederImplementation>()
|
|
where TSeederImplementation : XBaseDbSeeder<XCategory, int>
|
|
{
|
|
//
|
|
var result = new XMongoRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryMongoRepository,
|
|
IXCategorySeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region SubCategory
|
|
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
|
|
#endregion
|
|
|
|
//
|
|
#region InMemory Repository Descriptor Provider(s) ...
|
|
//
|
|
#region Category
|
|
public static XInMemoryRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryInMemoryRepository
|
|
> GetXCategoryInMemoryRepositoryDescriptor()
|
|
{
|
|
//
|
|
var result = new XInMemoryRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryInMemoryRepository
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XInMemoryRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryInMemoryRepository,
|
|
IXCategorySeeder,
|
|
TSeederImplementation
|
|
> GetXCategoryInMemoryRepositoryDescriptor<TSeederImplementation>()
|
|
where TSeederImplementation : XBaseDbSeeder<XCategory, int>
|
|
{
|
|
//
|
|
var result = new XInMemoryRepositoryDescriptor<
|
|
XCategory,
|
|
int,
|
|
IXCategoryKeyGenerator,
|
|
XCategoryKeyGenerator,
|
|
IXCategoryRepositoryEvents,
|
|
XCategoryRepositoryEvents,
|
|
XCategoryGraphType,
|
|
IntGraphType,
|
|
XCategoryGraphQuery,
|
|
IXCategoryGraphQLTypeHelper,
|
|
XCategoryGraphQLTypeHelper,
|
|
XCategoryGraphSchema,
|
|
IXCategoryRepository,
|
|
XCategoryInMemoryRepository,
|
|
IXCategorySeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region SubCategory
|
|
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
|
|
#endregion
|
|
}
|
|
} |