From 5ad732ef3926b5c541857e98ba79ef957865433a Mon Sep 17 00:00:00 2001 From: "Martin Hinshelwood nkdAgility.com" Date: Tue, 12 Mar 2024 21:45:38 +0000 Subject: [PATCH] Delayed Get Service for Security on the UserMappign Enricher. --- .../TfsUserMappingEnricher.cs | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/MigrationTools.Clients.AzureDevops.ObjectModel/ProcessorEnrichers/TfsUserMappingEnricher.cs b/src/MigrationTools.Clients.AzureDevops.ObjectModel/ProcessorEnrichers/TfsUserMappingEnricher.cs index 3cab3a638..21442ee58 100644 --- a/src/MigrationTools.Clients.AzureDevops.ObjectModel/ProcessorEnrichers/TfsUserMappingEnricher.cs +++ b/src/MigrationTools.Clients.AzureDevops.ObjectModel/ProcessorEnrichers/TfsUserMappingEnricher.cs @@ -25,13 +25,32 @@ public class TfsUserMappingEnricher : WorkItemProcessorEnricher IGroupSecurityService _gssSourse; private IGroupSecurityService _gssTarget; + private IGroupSecurityService GssSource + { get { + if (_gssSourse == null) + { + _gssSourse = Engine.Source.GetService(); + } + return _gssSourse; + } } + + private IGroupSecurityService GssTarget + { + get + { + if (_gssTarget == null) + { + _gssTarget = Engine.Target.GetService(); + } + return _gssTarget; + } + } + public TfsUserMappingEnricherOptions Options { get; private set; } public TfsUserMappingEnricher(IServiceProvider services, ILogger logger) : base(services, logger) { Engine = services.GetRequiredService(); - _gssSourse = Engine.Source.GetService(); - _gssTarget = Engine.Target.GetService(); } public override void Configure(IProcessorEnricherOptions options) @@ -154,9 +173,9 @@ public List GetUsersInSourceMappedToTarget() Log.LogDebug("TfsUserMappingEnricher::GetUsersInSourceMappedToTarget"); if (Options.Enabled) { - var sourceUsers = GetUsersListFromServer(_gssSourse); + var sourceUsers = GetUsersListFromServer(GssSource); Log.LogDebug($"TfsUserMappingEnricher::GetUsersInSourceMappedToTarget [SourceUsersCount|{sourceUsers.Count}]"); - var targetUsers = GetUsersListFromServer(_gssTarget); + var targetUsers = GetUsersListFromServer(GssTarget); Log.LogDebug($"TfsUserMappingEnricher::GetUsersInSourceMappedToTarget [targetUsersCount|{targetUsers.Count}]"); return sourceUsers.Select(sUser => new IdentityMapData { Source = sUser, target = targetUsers.SingleOrDefault(tUser => tUser.FriendlyName == sUser.FriendlyName) }).ToList(); }