//////////////////////////////////////////////////////////////
// This code was generated by LLBLGen Pro 5.7.
//////////////////////////////////////////////////////////////
// Code is generated on:
// Code is generated using templates: SD.TemplateBindings.SharedTemplates
// Templates vendor: Solutions Design.
//////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using Datalib.EntityClasses;
using Datalib.HelperClasses;
using Datalib.RelationClasses;
using SD.LLBLGen.Pro.ORMSupportClasses;
namespace Datalib.FactoryClasses
{
// __LLBLGENPRO_USER_CODE_REGION_START AdditionalNamespaces
// __LLBLGENPRO_USER_CODE_REGION_END
/// general base class for the generated factories
[Serializable]
public partial class EntityFactoryBase2 : EntityFactoryCore2
where TEntity : EntityBase2, IEntity2
{
private readonly Datalib.EntityType _typeOfEntity;
private readonly bool _isInHierarchy;
/// CTor
/// Name of the entity.
/// The type of entity.
/// If true, the entity of this factory is in an inheritance hierarchy, false otherwise
public EntityFactoryBase2(string entityName, Datalib.EntityType typeOfEntity, bool isInHierarchy) : base(entityName)
{
_typeOfEntity = typeOfEntity;
_isInHierarchy = isInHierarchy;
}
///
public override IEntityFields2 CreateFields() { return ModelInfoProviderSingleton.GetInstance().GetEntityFields(this.ForEntityName); }
///
public override IEntity2 CreateEntityFromEntityTypeValue(int entityTypeValue) { return GeneralEntityFactory.Create((Datalib.EntityType)entityTypeValue); }
///
public override IRelationCollection CreateHierarchyRelations(string objectAlias) { return ModelInfoProviderSingleton.GetInstance().GetHierarchyRelations(this.ForEntityName, objectAlias); }
///
public override IEntityFactory2 GetEntityFactory(object[] fieldValues, Dictionary entityFieldStartIndexesPerEntity)
{
return (IEntityFactory2)ModelInfoProviderSingleton.GetInstance().GetEntityFactory(this.ForEntityName, fieldValues, entityFieldStartIndexesPerEntity) ?? this;
}
///
public override IPredicateExpression GetEntityTypeFilter(bool negate, string objectAlias) { return ModelInfoProviderSingleton.GetInstance().GetEntityTypeFilter(this.ForEntityName, objectAlias, negate); }
///
public override IEntityCollection2 CreateEntityCollection() { return new EntityCollection(this); }
///
public override IEntityFields2 CreateHierarchyFields()
{
return _isInHierarchy ? new EntityFields2(ModelInfoProviderSingleton.GetInstance().GetHierarchyFields(this.ForEntityName), ModelInfoProviderSingleton.GetInstance(), null) : base.CreateHierarchyFields();
}
///
protected override Type ForEntityType { get { return typeof(TEntity); } }
}
/// Factory to create new, empty TblFieldEntity objects.
[Serializable]
public partial class TblFieldEntityFactory : EntityFactoryBase2
{
/// CTor
public TblFieldEntityFactory() : base("TblFieldEntity", Datalib.EntityType.TblFieldEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblFieldEntity(fields); }
}
/// Factory to create new, empty TblQuestionEntity objects.
[Serializable]
public partial class TblQuestionEntityFactory : EntityFactoryBase2
{
/// CTor
public TblQuestionEntityFactory() : base("TblQuestionEntity", Datalib.EntityType.TblQuestionEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuestionEntity(fields); }
}
/// Factory to create new, empty TblQuizEntity objects.
[Serializable]
public partial class TblQuizEntityFactory : EntityFactoryBase2
{
/// CTor
public TblQuizEntityFactory() : base("TblQuizEntity", Datalib.EntityType.TblQuizEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizEntity(fields); }
}
/// Factory to create new, empty TblQuizQuestionEntity objects.
[Serializable]
public partial class TblQuizQuestionEntityFactory : EntityFactoryBase2
{
/// CTor
public TblQuizQuestionEntityFactory() : base("TblQuizQuestionEntity", Datalib.EntityType.TblQuizQuestionEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizQuestionEntity(fields); }
}
/// Factory to create new, empty TblQuizTemplateEntity objects.
[Serializable]
public partial class TblQuizTemplateEntityFactory : EntityFactoryBase2
{
/// CTor
public TblQuizTemplateEntityFactory() : base("TblQuizTemplateEntity", Datalib.EntityType.TblQuizTemplateEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizTemplateEntity(fields); }
}
/// Factory to create new, empty TblQuizTemplateDetailEntity objects.
[Serializable]
public partial class TblQuizTemplateDetailEntityFactory : EntityFactoryBase2
{
/// CTor
public TblQuizTemplateDetailEntityFactory() : base("TblQuizTemplateDetailEntity", Datalib.EntityType.TblQuizTemplateDetailEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizTemplateDetailEntity(fields); }
}
/// Factory to create new, empty TblSubjectEntity objects.
[Serializable]
public partial class TblSubjectEntityFactory : EntityFactoryBase2
{
/// CTor
public TblSubjectEntityFactory() : base("TblSubjectEntity", Datalib.EntityType.TblSubjectEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblSubjectEntity(fields); }
}
/// Factory to create new, empty TblTrainingTypeEntity objects.
[Serializable]
public partial class TblTrainingTypeEntityFactory : EntityFactoryBase2
{
/// CTor
public TblTrainingTypeEntityFactory() : base("TblTrainingTypeEntity", Datalib.EntityType.TblTrainingTypeEntity, false) { }
///
protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblTrainingTypeEntity(fields); }
}
/// Factory to create new, empty Entity objects based on the entity type specified. Uses entity specific factory objects
[Serializable]
public partial class GeneralEntityFactory
{
/// Creates a new, empty Entity object of the type specified
/// The entity type to create.
/// A new, empty Entity object.
public static IEntity2 Create(Datalib.EntityType entityTypeToCreate)
{
var factoryToUse = EntityFactoryFactory.GetFactory(entityTypeToCreate);
IEntity2 toReturn = null;
if(factoryToUse != null)
{
toReturn = factoryToUse.Create();
}
return toReturn;
}
}
/// Class which is used to obtain the entity factory based on the .NET type of the entity.
[Serializable]
public static class EntityFactoryFactory
{
private static Dictionary _factoryPerType = new Dictionary();
/// Initializes the class.
static EntityFactoryFactory()
{
foreach(int entityTypeValue in Enum.GetValues(typeof(Datalib.EntityType)))
{
var factory = GetFactory((Datalib.EntityType)entityTypeValue);
_factoryPerType.Add(factory.ForEntityType ?? factory.Create().GetType(), factory);
}
}
/// Gets the factory of the entity with the .NET type specified
/// The type of entity.
/// factory to use or null if not found
public static IEntityFactory2 GetFactory(Type typeOfEntity) { return _factoryPerType.GetValue(typeOfEntity); }
/// Gets the factory of the entity with the Datalib.EntityType specified
/// The type of entity.
/// factory to use or null if not found
public static IEntityFactory2 GetFactory(Datalib.EntityType typeOfEntity)
{
switch(typeOfEntity)
{
case Datalib.EntityType.TblFieldEntity:
return new TblFieldEntityFactory();
case Datalib.EntityType.TblQuestionEntity:
return new TblQuestionEntityFactory();
case Datalib.EntityType.TblQuizEntity:
return new TblQuizEntityFactory();
case Datalib.EntityType.TblQuizQuestionEntity:
return new TblQuizQuestionEntityFactory();
case Datalib.EntityType.TblQuizTemplateEntity:
return new TblQuizTemplateEntityFactory();
case Datalib.EntityType.TblQuizTemplateDetailEntity:
return new TblQuizTemplateDetailEntityFactory();
case Datalib.EntityType.TblSubjectEntity:
return new TblSubjectEntityFactory();
case Datalib.EntityType.TblTrainingTypeEntity:
return new TblTrainingTypeEntityFactory();
default:
return null;
}
}
}
/// Element creator for creating project elements from somewhere else, like inside Linq providers.
public class ElementCreator : ElementCreatorBase, IElementCreator2
{
/// Gets the factory of the Entity type with the Datalib.EntityType value passed in
/// The entity type value.
/// the entity factory of the entity type or null if not found
public IEntityFactory2 GetFactory(int entityTypeValue) { return (IEntityFactory2)this.GetFactoryImpl(entityTypeValue); }
/// Gets the factory of the Entity type with the .NET type passed in
/// The type of entity.
/// the entity factory of the entity type or null if not found
public IEntityFactory2 GetFactory(Type typeOfEntity) { return (IEntityFactory2)this.GetFactoryImpl(typeOfEntity); }
/// Creates a new resultset fields object with the number of field slots reserved as specified
/// The number of fields.
/// ready to use resultsetfields object
public IEntityFields2 CreateResultsetFields(int numberOfFields) { return new ResultsetFields(numberOfFields); }
///
public override IInheritanceInfoProvider ObtainInheritanceInfoProviderInstance() { return ModelInfoProviderSingleton.GetInstance(); }
///
public override IDynamicRelation CreateDynamicRelation(DerivedTableDefinition leftOperand) { return new DynamicRelation(leftOperand); }
///
public override IDynamicRelation CreateDynamicRelation(DerivedTableDefinition leftOperand, JoinHint joinType, DerivedTableDefinition rightOperand, IPredicate onClause)
{
return new DynamicRelation(leftOperand, joinType, rightOperand, onClause);
}
///
public override IDynamicRelation CreateDynamicRelation(IEntityFieldCore leftOperand, JoinHint joinType, DerivedTableDefinition rightOperand, string aliasLeftOperand, IPredicate onClause)
{
return new DynamicRelation(leftOperand, joinType, rightOperand, aliasLeftOperand, onClause);
}
///
public override IDynamicRelation CreateDynamicRelation(DerivedTableDefinition leftOperand, JoinHint joinType, string rightOperandEntityName, string aliasRightOperand, IPredicate onClause)
{
return new DynamicRelation(leftOperand, joinType, (Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), rightOperandEntityName, false), aliasRightOperand, onClause);
}
///
public override IDynamicRelation CreateDynamicRelation(string leftOperandEntityName, JoinHint joinType, string rightOperandEntityName, string aliasLeftOperand, string aliasRightOperand, IPredicate onClause)
{
return new DynamicRelation((Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), leftOperandEntityName, false), joinType, (Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), rightOperandEntityName, false), aliasLeftOperand, aliasRightOperand, onClause);
}
///
public override IDynamicRelation CreateDynamicRelation(IEntityFieldCore leftOperand, JoinHint joinType, string rightOperandEntityName, string aliasLeftOperand, string aliasRightOperand, IPredicate onClause)
{
return new DynamicRelation(leftOperand, joinType, (Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), rightOperandEntityName, false), aliasLeftOperand, aliasRightOperand, onClause);
}
///
protected override IEntityFactoryCore GetFactoryImpl(int entityTypeValue) { return EntityFactoryFactory.GetFactory((Datalib.EntityType)entityTypeValue); }
///
protected override IEntityFactoryCore GetFactoryImpl(Type typeOfEntity) { return EntityFactoryFactory.GetFactory(typeOfEntity); }
}
}