BatchExporter
using kCura.WinEDDS.Exporters;
using Relativity.DataExchange.Export.VolumeManagerV2.Download;
using Relativity.DataExchange.Export.VolumeManagerV2.ImagesRollup;
using Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Images;
using Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Natives;
using Relativity.DataExchange.Export.VolumeManagerV2.Statistics;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Batches
{
    public class BatchExporter : IBatchExporter
    {
        private readonly IDownloader _downloader;
        private readonly IImagesRollupManager _imagesRollupManager;
        private readonly IMessenger _messenger;
        private readonly IImageLoadFile _imageLoadFile;
        private readonly ILoadFile _loadFile;
        private readonly IFileDownloadSubscriber _fileDownloadSubscriber;
        public BatchExporter(IDownloader downloader, IImagesRollupManager imagesRollupManager, IMessenger messenger, IImageLoadFile imageLoadFile, ILoadFile loadFile, IFileDownloadSubscriber fileDownloadSubscriber)
        {
            _downloader = downloader;
            _imagesRollupManager = imagesRollupManager;
            _messenger = messenger;
            _imageLoadFile = imageLoadFile;
            _loadFile = loadFile;
            _fileDownloadSubscriber = fileDownloadSubscriber;
        }
        [AsyncStateMachine(typeof(<ExportAsync>d__7))]
        public Task ExportAsync(ObjectExportInfo[] artifacts, CancellationToken cancellationToken)
        {
            <ExportAsync>d__7 stateMachine = default(<ExportAsync>d__7);
            stateMachine.<>t__builder = AsyncTaskMethodBuilder.Create();
            stateMachine.<>4__this = this;
            stateMachine.artifacts = artifacts;
            stateMachine.cancellationToken = cancellationToken;
            stateMachine.<>1__state = -1;
            stateMachine.<>t__builder.Start(ref stateMachine);
            return stateMachine.<>t__builder.Task;
        }
    }
}