public bool TryGetChangeActionHandler(Guid changeActionId, string contentTypeRefName, out ChangeActionHandler changeActionHandler)
        {
            changeActionHandler = null;

            if (changeActionId.Equals(Guid.Empty) || string.IsNullOrEmpty(contentTypeRefName))
            {
                return(false);
            }

            if (m_changeActions.ContainsKey(changeActionId) &&
                m_changeActions[changeActionId].ContainsKey(contentTypeRefName))
            {
                changeActionHandler = m_changeActions[changeActionId][contentTypeRefName];
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Register an action with ChangeActionRegistrationService
        /// </summary>
        /// <param name="changeActionId">Guid representing the requested change action</param>
        /// <param name="contentTypeRefName">String containing the reference name for the content type</param>
        /// <param name="changeActionHandler">ChangeActionHandler used to handle the specified ChangeActionId and ContentType</param>
        /// <seealso cref="Microsoft.TeamFoundation.Migration.Toolkit.Services.WellKnownChangeActionId"/>
        /// <seealso cref="Microsoft.TeamFoundation.Migration.Toolkit.Services.WellKnownContentType"/>
        public void RegisterChangeAction(Guid changeActionId, string contentTypeRefName, ChangeActionHandler changeActionHandler)
        {
            if (changeActionId.Equals(Guid.Empty))
            {
                throw new ArgumentException("changeActionId");
            }

            if (string.IsNullOrEmpty(contentTypeRefName))
            {
                throw new ArgumentNullException("contentTypeRefName");
            }

            if (m_changeActions.ContainsKey(changeActionId))
            {
                Debug.Assert(null != m_changeActions[changeActionId]);
                if (m_changeActions[changeActionId].ContainsKey(contentTypeRefName))
                {
                    m_changeActions[changeActionId].Remove(contentTypeRefName);
                }
            }
            else
            {
                m_changeActions.Add(changeActionId, new Dictionary <string, ChangeActionHandler>());
            }
            m_changeActions[changeActionId].Add(contentTypeRefName, changeActionHandler);
        }