public void GivenAnImportResult_WhenSettingAContentTypeHeader_ThenImportResultHasAContentTypeHeader() { string contentTypeValue = "application/json"; var bulkImportResult = ImportResult.Accepted().SetContentTypeHeader(contentTypeValue); Assert.Equal(contentTypeValue, bulkImportResult.Headers[HeaderNames.ContentType]); }
public async Task <IActionResult> Import([FromBody] Parameters importTaskParameters) { CheckIfImportIsEnabled(); ImportRequest importRequest = importTaskParameters.ExtractImportRequest(); ValidateImportRequestConfiguration(importRequest); if (!ImportConstants.InitialLoadMode.Equals(importRequest.Mode, StringComparison.Ordinal)) { throw new RequestNotValidException(Resources.OnlyInitialImportOperationSupported); } if (!importRequest.Force && !_importConfig.InitialImportMode) { throw new RequestNotValidException(Resources.InitialImportModeNotEnabled); } CreateImportResponse response = await _mediator.ImportAsync( _fhirRequestContextAccessor.RequestContext.Uri, importRequest.InputFormat, importRequest.InputSource, importRequest.Input, importRequest.StorageDetail, HttpContext.RequestAborted); var bulkImportResult = ImportResult.Accepted(); bulkImportResult.SetContentLocationHeader(_urlResolver, OperationsConstants.Import, response.TaskId); return(bulkImportResult); }
public void GivenAnImportResult_WhenSettingAContentLocationHeader_ThenImportResultHasAContentLocationHeader() { string opName = OperationsConstants.Import; string id = Guid.NewGuid().ToString(); var bulkImportOperationUrl = new Uri($"http://localhost/{OperationsConstants.Operations}/{opName}/{id}"); var urlResolver = Substitute.For <IUrlResolver>(); urlResolver.ResolveOperationResultUrl(Arg.Any <string>(), Arg.Any <string>()).Returns(bulkImportOperationUrl); var bulkImportResult = ImportResult.Accepted().SetContentLocationHeader(urlResolver, opName, id); Assert.Equal(bulkImportOperationUrl.AbsoluteUri, bulkImportResult.Headers[HeaderNames.ContentLocation]); }
public async Task <IActionResult> GetImportStatusById(string idParameter) { var getBulkImportResult = await _mediator.GetImportStatusAsync( idParameter, HttpContext.RequestAborted); // If the job is complete, we need to return 200 along with the completed data to the client. // Else we need to return 202 - Accepted. ImportResult bulkImportActionResult; if (getBulkImportResult.StatusCode == HttpStatusCode.OK) { bulkImportActionResult = ImportResult.Ok(getBulkImportResult.TaskResult); bulkImportActionResult.SetContentTypeHeader(OperationsConstants.BulkImportContentTypeHeaderValue); } else { bulkImportActionResult = ImportResult.Accepted(); } return(bulkImportActionResult); }