Esempio n. 1
0
        public async Task GetAsync_ShouldFetchSubmission()
        {
            // Arrange
            var submissionId = (await _dataHelper.Submissions().GetAnyAsync()).Id;

            // Act
            var submission = await _submissionsClient.GetAsync(submissionId);

            // Assert
            submission.Id.Should().BeGreaterThan(0);
        }
        private async Task <JObject> WaitReady(Predicate <SubmissionStatus> isAwaitedStatus, int submissionId, TimeSpan checkInterval, CancellationToken cancellationToken)
        {
            if (isAwaitedStatus(SubmissionStatus.PROCESSING) || isAwaitedStatus(SubmissionStatus.FAILED))
            {
                throw new ArgumentException($"Wrong awaited status. Cannot get the result when submission status is {SubmissionStatus.PROCESSING} or {SubmissionStatus.FAILED}.");
            }

            ISubmission submission;

            while (!isAwaitedStatus((submission = await _submissionsClient.GetAsync(submissionId, cancellationToken)).Status))
            {
                if (submission.Status == SubmissionStatus.FAILED)
                {
                    throw new WrongSubmissionStatusException(SubmissionStatus.FAILED);
                }

                await Task.Delay(checkInterval, cancellationToken);
            }

            var resultUri = new Uri(new Uri("indico-file://"), submission.ResultFile);// $"indico-file://{submission.ResultFile}";
            var result    = await _storageClient.GetAsync(resultUri);

            using (var reader = new JsonTextReader(new StreamReader(result)))
            {
                return(JsonSerializer.Create().Deserialize <JObject>(reader));
            }
        }
        private async Task <string> GetAnyJobIdAsync()
        {
            var submission = await _dataHelper.Submissions().GetAnyAsync();

            while ((await _submissionsClient.GetAsync(submission.Id)).Status == SubmissionStatus.PROCESSING)
            {
                await Task.Delay(100);
            }

            var jobId = await _submissionsClient.GenerateSubmissionResultAsync(submission.Id);

            return(jobId);
        }
        private async Task <JObject> WaitReady(Predicate <SubmissionStatus> isAwaitedStatus, int submissionId, TimeSpan checkInterval, CancellationToken cancellationToken)
        {
            ISubmission submission;

            while (!isAwaitedStatus((submission = await _submissionsClient.GetAsync(submissionId, cancellationToken)).Status))
            {
                await Task.Delay(checkInterval, cancellationToken);
            }

            var resultUri = new Uri(new Uri("indico-file://"), submission.ResultFile);// $"indico-file://{submission.ResultFile}";
            var result    = await _storageClient.GetAsync(resultUri);

            using (var reader = new JsonTextReader(new StreamReader(result)))
            {
                return(JsonSerializer.Create().Deserialize <JObject>(reader));
            }
        }