private static void CreateModels([NotNull] NamespaceSymbol root, [NotNull] ModelContainer container) { foreach (var symbol in root.MemberTable.AllSymbols) { switch (symbol) { case ArraySymbol array: break; case BarrierSymbol barrier: container.Add( new BarrierModel(barrier)); break; case Deployment.SetSymbol deployment: container.Add( new DeploymentSetModel(deployment)); break; case Deployment.ScriptSymbol deployment: container.Add( new DeploymentScriptModel(deployment)); break; case Deployment.CurryingSymbol deployment: container.Add( new DeploymentCurryingModel(deployment)); break; case DeploymentRebootSymbol deployment: container.Add( new DeploymentRebootModel(deployment)); break; case Deployment.SelectSymbol deployment: container.Add( new DeploymentSelectModel(deployment)); break; case ExternalSymbol external: container.Add(external.GetExternalFields(container)); break; case TypeAliasSymbol type: break; case NamespaceSymbol nameSpace: break; case Platform.DefSymbol platform: container.Add(new PlatformModel(platform)); break; case Platform.SetSymbol platform: container.Add(new PlatformsSetModel(platform)); break; case Product.DefSymbol product: container.Add(new ProductModel(product)); break; case Product.SetSymbol product: container.Add(new ProductSetModel(product)); break; case ProductTypeSymbol productType: container.Add(new ProductTypeModel(productType)); break; case Scenario.DefSymbol scenario: container.Add(new ScenarioModel(scenario)); break; case Scenario.SetSymbol scenario: container.Add(new ScenarioSetModel(scenario)); break; case SuiteTypeSymbol suiteTypeSymbol: container.Add(new SuiteTypeModel(suiteTypeSymbol)); break; case Suite.DefSymbol suite: container.Add(new SuiteDefModel(suite)); break; case ModuleSymbol module: container.Add(new ModuleModel(module)); break; case TypeSymbol type: break; default: Logger.Warn( $"Unknown symbol {symbol.Name}{Constants.TabulationSymbol}{symbol.Kind}{Constants.TabulationSymbol}{symbol.GetType()}"); break; } } }