internal WITTranslationService(
            Session session,
            UserIdentityLookupService userIdLookupService)
            : base(session, userIdLookupService)
        {
            UserIdLookupService = userIdLookupService;

            Guid leftMigrationSourceId  = new Guid(m_session.LeftMigrationSourceUniqueId);
            Guid rightMigrationSourceId = new Guid(m_session.RightMigrationSourceUniqueId);

            m_contexts.Add(SourceSideTypeEnum.Left, new IdentityLookupContext(leftMigrationSourceId, rightMigrationSourceId));
            m_contexts.Add(SourceSideTypeEnum.Right, new IdentityLookupContext(rightMigrationSourceId, leftMigrationSourceId));
        }
        internal VCTranslationService(
            Session session,
            Guid leftMigrationSourceId,
            Guid rightMigrationSourceId,
            IProvider leftProvider,
            IProvider rightProvider,
            UserIdentityLookupService userIdLookupService)
            : base(session, userIdLookupService)
        {
            IServerPathTranslationService leftPathTranslationService =
                leftProvider.GetService(typeof(IServerPathTranslationService)) as IServerPathTranslationService;

            if (null == leftPathTranslationService)
            {
                TraceManager.TraceWarning(MigrationToolkitResources.ErrorMissingVCPathTranslationService,
                                          leftMigrationSourceId.ToString());

                // default to UnixStyle Server Path translation service
                leftPathTranslationService = new UnixStyleServerPathTranslationService();
            }
            leftPathTranslationService.Initialize(session.Filters[leftMigrationSourceId]);

            IServerPathTranslationService rightPathTranslationService =
                rightProvider.GetService(typeof(IServerPathTranslationService)) as IServerPathTranslationService;

            if (null == rightPathTranslationService)
            {
                TraceManager.TraceWarning(MigrationToolkitResources.ErrorMissingVCPathTranslationService,
                                          rightMigrationSourceId.ToString());

                // default to UnixStyle Server Path translation service
                rightPathTranslationService = new UnixStyleServerPathTranslationService();
            }
            rightPathTranslationService.Initialize(session.Filters[rightMigrationSourceId]);

            m_serverPathTranslationService = new VCServerPathTranslationService(leftMigrationSourceId,
                                                                                leftPathTranslationService,
                                                                                rightMigrationSourceId,
                                                                                rightPathTranslationService,
                                                                                m_session.Filters.FilterPair);

            m_migratinSourcePair.Add(leftMigrationSourceId, rightMigrationSourceId);
            m_migratinSourcePair.Add(rightMigrationSourceId, leftMigrationSourceId);
        }