public static IActionResult Present(ResourceResponse response, string contentType, HttpResponse httpResponse, SummaryType summaryType)
        {
            if (response.Code == ResponseCode.Success)
            {
                PresenterBase.SetBasicResponseAttributes(response, httpResponse, HttpStatusCode.OK);
                return(new FhirResult(response.Resource, contentType, summaryType));
            }

            return(PresenterBase.PrepareRequestFailure(response, httpResponse, contentType));
        }
Ejemplo n.º 2
0
        private static IActionResult PrepareRequestSuccess(ResourceResponse response, HttpRequest httpRequest, HttpResponse httpResponse, string type)
        {
            PresenterBase.SetBasicResponseAttributes(response, httpResponse, HttpStatusCode.Created);

            httpResponse.Headers.Add(
                "Location",
                $"{httpRequest.Scheme}://{httpRequest.Host.Value}/api/fhir/{type}/{response.Resource.Id}/_history/{response.Resource.VersionId}");

            var prefer = httpRequest.Headers.FirstOrDefault(h => h.Key == "Prefer");

            if (string.IsNullOrEmpty(prefer.Key))
            {
                return(new EmptyFhirResult(httpRequest.ContentType));
            }

            switch (prefer.Value.First())
            {
            case "representation":
                return(new FhirResult(response.Resource, httpRequest.ContentType));

            case "OperationOutcome":
                return(new FhirResult(
                           new OperationOutcome
                {
                    Issue = new List <OperationOutcome.IssueComponent>
                    {
                        new OperationOutcome.IssueComponent
                        {
                            Code = OperationOutcome.IssueType.Informational,
                            Severity = OperationOutcome.IssueSeverity.Information,
                            Details = new CodeableConcept {
                                Text = "All OK"
                            }
                        }
                    }
                },
                           httpRequest.ContentType));

            default:
                return(new EmptyFhirResult(httpRequest.ContentType));
            }
        }