From 89d326b9b02c919652bf432114c29f84c2f5440f Mon Sep 17 00:00:00 2001 From: Vlad Kirienko Date: Thu, 14 Mar 2024 21:57:17 -0400 Subject: [PATCH] Try to match source name on different display name variations when migrating Capacities --- .../Processors/TfsTeamSettingsProcessor.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/MigrationTools.Clients.AzureDevops.ObjectModel/Processors/TfsTeamSettingsProcessor.cs b/src/MigrationTools.Clients.AzureDevops.ObjectModel/Processors/TfsTeamSettingsProcessor.cs index 98d8fa5f3..48e338395 100644 --- a/src/MigrationTools.Clients.AzureDevops.ObjectModel/Processors/TfsTeamSettingsProcessor.cs +++ b/src/MigrationTools.Clients.AzureDevops.ObjectModel/Processors/TfsTeamSettingsProcessor.cs @@ -296,7 +296,33 @@ private void MigrateCapacities(WorkHttpClient sourceHttpClient, WorkHttpClient t sourceDisplayName = sourceDisplayName.Substring(0, index).Trim(); } + // Match: + // "Doe, John" to "Doe, John" + // "John Doe" to "John Doe" var targetTeamFoundatationIdentity = _targetTeamFoundationIdentitiesLazyCache.Value.FirstOrDefault(i => i.DisplayName == sourceDisplayName); + if (targetTeamFoundatationIdentity == null) + { + if (sourceDisplayName.Contains(", ")) + { + // Match: + // "Doe, John" to "John Doe" + var splitName = sourceDisplayName.Split(','); + sourceDisplayName = $"{splitName[1].Trim()} {splitName[0].Trim()}"; + targetTeamFoundatationIdentity = _targetTeamFoundationIdentitiesLazyCache.Value.FirstOrDefault(i => i.DisplayName == sourceDisplayName); + } + else + { + if (sourceDisplayName.Contains(' ')) + { + // Match: + // "John Doe" to "Doe, John" + var splitName = sourceDisplayName.Split(' '); + sourceDisplayName = $"{splitName[1].Trim()}, {splitName[0].Trim()}"; + targetTeamFoundatationIdentity = _targetTeamFoundationIdentitiesLazyCache.Value.FirstOrDefault(i => i.DisplayName == sourceDisplayName); + } + } + } + if (targetTeamFoundatationIdentity != null) { targetCapacities.Add(new TeamMemberCapacityIdentityRef