public static void AddGenericType(this IExtendable resource, String genericParamPath, String genericParamTypeUri) { if (resource is null) { throw new ArgumentNullException(nameof(resource)); } if (genericParamPath is null) { throw new ArgumentNullException(nameof(genericParamPath)); } if (genericParamTypeUri is null) { throw new ArgumentNullException(nameof(genericParamTypeUri)); } // Make sure that generic name is a.b.c:d String[] parts = genericParamPath.Split('.'); String[] subParts = parts[parts.Length - 1].Split(':'); Debug.Assert(subParts.Length == 2); ElementDefinition genericElement = new ElementDefinition() { ElementId = genericParamPath, Path = genericParamPath }; //$genericElement.Type.Add(new ElementDefinition.TypeRefComponent { Code = genericParamTypeUri }); resource.AddExtension(GenericExtensionUri, genericElement); }
/// <summary> /// Set Composable. /// </summary> public static void SetComposable(this IExtendable resource, Composable composableValue) { switch (resource) { case StructureDefinition sDef: break; case ElementDefinition eDef: break; default: throw new Exception($"Can only set composable on an element definition"); } resource.AddExtension(ComposableExtensionUri, new FhirString(composableValue.ToString())); }
public static Extension AddStringAsExtension(this IExtendable extendable, string uri, string value, bool isModifier = false) { return(extendable.AddExtension(uri, new FhirString(value), isModifier)); }