@@ -8,11 +8,12 @@ namespace J4JSoftware.J4JMapLibrary;
88public class ProjectionFactory
99{
1010 private readonly IConfiguration _config ;
11+ private readonly List < Assembly > _assemblies = new ( ) ;
12+ private readonly List < ProjectionTypeInfo > _projTypes = new ( ) ;
1113 private readonly List < CredentialsTypeInfo > _credTypes = new ( ) ;
1214 private readonly bool _includeDefaults ;
1315 private readonly ILogger ? _logger ;
1416 private readonly ILoggerFactory ? _loggerFactory ;
15- private readonly List < ProjectionTypeInfo > _projTypes = new ( ) ;
1617
1718 public ProjectionFactory (
1819 IConfiguration config ,
@@ -28,22 +29,27 @@ public ProjectionFactory(
2829 _includeDefaults = includeDefaults ;
2930 }
3031
31- public void ScanAssemblies ( params Type [ ] types ) =>
32+ public ProjectionFactory ScanAssemblies ( params Type [ ] types ) =>
3233 ScanAssemblies ( types . Distinct ( ) . Select ( t => t . Assembly ) . ToArray ( ) ) ;
3334
34- public void ScanAssemblies ( ) => ScanAssemblies ( Enumerable . Empty < Assembly > ( ) . ToArray ( ) ) ;
35+ public ProjectionFactory ScanAssemblies ( ) => ScanAssemblies ( Enumerable . Empty < Assembly > ( ) . ToArray ( ) ) ;
36+ public ProjectionFactory ScanAssemblies ( params Assembly [ ] assemblies )
37+ {
38+ _assemblies . AddRange ( assemblies ) ;
39+ return this ;
40+ }
3541
36- public void ScanAssemblies ( params Assembly [ ] assemblies )
42+ public bool InitializeFactory ( )
3743 {
38- var toScan = assemblies . ToList ( ) ;
44+ if ( _includeDefaults )
45+ _assemblies . Add ( typeof ( ProjectionFactory ) . Assembly ) ;
3946
40- if ( _includeDefaults )
41- toScan . Add ( typeof ( ProjectionFactory ) . Assembly ) ;
47+ var toScan = _assemblies . Distinct ( ) . ToList ( ) ;
4248
43- toScan = toScan . Distinct ( ) . ToList ( ) ;
49+ ProcessProjectionTypes ( toScan ) ;
50+ ProcessCredentialTypes ( toScan ) ;
4451
45- ProcessProjectionTypes ( toScan ) ;
46- ProcessCredentialTypes ( toScan ) ;
52+ return _projTypes . Any ( ) ;
4753 }
4854
4955 private void ProcessProjectionTypes ( List < Assembly > toScan )
0 commit comments