private void WriteStructure(JsonWriter writer, Shape structure)
{
if (structure.Payload != null)
{
this.WriteStructure(writer, structure.Members[0].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
{
this.Write(writer, member.Shape);
}
}
writer.WriteObjectEnd();
}