public override CrossApplicationRequestData ReadJson(JsonReader reader, Type objectType, CrossApplicationRequestData existingValue, bool hasExistingValue, JsonSerializer serializer)
        {
            var stringArray = CrossApplicationTracingJsonHelper.ConvertJsonToStringArrayForCat(reader, MinimumProperties, TotalProperties);

            if (stringArray == null)
            {
                return(null);
            }

            return(new CrossApplicationRequestData(
                       stringArray[TransactionGuidIndex],
                       bool.Parse(stringArray[UnusedIndex]),
                       stringArray[TripIdIndex],
                       stringArray[PathHashIndex]
                       ));
        }
        public override CrossApplicationResponseData ReadJson(JsonReader reader, Type objectType, CrossApplicationResponseData existingValue, bool hasExistingValue, JsonSerializer serializer)
        {
            var stringArray = CrossApplicationTracingJsonHelper.ConvertJsonToStringArrayForCat(reader, MinimumProperties, TotalProperties);

            if (stringArray == null)
            {
                return(null);
            }

            return(new CrossApplicationResponseData(
                       stringArray[CrossProcessIdIndex],
                       stringArray[TransactionNameIndex],
                       float.Parse(stringArray[QueueTimeInSecondsIndex]),
                       float.Parse(stringArray[ResponseTimeInSecondsIndex]),
                       long.Parse(stringArray[ContentLengthIndex]),
                       stringArray[TransactionGuidIndex],
                       bool.Parse(stringArray[UnusedIndex] ?? "false")
                       ));
        }