private string MapUserIdentity(
            FieldMap fieldMap,
            SourceSideTypeEnum fromSide,
            string srcFieldRefName,
            string tgtFieldRefName,
            string srcFieldValue)
        {
            RichIdentity srcUserId = new RichIdentity();

            UserIdFieldElement userIdField = fieldMap.GetUserIdField(fromSide, srcFieldRefName);

            srcUserId[userIdField.UserIdPropertyName] = srcFieldValue;

            RichIdentity mappedUserId;

            if (UserIdLookupService.TryLookup(srcUserId, m_contexts[fromSide], out mappedUserId))
            {
                SourceSideTypeEnum toSide       = (fromSide == SourceSideTypeEnum.Left) ? SourceSideTypeEnum.Right : SourceSideTypeEnum.Left;
                UserIdFieldElement tgtUserField = fieldMap.GetUserIdField(toSide, tgtFieldRefName);
                if (null != tgtUserField)
                {
                    return(mappedUserId[tgtUserField.UserIdPropertyName]);
                }
                else
                {
                    return(srcFieldValue);
                }
            }
            else
            {
                return(srcFieldValue);
            }
        }