/// <summary> /// Converts an <see cref="Extension"/> instance to an <see cref="ActExtension"/> instance. /// </summary> /// <param name="fhirExtension">The FHIR extension.</param> /// <returns>Returns the converted act extension instance.</returns> /// <exception cref="System.ArgumentNullException">fhirExtension - Value cannot be null</exception> public static ActExtension ToActExtension(Extension fhirExtension) { traceSource.TraceEvent(EventLevel.Verbose, "Mapping FHIR extension"); var extension = new ActExtension(); if (fhirExtension == null) { throw new ArgumentNullException(nameof(fhirExtension), "Value cannot be null"); } var extensionTypeService = ApplicationServiceContext.Current.GetService <IExtensionTypeRepository>(); extension.ExtensionType = extensionTypeService.Get(new Uri(fhirExtension.Url)); //extension.ExtensionValue = fhirExtension.Value; if (extension.ExtensionType.ExtensionHandler == typeof(DecimalExtensionHandler)) { extension.ExtensionValue = (fhirExtension.Value as FhirDecimal).Value; } else if (extension.ExtensionType.ExtensionHandler == typeof(StringExtensionHandler)) { extension.ExtensionValue = (fhirExtension.Value as FhirString).Value; } else if (extension.ExtensionType.ExtensionHandler == typeof(DateExtensionHandler)) { extension.ExtensionValue = (fhirExtension.Value as FhirDateTime).Value; } else { extension.ExtensionValueXml = (fhirExtension.Value as FhirBase64Binary).Value; } // Now will return(extension); }
/// <summary> /// Converts an <see cref="Extension"/> instance to an <see cref="ActExtension"/> instance. /// </summary> /// <param name="fhirExtension">The FHIR extension.</param> /// <returns>Returns the converted act extension instance.</returns> /// <exception cref="System.ArgumentNullException">fhirExtension - Value cannot be null</exception> public static ActExtension ToActExtension(Extension fhirExtension) { traceSource.TraceEvent(TraceEventType.Verbose, 0, "Mapping FHIR extension"); var extension = new ActExtension(); if (fhirExtension == null) { throw new ArgumentNullException(nameof(fhirExtension), "Value cannot be null"); } var extensionTypeService = ApplicationContext.Current.GetService <IMetadataRepositoryService>(); extension.ExtensionType = extensionTypeService.FindExtensionType(e => e.Name == fhirExtension.Url).FirstOrDefault(); //extension.ExtensionValue = fhirExtension.Value; if (extension.ExtensionType.ExtensionHandler == typeof(DecimalExtensionHandler)) { extension.ExtensionValue = (fhirExtension.Value as FhirDecimal).Value; } else if (extension.ExtensionType.ExtensionHandler == typeof(StringExtensionHandler)) { extension.ExtensionValue = (fhirExtension.Value as FhirString).Value; } else if (extension.ExtensionType.ExtensionHandler == typeof(DateExtensionHandler)) { extension.ExtensionValue = (fhirExtension.Value as FhirDateTime).Value; } else { extension.ExtensionValueXml = (fhirExtension.Value as FhirBase64Binary).Value; } // Now will return(extension); }