implement Webinar and WebinarSubscriber Entity and Dto (s) and Data Requirements ...
This commit is contained in:
@@ -0,0 +1,550 @@
|
||||
using System;
|
||||
using GraphQL.Types;
|
||||
using xDataService.Db;
|
||||
using xDataService.Models;
|
||||
using xDataService.Providers;
|
||||
using xWebinarService.Interfaces;
|
||||
using xWebinarService.Interfaces.Entities;
|
||||
using xWebinarService.Models.Entities;
|
||||
using xWebinarService.Providers.Entities;
|
||||
using xWebinarService.Providers.GraphQL;
|
||||
|
||||
namespace xWebinarService.Helpers
|
||||
{
|
||||
public static class XWebinarServiceHelper
|
||||
{
|
||||
//
|
||||
#region XWebinar ...
|
||||
//
|
||||
#region EF Repository Descriptor Provider(s) ...
|
||||
public static XEFRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarEFRepository<TContext>,
|
||||
TContext
|
||||
> GetXWebinarEFRepositoryDescriptor<TContext>()
|
||||
where TContext : XDbContext
|
||||
{
|
||||
//
|
||||
var result = new XEFRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarEFRepository<TContext>,
|
||||
TContext
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public static XEFRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarEFRepository<TContext>,
|
||||
TContext,
|
||||
IXWebinarSeeder,
|
||||
TSeederImplementation
|
||||
> GetXWebinarEFRepositoryDescriptor<TContext, TSeederImplementation>()
|
||||
where TContext : XDbContext
|
||||
where TSeederImplementation : XBaseDbSeeder<XWebinar, Guid>
|
||||
{
|
||||
//
|
||||
var result = new XEFRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarEFRepository<TContext>,
|
||||
TContext,
|
||||
IXWebinarSeeder,
|
||||
TSeederImplementation
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Mongo Repository Descriptor Provider(s) ...
|
||||
public static XMongoRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarMongoRepository
|
||||
> GetXWebinarMongoRepositoryDescriptor()
|
||||
{
|
||||
//
|
||||
var result = new XMongoRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarMongoRepository
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public static XMongoRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarMongoRepository,
|
||||
IXWebinarSeeder,
|
||||
TSeederImplementation
|
||||
> GetXWebinarMongoRepositoryDescriptor<TSeederImplementation>()
|
||||
where TSeederImplementation : XBaseDbSeeder<XWebinar, Guid>
|
||||
{
|
||||
//
|
||||
var result = new XMongoRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarMongoRepository,
|
||||
IXWebinarSeeder,
|
||||
TSeederImplementation
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region InMemory Repository Descriptor Provider(s) ...
|
||||
public static XInMemoryRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarInMemoryRepository
|
||||
> GetXWebinarInMemoryRepositoryDescriptor()
|
||||
{
|
||||
//
|
||||
var result = new XInMemoryRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarInMemoryRepository
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public static XInMemoryRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarInMemoryRepository,
|
||||
IXWebinarSeeder,
|
||||
TSeederImplementation
|
||||
> GetXWebinarInMemoryRepositoryDescriptor<TSeederImplementation>()
|
||||
where TSeederImplementation : XBaseDbSeeder<XWebinar, Guid>
|
||||
{
|
||||
//
|
||||
var result = new XInMemoryRepositoryDescriptor<
|
||||
XWebinar,
|
||||
Guid,
|
||||
IXWebinarKeyGenerator,
|
||||
XWebinarKeyGenerator,
|
||||
IXWebinarRepositoryEvents,
|
||||
XWebinarRepositoryEvents,
|
||||
XWebinarGraphType,
|
||||
GuidGraphType,
|
||||
XWebinarGraphQuery,
|
||||
IXWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphQLTypeHelper,
|
||||
XWebinarGraphSchema,
|
||||
IXWebinarRepository,
|
||||
XWebinarInMemoryRepository,
|
||||
IXWebinarSeeder,
|
||||
TSeederImplementation
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region XWebinarSubscriber ...
|
||||
//
|
||||
#region EF Repository Descriptor Provider(s) ...
|
||||
public static XEFRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberEFRepository<TContext>,
|
||||
TContext
|
||||
> GetXWebinarSubscriberEFRepositoryDescriptor<TContext>()
|
||||
where TContext : XDbContext
|
||||
{
|
||||
//
|
||||
var result = new XEFRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberEFRepository<TContext>,
|
||||
TContext
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public static XEFRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberEFRepository<TContext>,
|
||||
TContext,
|
||||
IXWebinarSubscriberSeeder,
|
||||
TSeederImplementation
|
||||
> GetXWebinarSubscriberEFRepositoryDescriptor<TContext, TSeederImplementation>()
|
||||
where TContext : XDbContext
|
||||
where TSeederImplementation : XBaseDbSeeder<XWebinarSubscriber, int>
|
||||
{
|
||||
//
|
||||
var result = new XEFRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberEFRepository<TContext>,
|
||||
TContext,
|
||||
IXWebinarSubscriberSeeder,
|
||||
TSeederImplementation
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Mongo Repository Descriptor Provider(s) ...
|
||||
public static XMongoRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberMongoRepository
|
||||
> GetXWebinarSubscriberMongoRepositoryDescriptor()
|
||||
{
|
||||
//
|
||||
var result = new XMongoRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberMongoRepository
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public static XMongoRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberMongoRepository,
|
||||
IXWebinarSubscriberSeeder,
|
||||
TSeederImplementation
|
||||
> GetXWebinarSubscriberMongoRepositoryDescriptor<TSeederImplementation>()
|
||||
where TSeederImplementation : XBaseDbSeeder<XWebinarSubscriber, int>
|
||||
{
|
||||
//
|
||||
var result = new XMongoRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberMongoRepository,
|
||||
IXWebinarSubscriberSeeder,
|
||||
TSeederImplementation
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region InMemory Repository Descriptor Provider(s) ...
|
||||
public static XInMemoryRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberInMemoryRepository
|
||||
> GetXWebinarSubscriberInMemoryRepositoryDescriptor()
|
||||
{
|
||||
//
|
||||
var result = new XInMemoryRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberInMemoryRepository
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
public static XInMemoryRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberInMemoryRepository,
|
||||
IXWebinarSubscriberSeeder,
|
||||
TSeederImplementation
|
||||
> GetXWebinarSubscriberInMemoryRepositoryDescriptor<TSeederImplementation>()
|
||||
where TSeederImplementation : XBaseDbSeeder<XWebinarSubscriber, int>
|
||||
{
|
||||
//
|
||||
var result = new XInMemoryRepositoryDescriptor<
|
||||
XWebinarSubscriber,
|
||||
int,
|
||||
IXWebinarSubscriberKeyGenerator,
|
||||
XWebinarSubscriberKeyGenerator,
|
||||
IXWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberRepositoryEvents,
|
||||
XWebinarSubscriberGraphType,
|
||||
IntGraphType,
|
||||
XWebinarSubscriberGraphQuery,
|
||||
IXWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphQLTypeHelper,
|
||||
XWebinarSubscriberGraphSchema,
|
||||
IXWebinarSubscriberRepository,
|
||||
XWebinarSubscriberInMemoryRepository,
|
||||
IXWebinarSubscriberSeeder,
|
||||
TSeederImplementation
|
||||
>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user