Пример #1
0
 /// <summary>
 /// Retrieve a integer setting from the config file.
 /// </summary>
 /// <param name="section">The section object</param>
 /// <param name="key">The value key</param>
 /// <returns>The required value.</returns>
 public static int GetIntegerSetting(
     SharpConfig.Section section,
     string key,
     int defaultValue = 0)
 {
     return(SectionHasKey(section, key) ? section[key].IntValue : defaultValue);
 }
Пример #2
0
 /// <summary>
 /// Retrieve a string setting from the config file.
 /// </summary>
 /// <param name="section">The section object</param>
 /// <param name="key">The value key</param>
 /// <returns><The required value./returns>
 public static string GetStringSetting(
     SharpConfig.Section section,
     string key,
     string defaultValue = "")
 {
     return(SectionHasKey(section, key) ? section[key].StringValue : defaultValue);
 }
Пример #3
0
 /// <summary>
 /// Retrieve a decimal setting from the config file.
 /// </summary>
 /// <param name="section">The section object</param>
 /// <param name="key">The value key</param>
 /// <returns>The required value.</returns>
 public static decimal GetDecimalSetting(
     SharpConfig.Section section,
     string key,
     decimal defaultValue = 0M)
 {
     return(SectionHasKey(section, key) ? section[key].DecimalValue : defaultValue);
 }
Пример #4
0
 /// <summary>
 /// Retrieve a boolean setting from the config file.
 /// </summary>
 /// <param name="section">The section object</param>
 /// <param name="key">The value key</param>
 /// <returns>The required value.</returns>
 public static bool GetBooleanSetting(
     SharpConfig.Section section,
     string key,
     bool defaultValue = false)
 {
     return(SectionHasKey(section, key) ? section[key].BoolValue : defaultValue);
 }
Пример #5
0
        public static bool SectionHasKey(
            SharpConfig.Section section,
            string key)
        {
            bool result = section.FirstOrDefault(x => x.Name == key) != null;

            return(result);
        }
Пример #6
0
        /// <summary>
        /// Get the ship name from the specified config section.
        /// </summary>
        /// <param name="sectionName">The name of the section contining the ship data.</param>
        /// <returns>The ship name.</returns>
        private string GetShipNameFromConfigSection(string sectionName)
        {
            SharpConfig.Configuration config = GetConfigurationObject();

            SharpConfig.Section configSection = config[sectionName];

            return(GetStringSetting(configSection, "shipName"));
        }
Пример #7
0
        public static void ReadConfigFile()
        {
            config  = SharpConfig.Configuration.LoadFromFile(configFile);
            section = config["config"];

            Template                   = section["Template"].StringValue;
            OutPutDir                  = section["OutPutDir"].StringValue;
            NameSpace                  = section["NameSpace"].StringValue;
            ClassSuffix                = section["ClassSuffix"].StringValue;
            FileType                   = section["FileType"].StringValue;
            FileEncoding               = section["FileEncoding"].StringValue;
            UnKnowDbType               = section["UnKnowDbType"].StringValue;
            TableComment               = section["TableComment"].BoolValue;
            ColumnComment              = section["ColumnComment"].BoolValue;
            SqlserverConnectionString  = section["SqlserverConnectionString"].StringValue;
            MysqlConnectionString      = section["MysqlConnectionString"].StringValue;
            SqliteConnectionString     = section["SqliteConnectionString"].StringValue;
            PostgresqlConnectionString = section["PostgresqlConnectionString"].StringValue;
            OracleConnectionString     = section["OracleConnectionString"].StringValue;

            XDocument doc = XDocument.Load(ApplicationPath + "Template\\DbTypeMap.xml");
            XElement  DbTypeMapElement = doc.Element("DbTypeMap");

            foreach (XElement element in DbTypeMapElement.Elements("Database")) //遍历数据库
            {
                string dbProvider = element.Attribute("DbProvider").Value;
                string language   = element.Attribute("Language").Value;
                string key        = dbProvider + language;

                List <DbTypeEntity> list;
                if (!DbTypeDictionary.ContainsKey(key))
                {
                    list = new List <DbTypeEntity>();
                    DbTypeDictionary[key] = list;
                }
                else
                {
                    list = DbTypeDictionary[key];
                }

                foreach (XElement el in element.Elements("DbType")) //遍历语言转换
                {
                    string       Name  = el.Attribute("Name").Value;
                    string       To    = el.Attribute("To").Value.Replace("&lt;", "<").Replace("&gt;", ">");
                    DbTypeEntity model = new DbTypeEntity();
                    model.Name = Name;
                    model.To   = To;
                    list.Add(model);
                }
            }
        }
 private string ReadStringFromSection(SharpConfig.Configuration Config, string Section, string Key, string DefaultValue)
 {
     if (Config[Section] != null)
     {
         SharpConfig.Section sec = Config[Section];
         if (sec[Key] != null)
         {
             //return sec[Key].StringValue + (sec[Key].Comment != null ? sec[Key].Comment.Value.Value.Trim() : "");
             return(sec[Key].StringValue + sec[Key].Comment); //(sec[Key].Comment != null ? sec[Key].Comment.Value.Value.Trim() : "");
         }
         else
         {
             return(DefaultValue);
         }
     }
     else
     {
         return(DefaultValue);
     }
 }
