private static bool TryInitialize(ConfigElementList <SearchIndexStartupElement> indexes, out WarmupParameters parameters)
        {
            parameters = null;

            if (!(indexes?.Count > 0))
            {
                return(false);
            }

            var publishingManager = PublishingManager.GetManager(PublishingConfig.SearchProviderName);

            if (publishingManager == null)
            {
                return(false);
            }

            var searchService = ServiceBus.ResolveService <ISearchService>();

            if (searchService == null)
            {
                return(false);
            }

            parameters = new WarmupParameters
            {
                PublishingAdminService = new PublishingAdminService(),
                PublishingManager      = publishingManager,
                SearchService          = searchService,
                Indexes        = ((IList <SearchIndexStartupElement>)indexes).OrderBy(i => i.WithBackgroundIndexing),
                WorkerDelegate = new SystemManager.RunWithElevatedPrivilegeDelegate(DoWarmup)
            };

            return(true);
        }
 public WarmupBackgroundTask(PublishingPoint publishingPoint, WarmupParameters warmupParameters)
 {
     _publishingPoint  = publishingPoint ?? throw new ArgumentException("publishingPoint");
     _warmupParameters = warmupParameters ?? throw new ArgumentException("warmupParameters");
 }