private static bool ConfirmReader()

in Microsoft.Shared.Dna.Json.Profile/JsonDna.cs [71:119]


        private static bool ConfirmReader(JsonParser reader, Stopwatch watch)
        {
            bool valid = true;
            bool parsed = false;
            bool outcome = false;
            bool asLogical = false;
            long asIntegral = 0L;
            double asFloating = 0D;
            string asText = null;
            while (valid && reader.Next())
            {
                parsed = true;
                switch (reader.TokenType)
                {
                    case JsonTokenType.Boolean:
                        outcome = reader.TryParseToken(out asLogical);
                        watch.Stop();
                        valid = valid && outcome && asLogical == Constants.LogicalValue;
                        watch.Start();
                        break;
                    case JsonTokenType.Integer:
                        outcome = reader.TryParseToken(out asIntegral);
                        watch.Stop();
                        valid = valid && outcome && asIntegral == Constants.IntegralValue;
                        watch.Start();
                        break;
                    case JsonTokenType.Float:
                        outcome = reader.TryParseToken(out asFloating);
                        watch.Stop();
                        valid = valid && outcome && asFloating == Constants.FloatValue;
                        watch.Start();
                        break;
                    case JsonTokenType.BeginProperty:
                        outcome = reader.TryParseToken(out asText);
                        watch.Stop();
                        valid = valid && outcome && Constants.AnyProperty.ContainsKey(asText);
                        watch.Start();
                        break;
                    case JsonTokenType.String:
                        outcome = reader.TryParseToken(out asText);
                        watch.Stop();
                        valid = valid && outcome && string.CompareOrdinal(asText, Constants.TextValue) == 0;
                        watch.Start();
                        break;
                }
            }

            return parsed && valid;
        }