public static Support.YCurrencyID YCurrencyIDFromString(string id)
        {
            string idStr = id.ToUpper();

            System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("[A-Z][A-Z][A-Z][A-Z][A-Z][A-Z]=X");
            if (idStr.Length == 8 && regex.Match(idStr).Success)
            {
                Support.CurrencyInfo b   = null;
                Support.CurrencyInfo dep = null;
                string baseStr           = idStr.Substring(0, 3);
                string depStr            = idStr.Substring(3, 3);
                foreach (Support.CurrencyInfo cur in Support.WorldMarket.DefaultCurrencies)
                {
                    if (baseStr == cur.ID)
                    {
                        b = new Support.CurrencyInfo(cur.ID, cur.Description);
                    }
                    else if (depStr == cur.ID)
                    {
                        dep = new Support.CurrencyInfo(cur.ID, cur.Description);
                    }
                    if (b != null & dep != null)
                    {
                        return(new Support.YCurrencyID(b, dep));
                    }
                }

                return(null);
            }
            else
            {
                return(null);
            }
        }
예제 #2
0
        /// <summary>
        /// Loads as list of default countries from market.xml
        /// </summary>
        /// <returns></returns>
        /// <remarks></remarks>
        public static CountryInfo[] GetDefaultCountries()
        {
            List <CountryInfo> countries = new List <CountryInfo>();

            XDocument xmlDoc = MyHelper.ParseXmlDocument(Properties.Resources.market);

            XElement[] cntNodes = XPath.GetElements("//Resources/Countries/Country", xmlDoc);
            System.Globalization.CultureInfo convCulture = new System.Globalization.CultureInfo("en-US");

            foreach (XElement cntNode in cntNodes)
            {
                for (Country cnt = 0; cnt <= Country.VN; cnt++)
                {
                    if (cnt.ToString() == MyHelper.GetXmlAttributeValue(cntNode, "ID"))
                    {
                        CurrencyInfo cntCur = null;
                        string       curID  = MyHelper.GetXmlAttributeValue(cntNode, "Currency");
                        foreach (CurrencyInfo cur in DefaultCurrencies)
                        {
                            if (cur.ID.ToString() == curID)
                            {
                                cntCur = cur;
                                break;
                            }
                        }

                        XElement dstNodes = XPath.GetElement("DaylightSavingTimes", cntNode);
                        List <DaylightSavingTime> dstList = new List <DaylightSavingTime>();
                        foreach (XElement dstNode in dstNodes.Elements())
                        {
                            if (dstNode.Name.LocalName == "DST")
                            {
                                DateTime dstStart = Convert.ToDateTime(MyHelper.GetXmlAttributeValue(dstNode, "Start"), convCulture);
                                DateTime dstEnd   = Convert.ToDateTime(MyHelper.GetXmlAttributeValue(dstNode, "End"), convCulture);
                                dstList.Add(new DaylightSavingTime(dstStart, dstEnd));
                            }
                        }
                        countries.Add(new CountryInfo(cnt, MyHelper.GetXmlAttributeValue(cntNode, "Name"), cntCur, dstList.ToArray()));
                        break;
                    }
                }
            }
            return(countries.ToArray());
        }
예제 #3
0
 /// <summary>
 /// Converts as value of a currency to the ratio value of another currency
 /// </summary>
 /// <param name="value"></param>
 /// <param name="currencyOfValue"></param>
 /// <param name="returnCurrency"></param>
 /// <returns></returns>
 /// <remarks>Returns 0, if the dependency value of one of both currencies is not in the list</remarks>
 public double ConvertCurrency(double value, CurrencyInfo currencyOfValue, CurrencyInfo returnCurrency)
 {
     try
     {
         if (currencyOfValue.ID != returnCurrency.ID)
         {
             double fromRatio = 0;
             double toRatio   = 0;
             foreach (ExchangeRateData eiFrom in mExchangeItems)
             {
                 if (eiFrom.CurrencyRelation.DepCurrency.ID == currencyOfValue.ID)
                 {
                     fromRatio = eiFrom.DependencyValue;
                     foreach (ExchangeRateData eiTo in mExchangeItems)
                     {
                         if (eiTo.CurrencyRelation.DepCurrency.ID == returnCurrency.ID)
                         {
                             toRatio = eiTo.DependencyValue;
                             break;
                         }
                     }
                     break;
                 }
             }
             if (fromRatio != 0 & toRatio != 0)
             {
                 return(value / fromRatio * toRatio);
             }
         }
         else
         {
             return(value);
         }
     }
     catch (Exception ex)
     {
     }
     return(0);
 }
예제 #4
0
 /// <summary>
 /// Overloaded constructor
 /// </summary>
 /// <param name="baseCur">The currency with the ratio value of 1</param>
 /// <param name="cur">The currency of the dependent value</param>
 /// <remarks></remarks>
 public ExchangeRateData(CurrencyInfo baseCur, CurrencyInfo cur)
 {
     mCurrencyRelation.BaseCurrency = baseCur;
     mCurrencyRelation.DepCurrency  = cur;
     base.SetID(mCurrencyRelation.ID);
 }
예제 #5
0
 /// <summary>
 /// Overloaded constructor
 /// </summary>
 /// <param name="baseCur"></param>
 /// <param name="depCur"></param>
 /// <remarks></remarks>
 public YCurrencyID(CurrencyInfo baseCur, CurrencyInfo depCur)
 {
     this.BaseCurrency = baseCur;
     this.DepCurrency  = depCur;
 }
예제 #6
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <remarks></remarks>
 public YCurrencyID()
 {
     mBaseCurrency = null;
     mDepCurrency  = null;
 }
예제 #7
0
 public CountryInfo(Country id, string name, CurrencyInfo cur)
 {
     mID       = id;
     mName     = name;
     mCurrency = cur;
 }