Skip to content

Commit 3efb148

Browse files
committed
fix string extensions
1 parent 688fc9d commit 3efb148

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

JsonApiDotNetCore/Extensions/StringExtensions.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,19 @@ public static string ToProperCase(this string str)
2121
var chars = str.ToCharArray();
2222
if (chars.Length > 0)
2323
{
24-
chars[0] = new string(chars[0], 1).ToUpper().ToCharArray()[0];
25-
return new String(chars);
24+
chars[0] = char.ToUpper(chars[0]);
25+
var builder = new StringBuilder();
26+
for(var i = 0; i < chars.Length; i++)
27+
{
28+
if((chars[i]) == '-') {
29+
i = i + 1;
30+
builder.Append(char.ToUpper(chars[i]));
31+
}
32+
else {
33+
builder.Append(chars[i]);
34+
}
35+
}
36+
return builder.ToString();
2637
}
2738
return str;
2839
}

JsonApiDotNetCoreTests/Extensions/UnitTests/StringExtensionsTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void ToCamelCase_ConvertsString_ToCamelCase(string input, string expected
1919

2020
[Theory]
2121
[InlineData("todoItem", "TodoItem")]
22+
[InlineData("todo-items", "TodoItems")]
2223
public void ToProperCase_ConvertsString_ToProperCase(string input, string expectedOutput)
2324
{
2425
// arrange

0 commit comments

Comments
 (0)