Пример #1
0
        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);
            }));
        }
Пример #2
0
        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;
            }
        }