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 static async Task <CreateImportResponse> ImportAsync( this IMediator mediator, Uri requestUri, string inputFormat, Uri inputSource, IReadOnlyList <InputResource> input, ImportRequestStorageDetail storageDetail, CancellationToken cancellationToken) { EnsureArg.IsNotNull(mediator, nameof(mediator)); EnsureArg.IsNotNull(requestUri, nameof(requestUri)); var request = new CreateImportRequest(requestUri, inputFormat, inputSource, input, storageDetail); CreateImportResponse response = await mediator.Send(request, cancellationToken); return(response); }