@@ -5,27 +5,41 @@ namespace BuslyCLI.Config;
55
66public interface INServiceBusConfiguration
77{
8- Task < NServiceBusConfig > GetConfigurationAsync ( string path ) ;
8+ Task < NServiceBusConfig > GetValidatedConfigurationAsync ( string path ) ;
9+
10+ Task < NServiceBusConfig > GetUnValidatedConfigurationAsync ( string path ) ;
911
1012 Task PersistConfiguration ( string path , NServiceBusConfig config ) ;
1113}
1214
1315public class NServiceBusConfiguration ( IDeserializer yamlDeserializer , ISerializer yamlSerializer , IValidator < NServiceBusConfig > validator ) : INServiceBusConfiguration
1416{
1517
16- public async Task < NServiceBusConfig > GetConfigurationAsync ( string path )
18+
19+ private async Task < NServiceBusConfig > LoadConfigurationAsync (
20+ string path ,
21+ bool validate )
1722 {
18- if ( File . Exists ( path ) )
19- {
20- var yaml = await File . ReadAllTextAsync ( path ) ;
21- var config = yamlDeserializer . Deserialize < NServiceBusConfig > ( yaml ) ;
23+ if ( ! File . Exists ( path ) ) return null ;
24+
25+ var yaml = await File . ReadAllTextAsync ( path ) ;
26+ var config = yamlDeserializer . Deserialize < NServiceBusConfig > ( yaml ) ;
27+
28+ // config is null if yaml file is empty
29+ if ( config is null ) return null ;
30+
31+ if ( validate )
2232 await validator . ValidateAsync ( config , opts => opts . ThrowOnFailures ( ) ) ;
23- return yamlDeserializer . Deserialize < NServiceBusConfig > ( yaml ) ;
24- }
2533
26- return null ;
34+ return config ;
2735 }
2836
37+ public async Task < NServiceBusConfig > GetValidatedConfigurationAsync ( string path )
38+ => await LoadConfigurationAsync ( path , validate : true ) ;
39+
40+ public async Task < NServiceBusConfig > GetUnValidatedConfigurationAsync ( string path )
41+ => await LoadConfigurationAsync ( path , validate : false ) ;
42+
2943 public async Task PersistConfiguration ( string path , NServiceBusConfig config )
3044 {
3145 var yaml = yamlSerializer . Serialize ( config ) ;
0 commit comments