public override bool Read()

in Microsoft.Azure.Cosmos/src/Json/Interop/CosmosDBToNewtonsoftReader.cs [53:177]


        public override bool Read()
        {
            bool read = this.jsonReader.Read();
            if (!read)
            {
                this.SetToken(JsonToken.None);
                return false;
            }

            JsonTokenType jsonTokenType = this.jsonReader.CurrentTokenType;
            JsonToken newtonsoftToken;
            object value;
            switch (jsonTokenType)
            {
                case JsonTokenType.BeginArray:
                    newtonsoftToken = JsonToken.StartArray;
                    value = CosmosDBToNewtonsoftReader.Null;
                    break;

                case JsonTokenType.EndArray:
                    newtonsoftToken = JsonToken.EndArray;
                    value = CosmosDBToNewtonsoftReader.Null;
                    break;

                case JsonTokenType.BeginObject:
                    newtonsoftToken = JsonToken.StartObject;
                    value = CosmosDBToNewtonsoftReader.Null;
                    break;

                case JsonTokenType.EndObject:
                    newtonsoftToken = JsonToken.EndObject;
                    value = CosmosDBToNewtonsoftReader.Null;
                    break;

                case JsonTokenType.String:
                    newtonsoftToken = JsonToken.String;
                    value = this.jsonReader.GetStringValue().ToString();
                    break;

                case JsonTokenType.Number:
                    Number64 number64Value = this.jsonReader.GetNumberValue();
                    if (number64Value.IsInteger)
                    {
                        value = Number64.ToLong(number64Value);
                        newtonsoftToken = JsonToken.Integer;
                    }
                    else
                    {
                        value = Number64.ToDouble(number64Value);
                        newtonsoftToken = JsonToken.Float;
                    }
                    break;

                case JsonTokenType.True:
                    newtonsoftToken = JsonToken.Boolean;
                    value = CosmosDBToNewtonsoftReader.True;
                    break;

                case JsonTokenType.False:
                    newtonsoftToken = JsonToken.Boolean;
                    value = CosmosDBToNewtonsoftReader.False;
                    break;

                case JsonTokenType.Null:
                    newtonsoftToken = JsonToken.Null;
                    value = CosmosDBToNewtonsoftReader.Null;
                    break;

                case JsonTokenType.FieldName:
                    newtonsoftToken = JsonToken.PropertyName;
                    value = this.jsonReader.GetStringValue().ToString();
                    break;

                case JsonTokenType.Int8:
                    newtonsoftToken = JsonToken.Integer;
                    value = this.jsonReader.GetInt8Value();
                    break;

                case JsonTokenType.Int16:
                    newtonsoftToken = JsonToken.Integer;
                    value = this.jsonReader.GetInt16Value();
                    break;

                case JsonTokenType.Int32:
                    newtonsoftToken = JsonToken.Integer;
                    value = this.jsonReader.GetInt32Value();
                    break;

                case JsonTokenType.Int64:
                    newtonsoftToken = JsonToken.Integer;
                    value = this.jsonReader.GetInt64Value();
                    break;

                case JsonTokenType.UInt32:
                    newtonsoftToken = JsonToken.Integer;
                    value = this.jsonReader.GetUInt32Value();
                    break;

                case JsonTokenType.Float32:
                    newtonsoftToken = JsonToken.Float;
                    value = this.jsonReader.GetFloat32Value();
                    break;

                case JsonTokenType.Float64:
                    newtonsoftToken = JsonToken.Float;
                    value = this.jsonReader.GetFloat64Value();
                    break;

                case JsonTokenType.Guid:
                    newtonsoftToken = JsonToken.String;
                    value = this.jsonReader.GetGuidValue().ToString();
                    break;

                case JsonTokenType.Binary:
                    newtonsoftToken = JsonToken.Bytes;
                    value = this.jsonReader.GetBinaryValue().ToArray();
                    break;

                default:
                    throw new ArgumentException($"Unexpected jsonTokenType: {jsonTokenType}");
            }

            this.SetToken(newtonsoftToken, value);
            return read;
        }