/// <summary>Writes a code.</summary> /// <param name="element">The element.</param> private void WriteCode( FhirElement element) { string codeName = FhirUtils.ToConvention( $"{element.Path}.Codes", string.Empty, FhirTypeBase.NamingConvention.PascalCase); if (codeName.Contains("[x]")) { codeName = codeName.Replace("[x]", string.Empty); } if (codeName.Contains("[X]")) { codeName = codeName.Replace("[X]", string.Empty); } if (_exportedCodes.Contains(codeName)) { return; } _exportedCodes.Add(codeName); _writer.WriteLineIndented($"/// <summary>"); _writer.WriteLineIndented($"/// Code Values for the {element.Path} field"); _writer.WriteLineIndented($"/// </summary>"); if (codeName.EndsWith("Codes", StringComparison.Ordinal)) { _writer.WriteLineIndented($"public static class {codeName} {{"); } else { _writer.WriteLineIndented($"public static class {codeName}Codes {{"); } _writer.IncreaseIndent(); foreach (string code in element.Codes) { FhirUtils.SanitizeForCode(code, _reservedWords, out string name, out string value); _writer.WriteLineIndented($"public const string {name.ToUpperInvariant()} = \"{value}\";"); } _writer.DecreaseIndent(); _writer.WriteLineIndented("}"); }
/// <summary>Writes a code.</summary> /// <param name="element">The element.</param> private void WriteCode( FhirElement element) { string codeName = FhirUtils.ToConvention( $"{element.Path}.Codes", string.Empty, FhirTypeBase.NamingConvention.PascalCase); if (codeName.Contains("[x]")) { codeName = codeName.Replace("[x]", string.Empty); } if (_exportedCodes.Contains(codeName)) { return; } _exportedCodes.Add(codeName); _writer.WriteLineIndented($"/**"); _writer.WriteLineIndented($" * Code Values for the {element.Path} field"); _writer.WriteLineIndented($" */"); _writer.WriteLineIndented($"export enum {codeName} {{"); _writer.IncreaseIndent(); foreach (string code in element.Codes) { FhirUtils.SanitizeForCode(code, _reservedWords, out string name, out string value); _writer.WriteLineIndented($"{name.ToUpperInvariant()} = \"{value}\","); } _writer.DecreaseIndent(); _writer.WriteLineIndented("}"); }