WriteStartArray() public method

public WriteStartArray ( ) : void
return void
        /// <summary>
        /// Serializes the crash threads.
        /// </summary>
        /// <param name="threads">The threads.</param>
        /// <param name="writer">The writer.</param>
        private static void SerializeCrashThreads(IList<CrashTelemetryThread> threads, JsonWriter writer)
        {
            bool first = true;
            foreach (CrashTelemetryThread thread in threads)
            {
                if (first == false)
                {
                    writer.WriteComma();
                }

                first = false;

                writer.WriteStartObject();

                writer.WriteProperty("id", thread.Id);
                writer.WritePropertyName("frames");
                {
                    writer.WriteStartArray();

                    JsonSerializer.SerializeCrashThreadFrames(thread.Frames, writer);

                    writer.WriteEndArray();
                }

                writer.WriteEndObject();
            }
        }
        private static void SerializeMetricTelemetry(MetricTelemetry metricTelemetry, JsonWriter writer)
        {
            writer.WriteStartObject();

            metricTelemetry.WriteTelemetryName(writer, MetricTelemetry.TelemetryName);
            metricTelemetry.WriteEnvelopeProperties(writer);
            writer.WritePropertyName("data");
            {
                writer.WriteStartObject();

                // TODO: MetricTelemetry should write type as this.data.baseType once Common Schema 2.0 compliant.
                writer.WriteProperty("baseType", metricTelemetry.BaseType);
                writer.WritePropertyName("baseData");
                {
                    writer.WriteStartObject();

                    writer.WriteProperty("ver", metricTelemetry.Data.ver);
                    writer.WritePropertyName("metrics");
                    {
                        writer.WriteStartArray();
                        writer.WriteStartObject();
                        writer.WriteProperty("name", metricTelemetry.Metric.name);
                        writer.WriteProperty("kind", metricTelemetry.Metric.kind.ToString());
                        writer.WriteProperty("value", metricTelemetry.Metric.value);
                        writer.WriteProperty("count", metricTelemetry.Metric.count);
                        writer.WriteProperty("min", metricTelemetry.Metric.min);
                        writer.WriteProperty("max", metricTelemetry.Metric.max);
                        writer.WriteProperty("stdDev", metricTelemetry.Metric.stdDev);
                        writer.WriteEndObject();
                        writer.WriteEndArray();
                    }

                    writer.WriteProperty("properties", metricTelemetry.Data.properties);

                    writer.WriteEndObject();
                }

                writer.WriteEndObject();
            }

            writer.WriteEndObject();
        }
        /// <summary>
        /// Serializes the crash.
        /// </summary>
        /// <param name="telemetry">The telemetry.</param>
        /// <param name="writer">The writer.</param>
        private static void SerializeCrash(CrashTelemetry telemetry, JsonWriter writer)
        {
            writer.WriteStartObject();

            telemetry.WriteTelemetryName(writer, CrashTelemetry.TelemetryName);
            telemetry.WriteEnvelopeProperties(writer);
            writer.WritePropertyName("data");
            {
                writer.WriteStartObject();

                writer.WriteProperty("baseType", telemetry.BaseType);
                writer.WritePropertyName("baseData");
                {
                    writer.WriteStartObject();

                    writer.WriteProperty("ver", telemetry.Data.ver);
                    writer.WriteProperty("handledAt", Utils.PopulateRequiredStringValue(telemetry.Data.handledAt, "handledAt", typeof(ExceptionTelemetry).FullName));
                    writer.WriteProperty("stackTrace", telemetry.StackTrace);

                    // write headers
                    writer.WritePropertyName("headers");
                    {
                        writer.WriteStartObject();

                        writer.WriteProperty("id", telemetry.Headers.Id);
                        writer.WriteProperty("process", telemetry.Headers.Process);
                        writer.WriteProperty("processId", telemetry.Headers.ProcessId);
                        writer.WriteProperty("parentProcess", telemetry.Headers.ParentProcess);
                        writer.WriteProperty("parentProcessId", telemetry.Headers.ParentProcessId);
                        writer.WriteProperty("crashThread", telemetry.Headers.CrashThreadId);
                        writer.WriteProperty("applicationPath", telemetry.Headers.ApplicationPath);
                        writer.WriteProperty("applicationIdentifier", telemetry.Headers.ApplicationId);
                        writer.WriteProperty("exceptionType", telemetry.Headers.ExceptionType);
                        writer.WriteProperty("exceptionCode", telemetry.Headers.ExceptionCode);
                        writer.WriteProperty("exceptionAddress", telemetry.Headers.ExceptionAddress);
                        writer.WriteProperty("exceptionReason", telemetry.Headers.ExceptionReason);

                        writer.WriteEndObject();
                    }

                    // write threads
                    writer.WritePropertyName("threads");
                    {
                        writer.WriteStartArray();
                        JsonSerializer.SerializeCrashThreads(telemetry.Threads, writer);
                        writer.WriteEndArray();
                    }

                    // write threads
                    writer.WritePropertyName("binaries");
                    {
                        writer.WriteStartArray();
                        JsonSerializer.SerializeCrashBinaries(telemetry.Binaries, writer);
                        writer.WriteEndArray();
                    }

                    // write threads
                    writer.WritePropertyName("attachments");
                    {
                        writer.WriteStartObject();
                        writer.WriteProperty("description", telemetry.Attachments.Description);
                        writer.WriteProperty("userName", HockeyClient.Current.AsInternal().UserID);
                        writer.WriteProperty("userEmail", HockeyClient.Current.AsInternal().ContactInformation);
                        writer.WriteEndObject();
                    }

                    writer.WriteEndObject();
                }

                writer.WriteEndObject();
            }

            writer.WriteEndObject();
        }
        private static void SerializeExceptionTelemetry(ExceptionTelemetry exceptionTelemetry, JsonWriter writer)
        {
            writer.WriteStartObject();

            exceptionTelemetry.WriteTelemetryName(writer, ExceptionTelemetry.TelemetryName);
            exceptionTelemetry.WriteEnvelopeProperties(writer);
            writer.WritePropertyName("data");
            {
                writer.WriteStartObject();

                writer.WriteProperty("baseType", exceptionTelemetry.BaseType);
                writer.WritePropertyName("baseData");
                {
                    writer.WriteStartObject();

                    writer.WriteProperty("ver", exceptionTelemetry.Data.ver);
                    writer.WriteProperty(
                        "handledAt",
                        Utils.PopulateRequiredStringValue(exceptionTelemetry.Data.handledAt, "handledAt", typeof(ExceptionTelemetry).FullName));
                    writer.WriteProperty("properties", exceptionTelemetry.Data.properties);
                    writer.WriteProperty("measurements", exceptionTelemetry.Data.measurements);
                    writer.WritePropertyName("exceptions");
                    {
                        writer.WriteStartArray();

                        SerializeExceptions(exceptionTelemetry.Exceptions, writer);

                        writer.WriteEndArray();
                    }

                    if (exceptionTelemetry.Data.severityLevel.HasValue)
                    {
                        writer.WriteProperty("severityLevel", exceptionTelemetry.Data.severityLevel.Value.ToString());
                    }

                    writer.WriteEndObject();
                }

                writer.WriteEndObject();
            }

            writer.WriteEndObject();
        }