/// <summary> /// /// </summary> /// <param name="permissionWindow">May be null, then allows downloading of CacheProgress with no associated PermissionWindow</param> /// <param name="repository"></param> /// <param name="pipelineEngineExecutionStrategy">Multiple CacheProgresses will result in multiple PipelineEngines, this strategy determines how these should be run, e.g. Round-robin, Async</param> public PermissionWindowCacheDownloader(IPermissionWindow permissionWindow, ICatalogueRepository repository, IMultiPipelineEngineExecutionStrategy pipelineEngineExecutionStrategy) { _permissionWindow = permissionWindow; _cacheProgressItems = _permissionWindow.CacheProgresses.ToList(); _repository = repository; _pipelineEngineExecutionStrategy = pipelineEngineExecutionStrategy; }
/// <summary> /// Overload with specific cache items to download for this permission window /// </summary> /// <param name="permissionWindow"></param> /// <param name="cacheProgressItems"></param> /// <param name="pipelineEngineExecutionStrategy"></param> public PermissionWindowCacheDownloader(IPermissionWindow permissionWindow, List <ICacheProgress> cacheProgressItems, IMultiPipelineEngineExecutionStrategy pipelineEngineExecutionStrategy) { _permissionWindow = permissionWindow; CheckCacheProgressesUseCorrectPermissionWindow(cacheProgressItems); _cacheProgressItems = cacheProgressItems; _pipelineEngineExecutionStrategy = pipelineEngineExecutionStrategy; }