internal void Write(JsonWriter writer)
{
PopulateFields();
writer.WriteStartObject();
Trace.TraceInformation("Writing standard keys..");
WriteStandardKeys(writer);
Trace.TraceInformation("Writing user information..");
WriteUserInfo(writer);
Trace.TraceInformation("Writing relevance keys..");
WriteRelevanceKeys(writer);
Trace.TraceInformation("Writing appearance keys..");
WriteAppearanceKeys(writer);
Trace.TraceInformation("Writing expiration keys..");
WriteExpirationKeys(writer);
Trace.TraceInformation("Opening style section..");
OpenStyleSpecificKey(writer);
Trace.TraceInformation("Writing header fields");
WriteSection(writer, "headerFields", this.HeaderFields);
Trace.TraceInformation("Writing primary fields");
WriteSection(writer, "primaryFields", this.PrimaryFields);
Trace.TraceInformation("Writing secondary fields");
WriteSection(writer, "secondaryFields", this.SecondaryFields);
Trace.TraceInformation("Writing auxiliary fields");
WriteSection(writer, "auxiliaryFields", this.AuxiliaryFields);
Trace.TraceInformation("Writing back fields");
WriteSection(writer, "backFields", this.BackFields);
if (this.Style == PassStyle.BoardingPass)
{
writer.WritePropertyName("transitType");
writer.WriteValue(this.TransitType.ToString());
}
Trace.TraceInformation("Closing style section..");
CloseStyleSpecificKey(writer);
WriteBarcode(writer);
WriteUrls(writer);
writer.WriteEndObject();
}