public void MoveMailboxes(BandMailboxRebalanceData rebalanceData) { IList <Guid> nonMovableOrgsList = LoadBalanceUtils.GetNonMovableOrgsList(this.serviceContext.Settings); MailboxRebalanceRequest request = new MailboxRebalanceRequest(rebalanceData, this.serviceContext, nonMovableOrgsList); this.serviceContext.QueueManager.GetProcessingQueue(rebalanceData.SourceDatabase).EnqueueRequest(request); }
public void InjectMoves(Guid targetDatabase, BatchName batchName, IList <LoadEntity> loadEntityList, bool throwIfNotValid = false) { this.logger.Log(MigrationEventType.Information, "Injecting {0} moves into database '{1}' with batch name '{2}'.", new object[] { loadEntityList.Count, targetDatabase, batchName }); TopologyExtractorFactoryContextPool topologyExtractorFactoryContextPool = this.serviceContext.TopologyExtractorFactoryContextPool; IList <Guid> nonMovableOrgsList = LoadBalanceUtils.GetNonMovableOrgsList(this.settings); TopologyExtractorFactoryContext context = topologyExtractorFactoryContextPool.GetContext(this.clientFactory, null, nonMovableOrgsList, this.logger); TopologyExtractorFactory entitySelectorFactory = context.GetEntitySelectorFactory(); LoadContainer database = entitySelectorFactory.GetExtractor(this.directoryProvider.GetDatabase(targetDatabase)).ExtractTopology(); this.InjectMoves(database, batchName, loadEntityList, throwIfNotValid); }