Files
xCategoryService/Helpers/XCategoryServiceHelper.cs
T
2026-06-01 01:04:55 +03:30

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