protected override async Task HandleMessage(string filename) { var fileType = filename.GetExtensionFromPath(); var tableWrapperFactory = _tableWrapperFactories.AsParallel().First(extractor => extractor.IsFileTypeSupported(fileType)); var downloadedFileName = await _amazonAdapter.DownloadObjectAsync(_bucketName, filename); //todo: add handling of no available var tableWrapper = tableWrapperFactory.CreateTableWrapperForFile(downloadedFileName); await _contentIndexer.IndexTableAsync(tableWrapper, filename); }