280 lines
8.2 KiB
C#
280 lines
8.2 KiB
C#
using System;
|
|
using GraphQL.Types;
|
|
using xDataService.Db;
|
|
using xDataService.Models;
|
|
using xDataService.Providers;
|
|
using xFileService.Interfaces;
|
|
using xFileService.Interfaces.Entities;
|
|
using xFileService.Models.Entities;
|
|
using xFileService.Providers.Entities;
|
|
using xFileService.Providers.GraphQL;
|
|
|
|
namespace xFileService.Helpers
|
|
{
|
|
public static class XFileServiceHelper
|
|
{
|
|
//
|
|
#region EF Repository Descriptor Provider(s) ...
|
|
public static XEFRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileEFRepository<TContext>,
|
|
TContext
|
|
> GetXFileEFRepositoryDescriptor<TContext>()
|
|
where TContext : XDbContext
|
|
{
|
|
//
|
|
var result = new XEFRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileEFRepository<TContext>,
|
|
TContext
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XEFRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileEFRepository<TContext>,
|
|
TContext,
|
|
IXFileSeeder,
|
|
TSeederImplementation
|
|
> GetXFileEFRepositoryDescriptor<TContext, TSeederImplementation>()
|
|
where TContext : XDbContext
|
|
where TSeederImplementation : XBaseDbSeeder<XFile, Guid>
|
|
{
|
|
//
|
|
var result = new XEFRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileEFRepository<TContext>,
|
|
TContext,
|
|
IXFileSeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region Mongo Repository Descriptor Provider(s) ...
|
|
public static XMongoRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileMongoRepository
|
|
> GetXFileMongoRepositoryDescriptor()
|
|
{
|
|
//
|
|
var result = new XMongoRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileMongoRepository
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XMongoRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileMongoRepository,
|
|
IXFileSeeder,
|
|
TSeederImplementation
|
|
> GetXFileMongoRepositoryDescriptor<TSeederImplementation>()
|
|
where TSeederImplementation : XBaseDbSeeder<XFile, Guid>
|
|
{
|
|
//
|
|
var result = new XMongoRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileMongoRepository,
|
|
IXFileSeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region InMemory Repository Descriptor Provider(s) ...
|
|
public static XInMemoryRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileInMemoryRepository
|
|
> GetXFileInMemoryRepositoryDescriptor()
|
|
{
|
|
//
|
|
var result = new XInMemoryRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileInMemoryRepository
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
public static XInMemoryRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileInMemoryRepository,
|
|
IXFileSeeder,
|
|
TSeederImplementation
|
|
> GetXFileInMemoryRepositoryDescriptor<TSeederImplementation>()
|
|
where TSeederImplementation : XBaseDbSeeder<XFile, Guid>
|
|
{
|
|
//
|
|
var result = new XInMemoryRepositoryDescriptor<
|
|
XFile,
|
|
Guid,
|
|
IXFileKeyGenerator,
|
|
XFileKeyGenerator,
|
|
IXFileRepositoryEvents,
|
|
XFileRepositoryEvents,
|
|
XFileGraphType,
|
|
GuidGraphType,
|
|
XFileGraphQuery,
|
|
IXFileGraphQLTypeHelper,
|
|
XFileGraphQLTypeHelper,
|
|
XFileGraphSchema,
|
|
IXFileRepository,
|
|
XFileInMemoryRepository,
|
|
IXFileSeeder,
|
|
TSeederImplementation
|
|
>();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
#endregion
|
|
}
|
|
} |