Beispiel #1
0
        /// <summary>
        /// adds a new commodity the the dictionary
        /// </summary>
        /// <param name="commodity"></param>
        /// <param name="language"></param>
        private void addCommodity(string commodity, enLanguage language)
        {
            dsCommodities                ownCommodities = new dsCommodities();

            if(File.Exists(@".\Data\Commodities_own.xml"))
                ownCommodities.ReadXml(@".\Data\Commodities_own.xml");

            dsCommodities.NamesRow newCommodity     = (dsCommodities.NamesRow)_commodities.Names.NewRow();
            dsCommodities.NamesRow newOwnCommodity  = (dsCommodities.NamesRow)ownCommodities.Names.NewRow();

            foreach (enLanguage availableLanguage in Enum.GetValues(typeof(enLanguage)))
                newOwnCommodity[availableLanguage.ToString()] = Program.COMMODITY_NOT_SET;

            newOwnCommodity[language.ToString()] = commodity;

            foreach (enLanguage availableLanguage in Enum.GetValues(typeof(enLanguage)))
                newCommodity[availableLanguage.ToString()] = newOwnCommodity[availableLanguage.ToString()];

            // add to both dictionaries
            ownCommodities.Names.AddNamesRow(newOwnCommodity);
            _commodities.Names.AddNamesRow(newCommodity);

            // save to "own" file
            ownCommodities.WriteXml(@".\Data\Commodities_own_new.xml");
            FileSaver.rotateSaveFiles(@".\Data\Commodities_own.xml");

            // reload in working array
            loadCommodities(RegulatedNoiseSettings.Language);
        }
Beispiel #2
0
        /// <summary>
        /// prepares the commoditylevels in the correct language
        /// </summary>
        /// <param name="Language"></param>
        private void loadCommodityLevels(enLanguage Language)
        {
            dsCommodities.LevelsRow[] Level;

            CommodityLevel.Clear();

            for (int i = 0; i <= 2; i++)
            {
                if (i == 0)
                    Level = (dsCommodities.LevelsRow[])_commodities.Levels.Select("ID=" + (byte)enCommodityLevel.LOW);

                else if (i == 1)
                    Level = (dsCommodities.LevelsRow[])_commodities.Levels.Select("ID=" + (byte)enCommodityLevel.MED);

                else
                    Level = (dsCommodities.LevelsRow[])_commodities.Levels.Select("ID=" + (byte)enCommodityLevel.HIGH);

                if (Language == enLanguage.eng)
                    CommodityLevel.Add(Level[0].ID, Level[0].eng);

                else if (Language == enLanguage.ger)
                    CommodityLevel.Add(Level[0].ID, Level[0].ger);

                else
                    CommodityLevel.Add(Level[0].ID, Level[0].fra);

            }

        }
Beispiel #3
0
        /// <summary>
        /// prepares the commodities in the correct language
        /// </summary>
        /// <param name="Language"></param>
        public string getLocalizedCommodity(enLanguage Language, string CommodityName)
        {
            string BaseName = String.Empty;

            List<dsCommodities.NamesRow> currentCommodity = _commodities.Names.Where(x => ((x.eng.Equals(CommodityName, StringComparison.InvariantCultureIgnoreCase)) ||
                                                                                           (x.ger.Equals(CommodityName, StringComparison.InvariantCultureIgnoreCase)) ||
                                                                                           (x.fra.Equals(CommodityName, StringComparison.InvariantCultureIgnoreCase)))).ToList();

            if (currentCommodity.Count() > 0)
            {
                switch (Language)
                {
                    case enLanguage.eng:
                        BaseName = currentCommodity[0].eng;
                        break;
                    case enLanguage.ger:
                        BaseName = currentCommodity[0].ger;
                        break;
                    case enLanguage.fra:
                        BaseName = currentCommodity[0].fra;
                        break;
                }

            }

            return BaseName;

        }
Beispiel #4
0
        /// <summary>
        /// prepares the commodities in the correct language
        /// </summary>
        /// <param name="Language"></param>
        public string getCommodityBasename(enLanguage Language, string CommodityName)
        {
            string BaseName                             = Program.COMMODITY_NOT_SET;
            dsCommodities.NamesRow[] currentCommodity   = null;

            switch (Language)
            {
                case enLanguage.eng:
                    currentCommodity = (dsCommodities.NamesRow[])(_commodities.Names.Select("eng='" + EscapeLikeValue(CommodityName) + "'"));
                    break;
                case enLanguage.ger:
                    currentCommodity = (dsCommodities.NamesRow[])(_commodities.Names.Select("ger='" + EscapeLikeValue(CommodityName) + "'"));
                    break;
                case enLanguage.fra:
                    currentCommodity = (dsCommodities.NamesRow[])(_commodities.Names.Select("fra='" + EscapeLikeValue(CommodityName) + "'"));
                    break;
            }
            
            if (currentCommodity.Count() > 0)
                BaseName = currentCommodity[0].eng;

            return BaseName;

        }
Beispiel #5
0
        /// <summary>
        /// prepares the commodities in the correct language
        /// </summary>
        /// <param name="Language"></param>
        private void loadCommodities(enLanguage Language)
        {
            KnownCommodityNames.Clear();

            foreach (dsCommodities.NamesRow currentCommodity in _commodities.Names)
                KnownCommodityNames.Add(currentCommodity[Enum.GetName(typeof(enLanguage), Language)].ToString());

        }
Beispiel #6
0
        /// <summary>
        /// adds objects for not yet existing localized commodities
        /// </summary>
        internal void addLocalized2RN(dsCommodities.NamesDataTable localizedCommodities)
        {
            EDCommoditiesExt EDCommodity   = null;
            enLanguage       foundLanguage = enLanguage.eng;
            bool             changed       = false;

            foreach (dsCommodities.NamesRow localizedItem in localizedCommodities)
            {
                // look if the name is available at least in one language
                foreach (enLanguage availableLanguage in Enum.GetValues(typeof(enLanguage)))
                {
                    foundLanguage = availableLanguage;
                    EDCommodity   = m_Commodities.Find(x => x.Name.Equals(localizedItem[availableLanguage.ToString()].ToString(), StringComparison.InvariantCultureIgnoreCase));
                    if (EDCommodity != null)
                    {
                        break;
                    }
                }

                if (EDCommodity != null)
                {
                    // found
                    if ((foundLanguage != enLanguage.eng) && (localizedItem.eng != Program.COMMODITY_NOT_SET))
                    {
                        // it's not the base(=english) name, but the base(=english) name is available -> change this
                        EDCommodity.Name = localizedItem.eng;
                        changed          = true;
                    }
                }
                else
                {
                    // not found, add it with the available
                    EDCommodity      = new EDCommoditiesExt();
                    EDCommodity.Name = localizedItem.eng;

                    if (EDCommodity.Name == Program.COMMODITY_NOT_SET)
                    {
                        // base(=english) name not available, get the next existing name
                        foreach (enLanguage availableLanguage in Enum.GetValues(typeof(enLanguage)))
                        {
                            if (localizedItem[availableLanguage.ToString()].ToString() != Program.COMMODITY_NOT_SET)
                            {
                                // got it -> break
                                EDCommodity.Name = localizedItem[availableLanguage.ToString()].ToString();
                                break;
                            }
                        }
                    }
                    EDCommodity.Id           = m_Commodities.Max(x => x.Id) + 1;
                    EDCommodity.AveragePrice = -1;

                    m_Commodities.Add(EDCommodity);

                    changed = true;
                }

                if (changed)
                {
                    saveRNCommodityData(@"./Data/commodities_RN.json", true);
                }
            }
        }