private bool LookupUserIdOnOneSide(RichIdentity userIdentity, IdentityLookupContext context, Guid ownerMigrationSourceId)
        {
            if (!m_lookupConfiguration.LookupIsEnabled)
            {
                return(true);
            }

            bool lookupSucceeded = false;

            Guid[] applicableProviderRefNames;
            lookupSucceeded = m_lookupConfiguration.TryGetConfiguredProviders(ownerMigrationSourceId, out applicableProviderRefNames);

            if (lookupSucceeded)
            {
                if (applicableProviderRefNames.Length == 0)
                {
                    // no specific set of lookup service providers is configured to be used for the subject Migration Source
                    // we default to use all of them
                    applicableProviderRefNames = m_lookupProviderRegistry.GetAllProviderReferenceNames();
                }

                foreach (Guid providerRefName in applicableProviderRefNames)
                {
                    IUserIdentityLookupServiceProvider provider = m_lookupProviderRegistry.GetProvider(providerRefName);
                    if (null != provider)
                    {
                        lookupSucceeded = provider.TryLookup(userIdentity, context);
                        if (lookupSucceeded)
                        {
                            break;
                        }
                    }
                    else
                    {
                        TraceManager.TraceWarning("Warning: cannot find User Id Lookup Service Provider (Reference name: '{0}')",
                                                  providerRefName.ToString());
                    }
                }
            }

            return(lookupSucceeded);
        }