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);
        }