Beispiel #1
0
        private void GenerateDeltaForForceSync(
            IForceSyncItemService forceSyncItemService,
            IForceSyncAnalysisProvider forceSyncAnalysisProvider)
        {
            int           batchSize        = 100;
            List <string> forceSyncItemIds = new List <string>();

            foreach (string forceSyncItemId in forceSyncItemService.GetItemsForForceSync())
            {
                TraceManager.TraceInformation(String.Format(CultureInfo.InvariantCulture,
                                                            "Will attempt to force sync work item {0} from migration source {1}",
                                                            forceSyncItemId, forceSyncItemService.MigrationSourceid));

                forceSyncItemIds.Add(forceSyncItemId);
                if (forceSyncItemIds.Count == batchSize)
                {
                    forceSyncAnalysisProvider.GenerateDeltaForForceSync(forceSyncItemIds);
                    forceSyncItemIds.Clear();
                }
            }
            if (forceSyncItemIds.Count > 0)
            {
                forceSyncAnalysisProvider.GenerateDeltaForForceSync(forceSyncItemIds);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Generate delta table
        /// </summary>
        internal void GenerateDeltaTables(Guid sourceId)
        {
            Debug.Assert(m_serviceContainers.ContainsKey(sourceId),
                         string.Format(MigrationToolkitResources.UnknownSourceId, sourceId));

            IAnalysisProvider analysisProvider;

            if (!m_analysisProviders.TryGetValue(sourceId, out analysisProvider))
            {
                throw new MigrationException(string.Format(
                                                 MigrationToolkitResources.Culture,
                                                 MigrationToolkitResources.UnknownSourceId,
                                                 sourceId));
            }

            try
            {
                ChangeGroupService cgService =
                    m_serviceContainers[sourceId].GetService(typeof(ChangeGroupService)) as ChangeGroupService;
                Debug.Assert(null != cgService, "Change group service is not properly initialized");
                cgService.RemoveIncompleteChangeGroups();

                analysisProvider.GenerateDeltaTable();
            }
            catch (MigrationUnresolvedConflictException)
            {
                // We have already created an unresolved conflict, just return.
                return;
            }
            catch (Exception e)
            {
                ConflictManager manager = m_serviceContainers[sourceId].GetService(typeof(ConflictManager)) as ConflictManager;
                ErrorManager.TryHandleException(e, manager);
            }

            IForceSyncAnalysisProvider forceSyncAnalysisProvider = analysisProvider as IForceSyncAnalysisProvider;

            if (forceSyncAnalysisProvider != null)
            {
                IForceSyncItemService forceSyncItemService = m_serviceContainers[sourceId].GetService(typeof(IForceSyncItemService)) as IForceSyncItemService;
                if (forceSyncItemService == null)
                {
                    Debug.Fail("ForceSyncItemService not found");
                }
                else
                {
                    GenerateDeltaForForceSync(forceSyncItemService, forceSyncAnalysisProvider);
                }
            }
        }