private static void MyAdHocTest() { SymbolIdCode sidc = new SymbolIdCode(); System.Diagnostics.Trace.WriteLine("SIDC=" + sidc); SymbolLookup symbolLookup = new SymbolLookup(); symbolLookup.Initialize(); if (!symbolLookup.Initialized) { System.Diagnostics.Trace.WriteLine("Fail"); } MilitarySymbol ms = symbolLookup.CreateSymbolByEntityName("Fighter/Bomber"); MilitarySymbolToGraphicLayersMaker.SetMilitarySymbolGraphicLayers(ref ms); System.Diagnostics.Trace.WriteLine("MilitarySymbol: " + ms); List <MilitarySymbol> matchingSymbols = symbolLookup.GetMilitarySymbols(SymbolSetType.Space); int matchCount = 0; foreach (MilitarySymbol matchSymbol in matchingSymbols) { matchCount++; System.Diagnostics.Trace.WriteLine("Match: " + matchCount + ", MilitarySymbol: " + matchSymbol);; } List <MilitarySymbol> matchingSymbols2 = symbolLookup.GetMilitarySymbols(SymbolSetType.Space, StandardIdentityAffiliationType.Friend, "Military"); matchCount = 0; foreach (MilitarySymbol matchSymbol in matchingSymbols2) { matchCount++; System.Diagnostics.Trace.WriteLine("Match: " + matchCount + ", MilitarySymbol: " + matchSymbol);; } List <string> matchingStrings = symbolLookup.GetDistinctEntries(SymbolSetType.Space); matchCount = 0; foreach (string distinctMatch in matchingStrings) { matchCount++; System.Diagnostics.Trace.WriteLine("Distinct Match: " + distinctMatch); } matchingStrings = symbolLookup.GetDistinctEntries(SymbolSetType.Air, "Military", "Fixed Wing"); matchCount = 0; foreach (string distinctMatch in matchingStrings) { matchCount++; System.Diagnostics.Trace.WriteLine("Distinct Match: " + distinctMatch); } matchingStrings = symbolLookup.GetDistinctModifierNames(SymbolSetType.Air, 1); matchCount = 0; foreach (string distinctMatch in matchingStrings) { matchCount++; System.Diagnostics.Trace.WriteLine("Modifiers: Distinct Match: " + distinctMatch); } string modifierName = "Government"; string modifierCode = symbolLookup.GetModifierCodeFromName(SymbolSetType.Air, 1, modifierName); }
/// <summary> /// This command line app, just returns types and values that it knows about /// first using reflection (if it is a type) & then by doing a look-up of the SymbolSet /// if its not a type /// </summary> static void Main(string[] args) { string typeToExportUpper = "LIST"; int argLength = args.Length; if (argLength == 0) { // TODO: if you just want to wire in a quick test uncomment: // MyAdHocTest(); // return; // Help: Console.WriteLine("Usage: ConsoleApp2525D.exe [Type -or- \"List\" -or- \"ALL\"]"); Console.WriteLine(" ConsoleApp2525D.exe [SymbolSet (Name or Code)]"); } else { typeToExportUpper = args[0].ToUpper(); if (!FORMAT_IS_STYLE_CSV) { Console.WriteLine("Looking for Type: " + typeToExportUpper); } } // HACK: MilitarySymbol.FormatTagsForStyleFiles = true; bool found = false; if (!FORMAT_IS_STYLE_CSV) // don't do for Style Export { Assembly myAssembly = Assembly.GetExecutingAssembly(); foreach (Type type in myAssembly.GetTypes()) { if (!type.IsEnum) { continue; } string typeName = type.Name; string typeNameUpper = typeName.ToUpper(); if (typeToExportUpper == "LIST") { Console.WriteLine("Type: " + typeName); found = true; } if (typeToExportUpper.Equals("ALL") || typeNameUpper.Contains(typeToExportUpper)) { Console.WriteLine(Environment.NewLine + "Found Type: " + typeNameUpper); found = true; List <Enum> enums = TypeUtilities.EnumHelper.getEnumValues(type); foreach (Enum en in enums) { string enumString = en.ToString(); int hashCode = en.GetHashCode(); Console.WriteLine(enumString + "," + hashCode); } } // end if } // end foreach // if found, we are done, if not check for a symbol set query if (found && (!typeToExportUpper.Equals("ALL"))) { return; } } string symbolSetUpper = typeToExportUpper; if (!FORMAT_IS_STYLE_CSV) { Console.WriteLine("Type not found, looking for SymbolSet: " + symbolSetUpper); } SymbolLookup symbolLookup = new SymbolLookup(); symbolLookup.Initialize(); if (!symbolLookup.Initialized) // should not happen, but you never know { System.Diagnostics.Trace.WriteLine("Failed to initialize symbol list, exiting..."); return; } SymbolSetType symbolSet = SymbolSetType.NotSet; // find the symbol set selected List <Enum> symbolSetEnums = TypeUtilities.EnumHelper.getEnumValues(typeof(SymbolSetType)); foreach (Enum en in symbolSetEnums) { string enumStringUpper = en.ToString().ToUpper(); int hashCode = en.GetHashCode(); string hashCodeString = Convert.ToString(hashCode); if (hashCodeString.Length < 2) { hashCodeString = hashCodeString.PadLeft(2, '0'); } // Mildly confusing but allow either the name or the Number if (symbolSetUpper.Equals("ALL") || enumStringUpper.Contains(symbolSetUpper) || hashCodeString.Equals(symbolSetUpper)) { symbolSet = (SymbolSetType)en; if (FORMAT_IS_STYLE_CSV) { ListSymbolSetAsStyleCsv(symbolLookup, symbolSet); } else { ListSymbolSetSimple(symbolLookup, symbolSet); } } } if (symbolSet == SymbolSetType.NotSet) { Console.WriteLine("Warning: SymbolSet not found: " + symbolSetUpper); } }