private static void VerifyTagUsage()

in code/tools/TemplateValidator/TemplateJsonVerifier.cs [172:301]


        private static void VerifyTagUsage(ValidationTemplateInfo template, List<string> results)
        {
            foreach (var tag in template.TemplateTags)
            {
                switch (tag.Key)
                {
                    case "language":
                        VerifyLanguageTagValue(tag, results);
                        break;
                    case "type":
                        VerifyTypeTagValue(tag, results);
                        break;
                    case "wts.type":
                        VerifyWtsTypeTagValue(tag, results);
                        VerifyWtsTypeFeatureMultipleInstancesRule(tag, template, results);
                        break;
                    case "wts.order":
                        VerifyWtsOrderTagValue(results);
                        break;
                    case "wts.displayOrder":
                        VerifyWtsDisplayOrderTagValue(tag, results);
                        break;
                    case "wts.compositionOrder":
                        VerifyWtsCompositionOrderTagValue(tag, results);
                        break;
                    case "wts.frontendframework":
                    case "wts.backendframework":
                        VerifyWtsFrameworkTagValue(tag, results);
                        break;
                    case "wts.projecttype":
                        VerifyWtsProjecttypeTagValue(tag, results);
                        break;
                    case "wts.platform":
                        VerifyPlatformTagValue(tag, results);
                        break;
                    case "wts.version":
                        VerifyWtsVersionTagValue(tag, results);
                        break;
                    case "wts.genGroup":
                        VerifyWtsGengroupTagValue(tag, results);
                        break;
                    case "wts.rightClickEnabled":
                        VerifyWtsRightclickenabledTagValue(tag, results);
                        break;
                    case "wts.compositionFilter":
                        VerifyWtsCompositionFilterTagValue(tag, results);
                        VerifyWtsCompositionFilterLogic(template, tag, results);
                        break;
                    case "wts.licenses":
                        VerifyWtsLicensesTagValue(tag, results);
                        break;
                    case "wts.group":
                        VerifyWtsGroupTagValue(tag, results);
                        break;
                    case "wts.multipleInstance":
                        VerifyWtsMultipleinstanceTagValue(tag, results);
                        break;
                    case "wts.dependencies":
                        // This value is checked with the TemplateFolderVerifier
                        break;
                    case "wts.requirements":
                        // This value is checked with the TemplateFolderVerifier
                        break;
                    case "wts.exclusions":
                    // This value is checked with the TemplateFolderVerifier
                    case "wts.defaultInstance":
                        VerifyWtsDefaultinstanceTagValue(tag, results);
                        break;
                    case "wts.isHidden":
                        VerifyWtsIshiddenTagValue(tag, results);
                        break;
                    case "wts.isGroupExclusiveSelection":
                        VerifyWtsWtsIsGroupExclusiveSelectionTagValue(tag, results);
                        break;
                    case "wts.telemName":
                        VerifyWtsTelemNameTagValue(tag, results);
                        break;
                    case "wts.outputToParent":
                        VerifyWtsOutputToParentTagValue(tag, results);
                        break;
                    case "wts.requiredVsWorkload":
                        VerifyRequiredVsWorkloadTagValue(tag, results);
                        break;
                    case "wts.requiredSdks":
                        VerifyRequiredSdkTagValue(results);
                        break;
                    case "wts.requiredVersions":
                        VerifyRequiredVersionsTagValue(tag, results);
                        break;
                    case "wts.export.baseclass":
                        VerifyWtsExportBaseclassTagValue(tag, results);
                        break;
                    case "wts.export.setter":
                        VerifyWtsExportSetterTagValue(tag, results);
                        break;
                    case "wts.export.configtype":
                        VerifyWtsExportConfigTypeTagValue(tag, results);
                        break;
                    case "wts.export.configvalue":
                        VerifyWtsExportConfigValueTagValue(tag, results);
                        break;
                    case "wts.export.commandclass":
                        VerifyWtsExportCommandClassTagValue(tag, results);
                        break;
                    case "wts.export.pagetype":
                        VerifyWtsExportPageTypeTagValue(tag, results);
                        break;
                    case "wts.export.canExecuteChangedMethodName":
                        VerifyWtsExportCanExecuteChangedMethodNameTagValue(tag, results);
                        break;
                    case "wts.export.onNavigatedToParams":
                        VerifyWtsExportOnNavigatedToParamsTagValue(tag, results);
                        break;
                    case "wts.export.onNavigatedFromParams":
                        VerifyWtsExportOnNavigatedFromParamsTagValue(tag, results);
                        break;
                    case "wts.appmodel":
                        VerifyWtsAppModelTagValue(tag, results);
                        break;
                    default:
                        results.Add($"Unknown tag '{tag.Key}' specified in the file.");
                        break;
                }
            }

            if (template.TemplateTags.ContainsKey("language") && template.TemplateTags.ContainsKey("wts.frontendframework"))
            {
                VerifyFrameworksAreAppropriateForLanguage(template.TemplateTags["language"], template.TemplateTags["wts.frontendframework"], results);
            }
        }