11using System . Collections . Generic ;
2- using System . Reflection ;
32using Simplify . DI ;
43using Simplify . Web . Modules ;
54using Simplify . Web . Postman . Json ;
65using Simplify . Web . Postman . PartBuilders ;
6+ using Simplify . Web . Postman . Settings ;
77
88namespace Simplify . Web . Postman
99{
@@ -18,20 +18,44 @@ public static class SimplifyDIRegistratorExtensions
1818 /// <param name="registrator">The registrator.</param>
1919 /// <param name="settings">The settings.</param>
2020 /// <returns></returns>
21- public static IDIRegistrator RegisterSimplifyWebPostman ( this IDIRegistrator registrator , PostmanGenerationSettings ? settings = null )
21+ public static IDIRegistrator RegisterSimplifyWebPostman ( this IDIRegistrator registrator , IPostmanGenerationSettings ? settings = null )
2222 {
23- settings = DefaultPostmanGenerationSettingsFactory . CreateOrUpdateSettings ( settings , Assembly . GetCallingAssembly ( ) . GetName ( ) . Name ) ;
24-
25- registrator . Register ( r => new CollectionBuilder ( new List < ICollectionPartBuilder >
26- {
27- new CollectionItemsBuilder ( )
28- } ) )
29- . Register < ICollectionExporter > ( r => new FileCollectionExporter ( r . Resolve < CollectionModelSerializer > ( ) , r . Resolve < IEnvironment > ( ) ,
30- settings ) )
31- . Register < CollectionModelSerializer > ( )
23+ registrator . Register ( r => settings ??= new PostmanGenerationSettings ( ) , LifetimeType . Singleton ) ;
24+
25+ registrator . RegisterPartBuilders ( )
26+ . RegisterCollectionBuilder ( )
27+ . RegisterCollectionExporter ( ) ;
28+
29+ registrator . Register < CollectionModelSerializer > ( )
3230 . Register < PostmanGenerator > ( ) ;
3331
3432 return registrator ;
3533 }
34+
35+ private static IDIRegistrator RegisterPartBuilders ( this IDIRegistrator registrator )
36+ {
37+ registrator . Register < CollectionHeaderBuilder > ( LifetimeType . Singleton )
38+ . Register < CollectionItemsBuilder > ( LifetimeType . Singleton ) ;
39+
40+ return registrator ;
41+ }
42+
43+ private static IDIRegistrator RegisterCollectionBuilder ( this IDIRegistrator registrator )
44+ {
45+ return registrator . Register ( r => new CollectionBuilder ( new List < ICollectionPartBuilder >
46+ {
47+ r . Resolve < CollectionHeaderBuilder > ( ) ,
48+ r . Resolve < CollectionItemsBuilder > ( )
49+ } ) ) ;
50+ }
51+
52+ private static IDIRegistrator RegisterCollectionExporter ( this IDIRegistrator registrator )
53+ {
54+ return registrator . Register < ICollectionExporter > ( r =>
55+ new FileCollectionExporter ( r . Resolve < CollectionModelSerializer > ( ) ,
56+ r . Resolve < IEnvironment > ( ) ,
57+ r . Resolve < IPostmanGenerationSettings > ( ) ) ,
58+ LifetimeType . Singleton ) ;
59+ }
3660 }
3761}
0 commit comments