internal void SortClass(TagTestItem setup, CodeIteratorMapping cust)
        {
            //Discarded unreachable code: IL_0002
            //IL_0003: Incompatible stack heights: 0 vs 1
            ContextClientBridge.RunClient(setup, "r");
            IdentifierClientBridge identifierClientBridge = setup as IdentifierClientBridge;
            ConfigurationIssuer    configurationIssuer    = this;

            do
            {
                WatcherIssuer watcherIssuer = configurationIssuer as WatcherIssuer;
                if (watcherIssuer != null && watcherIssuer._0004() != null)
                {
                    if (configurationIssuer == this)
                    {
                        break;
                    }
                    configurationIssuer = ((ParserFilterResolver)configurationIssuer)._0001();
                }
                switch (setup._0001())
                {
                case WatcherComposer.StartArray:
                {
                    InstanceClassDispatcher instanceClassDispatcher = new InstanceClassDispatcher();
                    instanceClassDispatcher.TestClass(identifierClientBridge, cust);
                    configurationIssuer.Add(instanceClassDispatcher);
                    configurationIssuer = instanceClassDispatcher;
                    break;
                }

                case WatcherComposer.EndArray:
                    if (configurationIssuer == this)
                    {
                        return;
                    }
                    configurationIssuer = ((ParserFilterResolver)configurationIssuer)._0001();
                    break;

                case WatcherComposer.StartObject:
                {
                    DecoratorReaderMapper decoratorReaderMapper = new DecoratorReaderMapper();
                    decoratorReaderMapper.TestClass(identifierClientBridge, cust);
                    configurationIssuer.Add(decoratorReaderMapper);
                    configurationIssuer = decoratorReaderMapper;
                    break;
                }

                case WatcherComposer.EndObject:
                    if (configurationIssuer == this)
                    {
                        return;
                    }
                    configurationIssuer = ((ParserFilterResolver)configurationIssuer)._0001();
                    break;

                case WatcherComposer.StartConstructor:
                {
                    IndexerReaderMapper indexerReaderMapper = new IndexerReaderMapper(setup._0001().ToString());
                    indexerReaderMapper.TestClass(identifierClientBridge, cust);
                    configurationIssuer.Add(indexerReaderMapper);
                    configurationIssuer = indexerReaderMapper;
                    break;
                }

                case WatcherComposer.EndConstructor:
                    if (configurationIssuer == this)
                    {
                        return;
                    }
                    configurationIssuer = ((ParserFilterResolver)configurationIssuer)._0001();
                    break;

                case WatcherComposer.Integer:
                case WatcherComposer.Float:
                case WatcherComposer.String:
                case WatcherComposer.Boolean:
                case WatcherComposer.Date:
                case WatcherComposer.Bytes:
                {
                    PoolIssuer poolIssuer = new PoolIssuer(setup._0001());
                    poolIssuer.TestClass(identifierClientBridge, cust);
                    configurationIssuer.Add(poolIssuer);
                    break;
                }

                case WatcherComposer.Comment:
                    if (cust != null && cust._0001() == (XlOLEVerb)1)
                    {
                        PoolIssuer poolIssuer = PoolIssuer.LogoutRequest(setup._0001().ToString());
                        poolIssuer.TestClass(identifierClientBridge, cust);
                        configurationIssuer.Add(poolIssuer);
                    }
                    break;

                case WatcherComposer.Null:
                {
                    PoolIssuer poolIssuer = PoolIssuer.VisitRequest();
                    poolIssuer.TestClass(identifierClientBridge, cust);
                    configurationIssuer.Add(poolIssuer);
                    break;
                }

                case WatcherComposer.Undefined:
                {
                    PoolIssuer poolIssuer = PoolIssuer.ViewRequest();
                    poolIssuer.TestClass(identifierClientBridge, cust);
                    configurationIssuer.Add(poolIssuer);
                    break;
                }

                case WatcherComposer.PropertyName:
                {
                    WatcherIssuer watcherIssuer2 = CallClass(setup, cust, identifierClientBridge, configurationIssuer);
                    if (watcherIssuer2 != null)
                    {
                        configurationIssuer = watcherIssuer2;
                    }
                    else
                    {
                        setup.AssetError();
                    }
                    break;
                }

                default:
                    throw new InvalidOperationException("The JsonReader should not be on a token of type {0}.".ListReader(CultureInfo.InvariantCulture, setup._0001()));

                case WatcherComposer.None:
                    break;
                }
            }while (setup._0001());
        }
