public AutoModelBuilder(IEntityAutoConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } Configuration = configuration; Scope = new ScopeBuilder(this); }
/// <summary> /// Map classes from provided assemblies /// </summary> /// <param name="configuration">Configuration to use</param> /// <param name="assemblies">Assemblies to scan</param> /// <returns>AutoModelBuilder</returns> public AutoModelBuilder Using(IEntityAutoConfiguration configuration, params Assembly[] assemblies) => AddAndConfigureFrom(From.Assemblies(configuration, assemblies));
/// <summary> /// Map classes using provided type source /// </summary> /// <typeparam name="TSource">Type source to use</typeparam> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public AutoModelBuilder Using <TSource>(IEntityAutoConfiguration configuration) where TSource : ITypeSource => AddAndConfigureFrom(From.Source <TSource>(configuration));
/// <summary> /// Map classes using provided type source with supplied configuration /// </summary> /// <param name="source">Type source to use</param> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public AutoModelBuilder Using(ITypeSource source, IEntityAutoConfiguration configuration) => AddAndConfigureFrom(From.Source(source, configuration));
/// <summary> /// Map classes using the assembly containing the provided type /// </summary> /// <param name="type">Type contained in the required assembly</param> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public AutoModelBuilder UsingAssemblyOf(Type type, IEntityAutoConfiguration configuration) => AddAndConfigureFrom(From.Assembly(type.GetTypeInfo().Assembly, configuration));
/// <summary> /// Map classes using the assembly containing /// <typeparam name="T"></typeparam> /// with supplied configuration /// </summary> /// <typeparam name="T">Type contained in the required assembly</typeparam> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public AutoModelBuilder UsingAssemblyOf <T>(IEntityAutoConfiguration configuration) => AddAndConfigureFrom(From.AssemblyOf <T>(configuration));
public static AutoModelBuilder Alteration <TAlteration>(IEntityAutoConfiguration configuration) where TAlteration : IAutoModelBuilderAlteration => Empty().AddAlteration <TAlteration>();
public static AutoModelBuilder Alterations(IEnumerable <IAutoModelBuilderAlteration> alterations, IEntityAutoConfiguration configuration) => Empty(configuration).AddAlterations(alterations);
public static AutoModelBuilder Alteration(Type type, IEntityAutoConfiguration configuration) => Empty(configuration).AddAlteration(type);
/// <summary> /// Map classes from provided type source with supplied configuration /// </summary> /// <typeparam name="TSource">Type source to use</typeparam> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public static AutoModelBuilder Source <TSource>(IEntityAutoConfiguration configuration) where TSource : ITypeSource => new AutoModelBuilder(configuration).AddTypeSource <TSource>();
public static AutoModelBuilder Alteration(IAutoModelBuilderAlteration alteration, IEntityAutoConfiguration configuration) => Empty(configuration).AddAlteration(alteration);
/// <summary> /// Map classes from provided type source with supplied configuration /// </summary> /// <param name="source">Type source to use</param> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public static AutoModelBuilder Source(ITypeSource source, IEntityAutoConfiguration configuration) => new AutoModelBuilder(configuration).AddTypeSource(source);
/// <summary> /// Map classes based on all manual specifications with supplied configuration /// </summary> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public static AutoModelBuilder Empty(IEntityAutoConfiguration configuration) => new AutoModelBuilder(configuration);
/// <summary> /// Map classes from the assembly containing the provided type /// with supplied configuration /// </summary> /// <param name="type">Type contained in the required assembly</param> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public static AutoModelBuilder AssemblyOf(Type type, IEntityAutoConfiguration configuration) => Assembly(type.GetTypeInfo().Assembly, configuration);
/// <summary> /// Map classes from provided assembly with supplied configuration /// </summary> /// <param name="assembly">Assembly to scan</param> /// <param name="configuration">Configuration to use</param> /// <returns>AutoModelBuilder</returns> public static AutoModelBuilder Assembly(Assembly assembly, IEntityAutoConfiguration configuration) => Source(new AssemblyTypeSource(assembly), configuration);
/// <summary> /// Map classes from provided assemblies /// </summary> /// <param name="configuration">Configuration to use</param> /// <param name="assemblies">Assemblies to scan</param> /// <returns>AutoModelBuilder</returns> public static AutoModelBuilder Assemblies(IEntityAutoConfiguration configuration, IEnumerable <Assembly> assemblies) => Source(new CombinedAssemblyTypeSource(assemblies.Select(x => new AssemblyTypeSource(x))), configuration);