Skip to content

Commit 6abcccc

Browse files
author
Jani Giannoudis
committed
shared configuration: fixed parsing
updated version to 1.0.14
1 parent bd727fe commit 6abcccc

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

DbQuery/ParseUrlCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ private static void SetUserVariable(string variableName, string variableValue) =
2626
internal static void ShowHelp()
2727
{
2828
WriteTitleLine("- ParseUrl");
29-
Console.WriteLine(" Pars web url and store the result to an environment variable");
29+
Console.WriteLine(" Parse web Url and store the result to an environment variable");
3030
Console.WriteLine(" Arguments:");
3131
Console.WriteLine(" 1. variable name");
3232
Console.WriteLine(" 2. Url with support for shared config variables");

DbQuery/Properties/launchSettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"profiles": {
33
"DbQuery": {
44
"commandName": "Project",
5-
"commandLineArgs": "TestServer /noCatalog",
5+
"commandLineArgs": "ParseUrl backendServerUrl $BackendUrl$:$BackendPort$/",
66
"workingDirectory": "C:\\Shared\\PayrollEngine\\Setup"
77
}
88
}

DbQuery/SharedConfiguration.cs

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

Directory.Build.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
<PropertyGroup>
44
<TargetFramework>net7.0</TargetFramework>
5-
<Version>1.0.13</Version>
6-
<FileVersion>1.0.13</FileVersion>
7-
<InformationalVersion>1.0.13</InformationalVersion>
5+
<Version>1.0.14</Version>
6+
<FileVersion>1.0.14</FileVersion>
7+
<InformationalVersion>1.0.14</InformationalVersion>
88
<Authors>Jani Giannoudis</Authors>
99
<Company>Software Consulting Giannoudis</Company>
1010
<Copyright>2023 Software Consulting Giannoudis</Copyright>

0 commit comments

Comments
 (0)