public static void Main(string[] args) { string workingDir = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); if (args.Any(a => a.ToLowerInvariant().StartsWith("-help") || a.ToLowerInvariant().StartsWith("-?"))) { // Print help Console.WriteLine("Call program with one or more paths to json configs and/or xml unit designs."); Console.WriteLine("{0} <\\path\\to\\foo.json> <\\path\\to\\bar.json> <\\path\\to\\design.xml> <\\path\\to\\otherDesign.xml>", "[ProgramName]"); // Exit early return; } var configBuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()); configBuilder.AddJsonFile(Path.Combine(workingDir, "appsettings.json"), true, true); foreach (var jsonConfig in args.Where(a => a.EndsWith(".json"))) { configBuilder.AddJsonFile(jsonConfig); } var config = configBuilder.Build(); string defaultUnitXML = Path.Combine(workingDir, config["Default_Unit_Xml"] ?? "DefaultUnit.xml"); string defaultEngineXML = Path.Combine(workingDir, config["Default_GameEngine_Xml"] ?? "DefaultGameEngine.xml"); var srcFilesFromArgs = args.Where(x => x.EndsWith(".xml")).ToArray(); var srcFilesFromConfig = config["srcFiles"] == null ? new string[0] : config["srcFiles"].Split(','); var srcDirsFromConfig = config["srcDirectories"] == null ? new string[0] : config["srcDirectories"].Split(','); var unitXMLFiles = DataLoadUtilities.GetXMLFileList(srcFilesFromArgs, srcFilesFromConfig, srcDirsFromConfig, defaultUnitXML); List <GameUnit> unitSet = DataLoadUtilities.LoadDesignXML(unitXMLFiles); // ... and list their stats foreach (var u in unitSet) { Console.WriteLine("\n{0} : \"{1}\"", u.ClassName, u.SourceFile); ConsoleReadoutUtilities.GenerateUnitReadout(u, unitSet).ForEach(l => Console.WriteLine(l)); } Console.WriteLine("{0} Unit(s) loaded and displayed successfully.", unitSet.Count); }
/// <summary> /// Occurs when this command is clicked /// </summary> public override void OnClick() { try { IMongoDbLoaderDlgVm dbDialog = UIUtils.GetLoaderVM(); ButtonInfo browseBtn; browseBtn.OnClick = () => { string result = UIUtils.BrowseToFile(null, "Connection File to MongoDB (.mongoconn)|*.mongoconn", false); if (String.IsNullOrEmpty(result)) { return; } string connInfoStr = ConnectionUtilities.DecodeConnFile(result); MongoDBConnInfo connInfo = ConnectionUtilities.ParseConnectionString(connInfoStr); dbDialog.DatabaseText = connInfo.DBName; dbDialog.ServerText = connInfo.Connection.ToString(); dbDialog.File = result; }; browseBtn.IsEnabled = null; dbDialog.SetBrowse(browseBtn); IGxObject ipSelectedItem = null; ButtonInfo browseToFC; browseToFC.OnClick = () => { IGxDialog ipBrowser = new GxDialog(); ipBrowser.ObjectFilter = (IGxObjectFilter) new GxFilterPointFeatureClasses(); ipBrowser.AllowMultiSelect = false; IEnumGxObject ipTempSelected; if (ipBrowser.DoModalOpen(0, out ipTempSelected)) { if (null != ipTempSelected) { ipSelectedItem = ipTempSelected.Next(); dbDialog.FCConn = ipSelectedItem.FullName; } } }; browseToFC.IsEnabled = null; dbDialog.SetSourceBrowse(browseToFC); ButtonInfo okBtn; okBtn.OnClick = (() => { if (ipSelectedItem == null) { return; } string connString = dbDialog.File; if (String.IsNullOrEmpty(connString)) { return; } dbDialog.Close(); IName ipSrcName = ipSelectedItem.InternalObjectName; IFeatureClass ipSrc = (IFeatureClass)ipSrcName.Open(); IEnvelope ipExtent = ((IGeoDataset)ipSrc).Extent; MongoDBWorkspacePluginFactory factory = new MongoDBWorkspacePluginFactory(); MongoDBWorkspace ws = factory.OpenMongoDBWorkspace(connString); MongoDBDataset target = ws.CreateDataset(ipSelectedItem.BaseName, DataLoadUtilities.GetCreatableFields(ipSrc.Fields), ipExtent); DataLoadUtilities.LoadData(ipSrc, target); }); okBtn.IsEnabled = null; dbDialog.SetOk(okBtn); ButtonInfo cancelBtn; cancelBtn.OnClick = () => { dbDialog.Close(); }; cancelBtn.IsEnabled = null; dbDialog.SetCancel(cancelBtn); UIUtils.DisplayLoaderDialog(dbDialog); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); } }