Пример #9
0
        /// <summary>
        /// Get a list of available ships from the settings.
        /// </summary>
        /// <returns>A list of available ships.</returns>
        public IList <ComboBoxItem> SetAvailableShips()
        {
            LoadInitialShipList();

            IList <ComboBoxItem> ships = new List <ComboBoxItem>();

            SharpConfig.Configuration config = GetConfigurationObject();

            foreach (string shipId in settingsRef
                     .AvailableShips
                     .Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries))
            {
                SharpConfig.Section configSection = config[shipId];

                ships.Add(new ComboBoxItem()
                {
                    Text  = GetStringSetting(configSection, "shipName"),
                    Value = shipId
                });
            }

            // Order the two sections separately.
            IList <ComboBoxItem> owned = ships
                                         .Where(x => x.Value.ToString().StartsWith("Ship ID"))
                                         .OrderBy(x => x.Text)
                                         .ToList();

            IList <ComboBoxItem> initial = ships
                                           .Where(x => x.Value.ToString().StartsWith("Default"))
                                           .OrderBy(x => x.Text)
                                           .ToList();

            ships = new List <ComboBoxItem>(owned.Concat(initial));

            return(ships);
        }
Пример #10
0
        /// <summary>
        /// Save the settings to the ini file.
        /// </summary>
        public static void SaveSettingsToIniFile()
        {
            SharpConfig.Configuration config = GetConfigurationObject();

            TDSettings settings = settingsRef;

            SharpConfig.Section configSection = config["App"];

            // Settgins used for trade route calculation.
            configSection["Age"].DecimalValue            = settings.Age;
            configSection["Avoid"].StringValue           = settings.Avoid ?? string.Empty;
            configSection["BlackMarket"].BoolValue       = settings.BlackMarket;
            configSection["Direct"].BoolValue            = settings.Direct;
            configSection["Demand"].DecimalValue         = settings.Demand;
            configSection["EndJumps"].DecimalValue       = settings.EndJumps;
            configSection["ExtraRunParams"].StringValue  = settings.ExtraRunParams ?? string.Empty;
            configSection["GPT"].DecimalValue            = settings.GPT;
            configSection["Hops"].DecimalValue           = settings.Hops;
            configSection["IncludeInsurance"].BoolValue  = settings.IncludeInsurance;
            configSection["Jumps"].DecimalValue          = settings.Jumps;
            configSection["Limit"].DecimalValue          = settings.Limit;
            configSection["Loop"].BoolValue              = settings.Loop;
            configSection["LoopInt"].DecimalValue        = settings.LoopInt;
            configSection["LSPenalty"].DecimalValue      = settings.LSPenalty;
            configSection["Margin"].DecimalValue         = settings.Margin;
            configSection["MarkedStations"].StringValue  = settings.MarkedStations ?? string.Empty;
            configSection["MaxGPT"].DecimalValue         = settings.MaxGPT;
            configSection["MaxLSDistance"].DecimalValue  = settings.MaxLSDistance;
            configSection["NumberOfRoutes"].DecimalValue = settings.NumberOfRoutes;
            configSection["Planetary"].StringValue       = settings.Planetary ?? string.Empty;
            configSection["PruneHops"].DecimalValue      = settings.PruneHops;
            configSection["PruneScore"].DecimalValue     = settings.PruneScore;
            configSection["Shorten"].BoolValue           = settings.Shorten;
            configSection["ShowJumps"].BoolValue         = settings.ShowJumps;
            configSection["ShowProgress"].BoolValue      = settings.ShowProgress;
            configSection["StartJumps"].DecimalValue     = settings.StartJumps;
            configSection["Stock"].DecimalValue          = settings.Stock;
            configSection["Summary"].BoolValue           = settings.Summary;
            configSection["Towards"].BoolValue           = settings.Towards;
            configSection["Unique"].BoolValue            = settings.Unique;
            configSection["Verbosity"].DecimalValue      = settings.Verbosity;
            configSection["Via"].StringValue             = settings.Via ?? string.Empty;

            // Commander settings
            configSection = config["Commander"];

            configSection["CmdrName"].StringValue         = settings.CmdrName ?? string.Empty;
            configSection["Credits"].DecimalValue         = settings.Credits;
            configSection["RebuyPercentage"].DecimalValue = settings.RebuyPercentage;

            // TD Helper system settings.
            configSection = config["System"];

            configSection["AvailableShips"].StringValue      = settings.AvailableShips ?? string.Empty;
            configSection["CopySystemToClipboard"].BoolValue = settings.CopySystemToClipboard;
            configSection["DisableNetLogs"].BoolValue        = settings.DisableNetLogs;
            configSection["DoNotUpdate"].BoolValue           = settings.DoNotUpdate;
            configSection["HasUpdated"].BoolValue            = settings.HasUpdated;
            configSection["ImportPath"].StringValue          = settings.ImportPath ?? string.Empty;
            configSection["LastUsedConfig"].StringValue      = settings.LastUsedConfig ?? string.Empty;
            configSection["Locale"].StringValue         = settings.Locale ?? string.Empty;
            configSection["LocationChild"].StringValue  = settings.LocationChild ?? string.Empty;
            configSection["LocationParent"].StringValue = settings.LocationParent ?? string.Empty;
            configSection["MiniModeOnTop"].BoolValue    = settings.MiniModeOnTop;
            configSection["NetLogPath"].StringValue     = settings.NetLogPath ?? string.Empty;
            configSection["PythonPath"].StringValue     = settings.PythonPath ?? string.Empty;
            configSection["Quiet"].BoolValue            = settings.Quiet;
            configSection["SizeChild"].StringValue      = settings.SizeChild ?? string.Empty;
            configSection["SizeParent"].StringValue     = settings.SizeParent ?? string.Empty;
            configSection["TDVersion"].StringValue      = settings.TDVersion ?? string.Empty;
            configSection["TestSystems"].BoolValue      = settings.TestSystems;
            configSection["TimeOut"].IntValue           = settings.TimeOut;
            configSection["TreeViewFont"].StringValue   = settings.TreeViewFont ?? string.Empty;
            configSection["UploadPath"].StringValue     = settings.UploadPath ?? string.Empty;

            configSection = config["EDDBlink"];

            configSection["SkipVend"].BoolValue = settings.SkipVend;
            configSection["Solo"].BoolValue     = settings.Solo;

            // Update the current ship if required.
            if (!string.IsNullOrEmpty(settings.LastUsedConfig))
            {
                string sectionName = settings.LastUsedConfig;

                bool hasSection = config.FirstOrDefault(x => x.Name == sectionName) != null;

                if (hasSection)
                {
                    if (config[sectionName]["Capacity"].DecimalValue != settings.Capacity)
                    {
                        config[sectionName]["Capacity"].DecimalValue = settings.Capacity;
                    }

                    if (config[sectionName]["LadenLY"].DecimalValue != settings.LadenLY)
                    {
                        config[sectionName]["LadenLY"].DecimalValue = settings.LadenLY;
                    }

                    if (config[sectionName]["Padsizes"].StringValue != settings.Padsizes)
                    {
                        config[sectionName]["Padsizes"].StringValue = settings.Padsizes;
                    }

                    if (config[sectionName]["UnladenLY"].DecimalValue != settings.UnladenLY)
                    {
                        config[sectionName]["UnladenLY"].DecimalValue = settings.UnladenLY;
                    }
                }
                else
                {
                    config[sectionName]["Capacity"].DecimalValue  = settings.Capacity;
                    config[sectionName]["LadenLY"].DecimalValue   = settings.LadenLY;
                    config[sectionName]["Padsizes"].StringValue   = settings.Padsizes;
                    config[sectionName]["UnladenLY"].DecimalValue = settings.UnladenLY;
                }
            }

            config.SaveToFile(configFile);
        }
