示例#1
0
        /// <summary>
        /// Parse and convert rate of BYR for selected, rateProvider (table above currency calculator) for the selected forign currency
        /// </summary>
        /// <param name="rateProvider">Provide from the currency rate table</param>
        /// <param name="foreginCurrency"></param>
        /// <returns></returns>
        private double GetBYRRate(RateProviderEnum rateProvider, string foreginCurrency)
        {           
            string strRate = "";            

            switch (rateProvider)
            {
                case RateProviderEnum.NBRB:
                    strRate = CurrencyRate.RateByNBRB.ToDictionary()[foreginCurrency];                    
                    break;   
            }

            double decRate = 0.0;
            if (double.TryParse(strRate, out decRate) == false)
            {
                throw new FormatException(string.Format("Rate provided by {0} couldn't be parsed as Decimal value, provided values is {1}", rateProvider.ToString(), strRate));
            }
                        
            return decRate;
        }
示例#2
0
        /// <summary>
        /// Calculate rate, given by corresponding rateProvider (table above currency calculator) for the selected currency pair
        /// </summary>
        /// <param name="rateProvider">Provide from the currency rate table</param>
        /// <param name="currencyFrom">Currency name From</param>
        /// <param name="currencyTo">Currency name To</param>
        /// <returns>Parsed & converted value of the rate</returns>
        public double GetRate(RateProviderEnum rateProvider, string currencyFrom, string currencyTo)
        {            
            if (currencyFrom == currencyTo)
            {
                return 1;
            }
            else if (currencyFrom != "BYR" && currencyTo != "BYR")
            {
                throw new NotImplementedException(String.Format("Cross-currency checks not implemented. CurrencyFrom, or currencyTo should be equal 'BYR'. CurrencyFrom={0}, currencyTo{1}", currencyFrom, currencyTo));
            }
            else if (currencyFrom == "BYR")
            {
                return 1 / GetBYRRate(rateProvider, currencyTo);                    
            }
            else if (currencyTo == "BYR")
            {
                return GetBYRRate(rateProvider, currencyFrom);
            }

            return 0;
        }