Пример #1
0
        /// <summary>
        /// When a ResourceReference is relative, use the parent resource's fullUrl (e.g. from a Bundle's entry)
        /// to make it absolute.
        /// </summary>
        /// <param name="reference">The ResourceReference to get the (possibily relative) url from</param>
        /// <param name="parentResourceUri">Absolute uri representing the location of the resource this reference is in.</param>
        /// <remarks>Implements (part of the logic) as described in bundle.html#6.7.4.1</remarks>
        /// <returns></returns>
        public static Uri GetAbsoluteUriForReference(this ResourceReference reference, Uri parentResourceUri)
        {
            if (parentResourceUri == null)
            {
                throw Error.ArgumentNull(nameof(parentResourceUri));
            }
            if (reference == null)
            {
                throw Error.ArgumentNull(nameof(reference));
            }
            if (reference.Reference == null)
            {
                return(null);
            }

            // Don't need to do anything when Uri is absolute
            var referenceUri = new Uri(reference.Reference, UriKind.RelativeOrAbsolute);

            if (referenceUri.IsAbsoluteUri)
            {
                return(referenceUri);
            }

            if (!ResourceIdentity.IsRestResourceIdentity(parentResourceUri))
            {
                throw Error.Argument(nameof(parentResourceUri), "Must be an absolute FHIR REST identity when reference is relative");
            }
            var parent = new ResourceIdentity(parentResourceUri);

            return(HttpUtil.MakeAbsoluteToBase(referenceUri, parent.BaseUri));
        }
Пример #2
0
        internal static bool IsBinaryResponse(string responseUri, string contentType)
        {
            if (!string.IsNullOrEmpty(contentType) &&
                (ContentType.XML_CONTENT_HEADERS.Contains(contentType.ToLower()) ||
                 ContentType.JSON_CONTENT_HEADERS.Contains(contentType.ToLower())
                )
                )
            {
                return(false);
            }

            if (ResourceIdentity.IsRestResourceIdentity(responseUri))
            {
                var id = new ResourceIdentity(responseUri);

                if (id.ResourceType != ResourceType.Binary.ToString())
                {
                    return(false);
                }

                if (id.Id != null && Id.IsValidValue(id.Id))
                {
                    return(true);
                }
                if (id.VersionId != null && Id.IsValidValue(id.VersionId))
                {
                    return(true);
                }
            }

            return(false);
        }
        internal static bool IsBinaryResponse(string responseUri, string contentType)
        {
            if (!string.IsNullOrEmpty(contentType) && (contentType.ToLower() == "application/xml+fhir" || contentType.ToLower() == "application/json+fhir"))
            {
                return(false);
            }

            if (ResourceIdentity.IsRestResourceIdentity(responseUri))
            {
                var id = new ResourceIdentity(responseUri);

                if (id.ResourceType != ResourceType.Binary.ToString())
                {
                    return(false);
                }

                if (id.Id != null && Id.IsValidValue(id.Id))
                {
                    return(true);
                }
                if (id.VersionId != null && Id.IsValidValue(id.VersionId))
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #4
0
        internal static bool IsBinaryResponse(string responseUri)
        {
            if (ResourceIdentity.IsRestResourceIdentity(responseUri))
            {
                var id = new ResourceIdentity(responseUri);

                if (id.ResourceType != ResourceType.Binary.ToString())
                {
                    return(false);
                }

                if (id.Id != null && Id.IsValidValue(id.Id))
                {
                    return(true);
                }
                if (id.VersionId != null && Id.IsValidValue(id.VersionId))
                {
                    return(true);
                }
            }

            return(false);
        }