Пример #11
0
        /// <summary>
        /// Load the setting from the inin file.
        /// </summary>
        public static void LoadSettingsFromIniFile()
        {
            if (CheckIfFileOpens(configFile))
            {
                SharpConfig.Configuration config = GetConfigurationObject();
                TDSettings settings = settingsRef;

                SharpConfig.Section configSection = config["App"];

                settings.Age              = GetDecimalSetting(configSection, "Age");
                settings.Avoid            = GetStringSetting(configSection, "Avoid");
                settings.Demand           = GetDecimalSetting(configSection, "Demand");
                settings.EndJumps         = GetDecimalSetting(configSection, "EndJumps");
                settings.ExtraRunParams   = GetStringSetting(configSection, "ExtraRunParams");
                settings.GPT              = GetDecimalSetting(configSection, "GPT");
                settings.Hops             = GetDecimalSetting(configSection, "Hops");
                settings.IncludeInsurance = GetBooleanSetting(configSection, "IncludeInsurance", true);
                settings.Jumps            = GetDecimalSetting(configSection, "Jumps");
                settings.Limit            = GetDecimalSetting(configSection, "Limit");
                settings.Loop             = GetBooleanSetting(configSection, "Loop");
                settings.LoopInt          = GetDecimalSetting(configSection, "LoopInt");
                settings.LSPenalty        = GetDecimalSetting(configSection, "LSPenalty", 12.5M);
                settings.Margin           = GetDecimalSetting(configSection, "Margin");
                settings.MarkedStations   = GetStringSetting(configSection, "MarkedStations");
                settings.MaxGPT           = GetDecimalSetting(configSection, "MaxGPT");
                settings.MaxLSDistance    = GetDecimalSetting(configSection, "MaxLSDistance");
                settings.Planetary        = GetStringSetting(configSection, "Planetary");
                settings.PruneHops        = GetDecimalSetting(configSection, "PruneHops");
                settings.PruneScore       = GetDecimalSetting(configSection, "PruneScore");
                settings.NumberOfRoutes   = GetDecimalSetting(configSection, "NumberOfRoutes");
                settings.ShowJumps        = GetBooleanSetting(configSection, "ShowJumps");
                settings.ShowProgress     = GetBooleanSetting(configSection, "ShowProgress");
                settings.StartJumps       = GetDecimalSetting(configSection, "startJumps");
                settings.Stock            = GetDecimalSetting(configSection, "Stock");
                settings.Summary          = GetBooleanSetting(configSection, "Summary");
                settings.Towards          = GetBooleanSetting(configSection, "Towards");
                settings.Unique           = GetBooleanSetting(configSection, "Unique");
                settings.Verbosity        = GetDecimalSetting(configSection, "Verbosity");
                settings.Via              = GetStringSetting(configSection, "Via");

                // Commander settings
                configSection = config["Commander"];

                settings.CmdrName        = GetStringSetting(configSection, "CmdrName");
                settings.Credits         = GetDecimalSetting(configSection, "Credits", 100M);
                settings.RebuyPercentage = GetDecimalSetting(configSection, "RebuyPercentage");

                // TD Helper system settings.
                configSection = config["System"];

                settings.AvailableShips        = GetStringSetting(configSection, "AvailableShips");
                settings.CopySystemToClipboard = GetBooleanSetting(configSection, "CopySystemToClipboard");
                settings.DisableNetLogs        = GetBooleanSetting(configSection, "DisableNetLogs");
                settings.DoNotUpdate           = GetBooleanSetting(configSection, "DoNotUpdate");
                settings.HasUpdated            = GetBooleanSetting(configSection, "HasUpdated");
                settings.ImportPath            = GetStringSetting(configSection, "ImportPath");
                settings.Locale         = GetStringSetting(configSection, "Locale");
                settings.LastUsedConfig = GetStringSetting(configSection, "LastUsedConfig");
                settings.LocationChild  = GetStringSetting(configSection, "LocationChild");
                settings.LocationParent = GetStringSetting(configSection, "LocationParent");
                settings.MiniModeOnTop  = GetBooleanSetting(configSection, "MiniModeOnTop");
                settings.NetLogPath     = GetStringSetting(configSection, "NetLogPath");
                settings.PythonPath     = GetStringSetting(configSection, "PythonPath");
                settings.Quiet          = GetBooleanSetting(configSection, "Quiet");
                settings.SizeChild      = GetStringSetting(configSection, "SizeChild");
                settings.SizeParent     = GetStringSetting(configSection, "SizeParent");
                settings.TDVersion      = GetStringSetting(configSection, "TDVersion");
                settings.TestSystems    = GetBooleanSetting(configSection, "TestSystems");
                settings.TimeOut        = GetIntegerSetting(configSection, "TimeOut");
                settings.TreeViewFont   = GetStringSetting(configSection, "TreeViewFont");
                settings.UploadPath     = GetStringSetting(configSection, "UploadPath");

                // EDDBlink settings
                configSection = config["EDDBlink"];

                settings.SkipVend = GetBooleanSetting(configSection, "SkipVend");
                settings.Solo     = GetBooleanSetting(configSection, "Solo");

                // Update settings if required.
                if (string.IsNullOrEmpty(settings.Locale))
                {
                    // Set the locale to British Engish.
                    settings.Locale = "en-gb";
                }
            }
        }