public static IActionResult Present(ResourceResponse response, HttpRequest httpRequest, HttpResponse httpResponse, string type) { if (response.Code == ResponseCode.Success) { return(PrepareRequestSuccess(response, httpRequest, httpResponse, type)); } return(PresenterBase.PrepareRequestFailure(response, httpResponse, httpRequest.ContentType)); }
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)); }
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)); } }
public static IActionResult Present(ValidateResourceResponse response, HttpResponse httpResponse, string contentType) { if (response.Code == ResponseCode.Success) { if (response.ValidationResult.Count == 0) { 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" } } } }, contentType)); } return(new FhirResult( new OperationOutcome { Issue = response.ValidationResult.Select( r => new OperationOutcome.IssueComponent { Severity = OperationOutcome.IssueSeverity.Error, Details = new CodeableConcept { Text = r.ToString() } }).ToList() }, contentType)); } return(PresenterBase.PrepareRequestFailure(response, httpResponse, contentType)); }
public static IActionResult Present(ResourceResponse response, HttpResponse httpResponse, string contentType) { return(response.Code == ResponseCode.Success ? new FhirResult(response.Resource, contentType) : PresenterBase.PrepareRequestFailure(response, httpResponse, contentType)); }