static async Task <int> Main(string[] args) { // To run locally, uncomment these lines: //BatchRunner.StoreBatchOutput = false; //BatchRunner.QueueJobs = false; return(await BatchRunner.Run <ImportTask>(async (task) => { var options = ImportTaskOptions.Parse(args); return await task.Run(options); })); }
public async Task <int> Run(ImportTaskOptions options) { var cancellationToken = CancellationToken.None; Options = options; try { Log .Add("Running dataset import task ...") .Add($"Nomination Id: {Options.NominationId}"); (var nomination, var storage) = await LoadNomination(cancellationToken); await DeleteDatasetDocuments(cancellationToken); var fileDetails = await CreateDatasetFileDocuments(storage, cancellationToken); await CreateDatasetDocument(nomination, storage, fileDetails, cancellationToken); await UpdateNominationStatusToCompleted(cancellationToken); if (BatchRunner.QueueJobs) { if (fileDetails.fileSize < MaxFileSizeForCompression) { Log.Add("Starting up compression batch task."); await ApplicationJobs.StartDatasetCompressionJob(Options.NominationId, nomination.Name); } } var cleanedUp = await DatasetEditStorage.CleanUpDatasetEditAfterImport(Options.NominationId); if (cleanedUp) { Log.Add("Cleaned up dataset edit resources."); } return(0); } catch (Exception) { await UpdateNominationStatusToError(); throw; } }