Esempio n. 1
0
        public async Task UpdateDatasetVersion_GivenBadRequestFromApi_ReturnsBadRequest()
        {
            ValidatedApiResponse <NewDatasetVersionResponseModel> response = new ValidatedApiResponse <NewDatasetVersionResponseModel>(HttpStatusCode.BadRequest);

            _apiClient
            .DatasetVersionUpdate(Arg.Any <DatasetVersionUpdateModel>())
            .Returns(response);

            IActionResult result = await _controller.UpdateDatasetVersion(null, null, new DatasetUpdateViewModel());

            result
            .Should()
            .BeOfType <BadRequestObjectResult>();
        }
Esempio n. 2
0
        public async Task <IActionResult> UpdateDatasetVersion([FromRoute] string fundingStreamId,
                                                               [FromRoute] string datasetId,
                                                               [FromBody] DatasetUpdateViewModel vm)
        {
            Guard.ArgumentNotNull(vm, nameof(vm));

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ValidatedApiResponse <NewDatasetVersionResponseModel> response =
                await _datasetApiClient.DatasetVersionUpdate(new DatasetVersionUpdateModel
            {
                DatasetId       = datasetId,
                FundingStreamId = fundingStreamId,
                Filename        = vm.Filename
            });

            if (response.IsBadRequest(out BadRequestObjectResult badRequest))
            {
                _logger.Warning("Invalid model provided");

                return(badRequest);
            }
            else
            {
                if (!response.StatusCode.IsSuccess())
                {
                    int statusCode = (int)response.StatusCode;

                    _logger.Error("Error when posting data set with status code: {statusCode}", statusCode);

                    return(new InternalServerErrorResult($"Error when posting data set with status code: {statusCode}"));
                }
            }

            return(new OkObjectResult(response.Content));
        }