Пример #1
0
        /// <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("}");
        }
Пример #2
0
        /// <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("}");
        }