@@ -21,15 +21,29 @@ internal static async Task<string> ParseAsync(string expression)
2121 var sharedConfiguration = await ReadAsync ( ) ;
2222 foreach ( var config in sharedConfiguration )
2323 {
24- var variable = $ "${ config . Key } $";
24+ var key = config . Key ;
25+ var variable = $ "${ key } $";
2526 if ( expression . Contains ( variable ) )
2627 {
2728 expression = expression . Replace ( variable , config . Value ) ;
2829 }
30+ else
31+ {
32+ // alternative key
33+ key = char . IsUpper ( key [ 0 ] ) ? key . FirstCharacterToLower ( ) : key . FirstCharacterToUpper ( ) ;
34+ variable = $ "${ key } $";
35+ if ( expression . Contains ( variable ) )
36+ {
37+ expression = expression . Replace ( variable , config . Value ) ;
38+ }
39+ }
2940 }
3041 return expression ;
3142 }
3243
44+ /// <summary>
45+ /// Get the shared configuration
46+ /// </summary>
3347 internal static async Task < Dictionary < string , string > > ReadAsync ( )
3448 {
3549 var sharedConfigFileName = Environment . GetEnvironmentVariable ( SharedConfigurationVariable ) ;
@@ -51,7 +65,7 @@ internal static async Task<Dictionary<string, string>> ReadAsync()
5165 /// <summary>
5266 /// Get shared configuration value
5367 /// </summary>
54- public static string GetSharedValue ( Dictionary < string , string > sharedConfiguration , string name )
68+ internal static string GetSharedValue ( Dictionary < string , string > sharedConfiguration , string name )
5569 {
5670 // primary name
5771 if ( sharedConfiguration . TryGetValue ( name , out var value ) )
@@ -60,7 +74,7 @@ public static string GetSharedValue(Dictionary<string, string> sharedConfigurati
6074 }
6175
6276 // alternative name
63- name = name . FirstCharacterToLower ( ) ;
77+ name = char . IsUpper ( name [ 0 ] ) ? name . FirstCharacterToLower ( ) : name . FirstCharacterToUpper ( ) ;
6478 if ( sharedConfiguration . TryGetValue ( name , out value ) )
6579 {
6680 return value ;
@@ -72,5 +86,11 @@ public static string GetSharedValue(Dictionary<string, string> sharedConfigurati
7286 // copy from Core StringExtensions
7387 private static string FirstCharacterToLower ( this string value ) =>
7488 char . ToLowerInvariant ( value [ 0 ] ) + value . Substring ( 1 ) ;
89+
90+ /// <summary>Ensures first string character is upper</summary>
91+ /// <param name="value">The string value</param>
92+ /// <returns>String starting uppercase</returns>
93+ private static string FirstCharacterToUpper ( this string value ) =>
94+ value [ 0 ] . ToString ( ) . ToUpper ( ) + value . Substring ( 1 ) ;
7595 }
7696}
0 commit comments