AWSSDK_DotNet35.UnitTests.TestTools.JsonSampleGenerator.WriteStructure C# (CSharp) Method

WriteStructure() private method

private WriteStructure ( JsonWriter writer, Shape structure ) : void
writer ThirdParty.Json.LitJson.JsonWriter
structure ServiceClientGenerator.Shape
return void
        private void WriteStructure(JsonWriter writer, Shape structure)
        {
            var pushed = this._tcr.Push(structure.Name);
            if (!pushed)
                return;

            if (structure.PayloadMemberName != null)
            {
                this.WriteStructure(writer, structure.PayloadMember.Shape);
                return;
            }

            writer.WriteObjectStart();

            foreach (var member in structure.Members)
            {
                writer.WritePropertyName(member.MarshallName);

                if (member.OverrideDataType != null && string.Equals(member.OverrideDataType.Unmarshaller, "DateTimeEpochLongMillisecondsUnmarshaller"))
                {
                    var ticks = Constants.DEFAULT_DATE.Ticks - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks;
                    writer.Write((long)TimeSpan.FromTicks(ticks).TotalMilliseconds);
                }
                else if (member.OverrideDataType != null && string.Equals(member.OverrideDataType.Unmarshaller, "Amazon.Runtime.Internal.Transform.DateTimeUnmarshaller"))
                {
                    writer.Write(Constants.DEFAULT_DATE.ToString(AWSSDKUtils.ISO8601DateFormat, CultureInfo.InvariantCulture));
                }
                else if (member.OverrideDataType != null && string.Equals(member.OverrideDataType.Unmarshaller, "Amazon.Runtime.Internal.Transform.DecimalUnmarshaller"))
                {
                    writer.Write(Constants.DEFAULT_DECIMAL.ToString(CultureInfo.InvariantCulture));
                }
                else
                {
                    this.Write(writer, member.Shape);
                }
            }

            writer.WriteObjectEnd();

            if (pushed)
                this._tcr.Pop();
        }