/// <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; }
/// <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]; }
/// <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); }
/// <summary> /// Установить новый курс обмена валют. /// </summary> /// <param name="info">Информация о валюте.</param> /// <param name="newRate">Курс валюты относительно usd.</param> public static void SetNewExchangeRate(CurrencyInfo info, Rational newRate) { CurrencyRates[info.NumberCode] = newRate; }
/// <summary> /// Установить наименьший номинал для валюты. /// </summary> /// <param name="info">Информация о валюте.</param> /// <param name="minNominal">Наименьший номинал выбранной валюты.</param> public static void SetMinCurrencyNominal(CurrencyInfo info, Rational minNominal) { RoundingOptions[info.NumberCode] = minNominal; }
/// <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; }
/// <summary> /// Получить наименьший номинал выбранной валюты. /// </summary> /// <param name="info">Информация о валюте.</param> /// <returns>Наименьший номинал выбранной валюты.</returns> public static Rational GetMinCurrencyNominal(CurrencyInfo info) { return RoundingOptions[info.NumberCode]; }