From 35f26f6688b727174749cfaf00b6b32a8f6115b9 Mon Sep 17 00:00:00 2001 From: James Kolpack Date: Mon, 14 Sep 2015 10:06:31 -0400 Subject: [PATCH] Name Normalizer handles suffixes with periods --- Web.Tests/Utility/NameNormalizerTests.cs | 9 ++++++++- Web/Utility/NameNormalizer.cs | 9 +++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Web.Tests/Utility/NameNormalizerTests.cs b/Web.Tests/Utility/NameNormalizerTests.cs index e396aa5..aaab953 100644 --- a/Web.Tests/Utility/NameNormalizerTests.cs +++ b/Web.Tests/Utility/NameNormalizerTests.cs @@ -24,7 +24,14 @@ namespace Web.Tests.Utility public void Normalize_Suffix() { var normalized = NameNormalizer.Normalize("Dobalina, Bob JR"); - Assert.That(normalized, Is.EqualTo("Bob Dobalina JR")); + Assert.That(normalized, Is.EqualTo("Bob Dobalina JR.")); + } + + [Test] + public void Normalize_Suffix_With_Period() + { + var normalized = NameNormalizer.Normalize("Dobalina, Bob JR."); + Assert.That(normalized, Is.EqualTo("Bob Dobalina JR.")); } } } diff --git a/Web/Utility/NameNormalizer.cs b/Web/Utility/NameNormalizer.cs index d8ef314..81af6be 100644 --- a/Web/Utility/NameNormalizer.cs +++ b/Web/Utility/NameNormalizer.cs @@ -12,8 +12,13 @@ namespace MileageTraker.Web.Utility var match = NameRegex.Match(name); if (!match.Success) return name; - return string.Format("{0} {1} {2}", - match.Groups["First"], match.Groups["Last"], match.Groups["Suffix"]).TrimEnd(); + var normalizedName = string.Format("{0} {1}", match.Groups["First"], match.Groups["Last"]); + if (match.Groups["Suffix"].Success) + { + var suffix = match.Groups["Suffix"].Value; + normalizedName = string.Format("{0} {1}.", normalizedName, suffix); + } + return normalizedName.TrimEnd(); } } } \ No newline at end of file