Esempio n. 1
0
        private TopologyExtractorFactory GetExtractorFactory()
        {
            TopologyExtractorFactoryContext topologyExtractorFactoryContext = this.context.TopologyExtractorFactoryContextPool.GetContext(this.context.ClientFactory, this.Bands, Array <Guid> .Empty, base.Logger);

            if (!base.Arguments.Verbose)
            {
                return(topologyExtractorFactoryContext.GetLoadBalancingCentralFactory());
            }
            return(topologyExtractorFactoryContext.GetEntitySelectorFactory());
        }
Esempio n. 2
0
        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);
        }
        public LoadContainer GetDatabaseData(Guid databaseGuid, bool includeMailboxes)
        {
            TopologyExtractorFactoryContext topologyExtractorFactoryContext = this.serviceContext.GetTopologyExtractorFactoryContext();
            TopologyExtractorFactory        topologyExtractorFactory        = includeMailboxes ? topologyExtractorFactoryContext.GetEntitySelectorFactory() : topologyExtractorFactoryContext.GetLoadBalancingLocalFactory(false);
            DirectoryDatabase database = this.serviceContext.Directory.GetDatabase(databaseGuid);

            return(topologyExtractorFactory.GetExtractor(database).ExtractTopology());
        }