Exemplo n.º 1
0
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }

            ((Fhir.R4.Models.BackboneElement) this).SerializeJson(writer, options, false);

            if (!string.IsNullOrEmpty(Type))
            {
                writer.WriteString("type", (string)Type !);
            }

            if (_Type != null)
            {
                writer.WritePropertyName("_type");
                _Type.SerializeJson(writer, options);
            }

            if (Period != null)
            {
                writer.WritePropertyName("period");
                Period.SerializeJson(writer, options);
            }

            if ((Actor != null) && (Actor.Count != 0))
            {
                writer.WritePropertyName("actor");
                writer.WriteStartArray();

                foreach (ConsentProvisionActor valActor in Actor)
                {
                    valActor.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Action != null) && (Action.Count != 0))
            {
                writer.WritePropertyName("action");
                writer.WriteStartArray();

                foreach (CodeableConcept valAction in Action)
                {
                    valAction.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((SecurityLabel != null) && (SecurityLabel.Count != 0))
            {
                writer.WritePropertyName("securityLabel");
                writer.WriteStartArray();

                foreach (Coding valSecurityLabel in SecurityLabel)
                {
                    valSecurityLabel.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Purpose != null) && (Purpose.Count != 0))
            {
                writer.WritePropertyName("purpose");
                writer.WriteStartArray();

                foreach (Coding valPurpose in Purpose)
                {
                    valPurpose.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Class != null) && (Class.Count != 0))
            {
                writer.WritePropertyName("class");
                writer.WriteStartArray();

                foreach (Coding valClass in Class)
                {
                    valClass.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Code != null) && (Code.Count != 0))
            {
                writer.WritePropertyName("code");
                writer.WriteStartArray();

                foreach (CodeableConcept valCode in Code)
                {
                    valCode.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (DataPeriod != null)
            {
                writer.WritePropertyName("dataPeriod");
                DataPeriod.SerializeJson(writer, options);
            }

            if ((Data != null) && (Data.Count != 0))
            {
                writer.WritePropertyName("data");
                writer.WriteStartArray();

                foreach (ConsentProvisionData valData in Data)
                {
                    valData.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if ((Provision != null) && (Provision.Count != 0))
            {
                writer.WritePropertyName("provision");
                writer.WriteStartArray();

                foreach (ConsentProvision valProvision in Provision)
                {
                    valProvision.SerializeJson(writer, options, true);
                }

                writer.WriteEndArray();
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }