示例#1
0
        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);
        }
示例#2
0
        /// <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);
            }
        }