示例#1
0
 /// <summary>
 /// Получить массив информации обо всех поддерживаемых валютах.
 /// </summary>
 /// <returns>Массив информации обо всех поддерживаемых валютах.</returns>
 public static CurrencyInfo[] GetCurrencies()
 {
     var currencyInfoArray = new CurrencyInfo[CurrencyCodes.Count];
     var i = 0;
     foreach (var currencyCode in CurrencyCodes.Values)
     {
         currencyInfoArray[i] = new CurrencyInfo(currencyCode);
         i++;
     }
     return currencyInfoArray;
 }
 public static CurrencyInfoCell CellForInfo(CurrencyInfo info, UITableView tableView)
 {
     var cell = (CurrencyInfoCell)tableView.DequeueReusableCell(CellId) ?? new CurrencyInfoCell();
     cell.NameLabel.Text = info.Name;
     cell.CodeLabel.Text = info.Code;
     cell.RateLabel.Text = info.Rate.ToString("0.####");
     if (info.CountryCode != null)
     {
         cell.ImageView.Image = UIImage.FromFile(string.Format("Assets/Flags/{0}.png", info.CountryCode.ToLower()));
     }
     return cell;
 }
示例#3
0
 /// <summary>
 /// Получить курс обмена валют.
 /// </summary>
 /// <param name="from">Исходная валюта.</param>
 /// <param name="to">Информация о желаемой валюте.</param>
 /// <returns>Курс обмена выбранных валют.</returns>
 public static Rational GetExchangeRate(CurrencyInfo from, CurrencyInfo to)
 {
     return CurrencyRates[to.NumberCode] / CurrencyRates[from.NumberCode];
 }
示例#4
0
 /// <summary>
 /// Обменять валюту.
 /// </summary>
 /// <param name="from">Исходная валюта.</param>
 /// <param name="to">Информация о желаемой валюте.</param>
 /// <returns>Желаемая валюта.</returns>
 public static Currency Exchange(this Currency from, CurrencyInfo to)
 {
     var newAmount = from.Amount*GetExchangeRate(from.Info, to);
     return Currency.GetCurrency(to.NumberCode, newAmount);
 }
示例#5
0
 /// <summary>
 /// Установить новый курс обмена валют.
 /// </summary>
 /// <param name="info">Информация о валюте.</param>
 /// <param name="newRate">Курс валюты относительно usd.</param>
 public static void SetNewExchangeRate(CurrencyInfo info, Rational newRate)
 {
     CurrencyRates[info.NumberCode] = newRate;
 }
示例#6
0
 /// <summary>
 /// Установить наименьший номинал для валюты.
 /// </summary>
 /// <param name="info">Информация о валюте.</param>
 /// <param name="minNominal">Наименьший номинал выбранной валюты.</param>
 public static void SetMinCurrencyNominal(CurrencyInfo info, Rational minNominal)
 {
     RoundingOptions[info.NumberCode] = minNominal;
 }
示例#7
0
 /// <summary>
 /// Округление согласно наименьшему наминалу выбранной валюты.
 /// </summary>
 /// <param name="info">Информация о валюте.</param>
 /// <param name="amount">Количество валюты.</param>
 /// <returns>Округлённое количество валюты.</returns>
 public static Rational Round(CurrencyInfo info, Rational amount)
 {
     var minNominal = GetMinCurrencyNominal(info);
     var maxBanknoteNumber = (int)(amount/minNominal);
     return maxBanknoteNumber * minNominal;
 }
示例#8
0
 /// <summary>
 /// Получить наименьший номинал выбранной валюты.
 /// </summary>
 /// <param name="info">Информация о валюте.</param>
 /// <returns>Наименьший номинал выбранной валюты.</returns>
 public static Rational GetMinCurrencyNominal(CurrencyInfo info)
 {
     return RoundingOptions[info.NumberCode];
 }