private static IEnumerable <Type> FindTypes(PetaPocoConventionScannerSettings scannerSettings) { if (scannerSettings.TheCallingAssembly) { scannerSettings.Assemblies.Add(FindTheCallingAssembly()); } var types = scannerSettings.Assemblies .SelectMany(x => x.GetExportedTypes()) .Where(x => scannerSettings.IncludeTypes.All(y => y.Invoke(x))) .Where(x => !x.IsNested && !typeof(PetaPocoMap <>).IsAssignableFrom(x) && !typeof(PetaPocoMappings).IsAssignableFrom(x)); return(types); }
private static PetaPocoConventionScannerSettings ProcessSettings(Action <IPetaPocoConventionScanner> scanner) { var defaultScannerSettings = new PetaPocoConventionScannerSettings { PrimaryKeysAutoIncremented = x => true, PrimaryKeysNamed = x => "ID", TablesNamed = x => x.Name, PropertiesNamed = x => x.Name, ResultPropertiesWhere = x => false, VersionPropertiesWhere = x => false, SequencesNamed = x => null, Lazy = false }; scanner.Invoke(new PetaPocoConventionScanner(defaultScannerSettings)); return(defaultScannerSettings); }
private static PetaPocoMappings CreateMappings(PetaPocoConventionScannerSettings scannerSettings, Type[] typesOverride) { var types = typesOverride ?? FindTypes(scannerSettings); var config = new Dictionary <Type, PetaPocoTypeDefinition>(); foreach (var type in types) { var petaPocoDefn = new PetaPocoTypeDefinition(type) { AutoIncrement = scannerSettings.PrimaryKeysAutoIncremented(type), PrimaryKey = scannerSettings.PrimaryKeysNamed(type), TableName = scannerSettings.TablesNamed(type), SequenceName = scannerSettings.SequencesNamed(type), }; foreach (var prop in type.GetProperties()) { var column = new PetaPocoColumnDefinition(); column.PropertyInfo = prop; column.DbColumnName = scannerSettings.PropertiesNamed(prop); column.IgnoreColumn = scannerSettings.IgnorePropertiesWhere.Any(x => x.Invoke(prop)); column.ResultColumn = scannerSettings.ResultPropertiesWhere(prop); column.VersionColumn = scannerSettings.VersionPropertiesWhere(prop); petaPocoDefn.ColumnConfiguration.Add(prop.Name, column); } config.Add(type, petaPocoDefn); } MergeOverrides(config, scannerSettings.MappingOverrides); var petaPocoMappings = new PetaPocoMappings { Config = config }; SetFactory(petaPocoMappings, null); return(petaPocoMappings); }
public PropertyBuilderConventions(PetaPocoConventionScannerSettings scannerSettings) { _scannerSettings = scannerSettings; }
public PetaPocoConventionScanner(PetaPocoConventionScannerSettings scannerSettings) { _scannerSettings = scannerSettings; }