예제 #2
0
        public override object _0001(TagTestItem ident, Type b, object field, PrototypeError config2)
        {
            //Discarded unreachable code: IL_0002
            //IL_0003: Incompatible stack heights: 0 vs 1
            if (ident._0001() == WatcherComposer.Null)
            {
                return(null);
            }
            FactoryDicCandidate factoryDicCandidate = null;
            string text = null;
            InstanceClassDispatcher instanceClassDispatcher = null;

            ident.SortError();
            while (ident._0001() == WatcherComposer.PropertyName)
            {
                string text2 = ident._0001().ToString();
                if (string.Equals(text2, "Case", StringComparison.OrdinalIgnoreCase))
                {
                    ident.SortError();
                    UtilsClientBridge utilsClientBridge = m_ParameterIssuer.InitReader(b);
                    text = ident._0001().ToString();
                    factoryDicCandidate = utilsClientBridge.m_StatusIssuer.SingleOrDefault((FactoryDicCandidate P_0) => P_0._HelperIssuer == text);
                    if (factoryDicCandidate == null)
                    {
                        throw StrategyError.PatchComposer(ident, "No union type found with the name '{0}'.".ListReader(CultureInfo.InvariantCulture, text));
                    }
                }
                else
                {
                    if (!string.Equals(text2, "Fields", StringComparison.OrdinalIgnoreCase))
                    {
                        throw StrategyError.PatchComposer(ident, "Unexpected property '{0}' found when reading union.".ListReader(CultureInfo.InvariantCulture, text2));
                    }
                    ident.SortError();
                    if (ident._0001() != WatcherComposer.StartArray)
                    {
                        throw StrategyError.PatchComposer(ident, "Union fields must been an array.");
                    }
                    instanceClassDispatcher = (InstanceClassDispatcher)ParserFilterResolver.SelectClass(ident);
                }
                ident.SortError();
            }
            if (factoryDicCandidate == null)
            {
                throw StrategyError.PatchComposer(ident, "No '{0}' property with union name found.".ListReader(CultureInfo.InvariantCulture, "Case"));
            }
            object[] array = new object[factoryDicCandidate.exceptionIssuer.Length];
            if (factoryDicCandidate.exceptionIssuer.Length != 0 && instanceClassDispatcher == null)
            {
                throw StrategyError.PatchComposer(ident, "No '{0}' property with union fields found.".ListReader(CultureInfo.InvariantCulture, "Fields"));
            }
            if (instanceClassDispatcher != null)
            {
                if (factoryDicCandidate.exceptionIssuer.Length != instanceClassDispatcher.get_Count())
                {
                    throw StrategyError.PatchComposer(ident, "The number of field values does not match the number of properties defined by union '{0}'.".ListReader(CultureInfo.InvariantCulture, text));
                }
                for (int i = 0; i < instanceClassDispatcher.get_Count(); i++)
                {
                    ParserFilterResolver parserFilterResolver = instanceClassDispatcher[i];
                    PropertyInfo         propertyInfo         = factoryDicCandidate.exceptionIssuer[i];
                    array[i] = parserFilterResolver.ListClass(propertyInfo.PropertyType, config2);
                }
            }
            object[] task = new object[1]
            {
                array
            };
            return(factoryDicCandidate.m_DatabaseIssuer.ConnectIssuer(task));
        }