public void CalculateCurrencyAmount(ObservableCollection <CurrencyExchangeBindableItem> list, CurrencyExchangeBindableItem targetCurrency = null) { CurrencyExchangeBindableItem standardItem = list.FirstOrDefault(x => x.IsBaseCurrency); if (standardItem != null) { if (targetCurrency != null) { if (targetCurrency.IsBaseCurrency) { standardItem.Amount = targetCurrency.Amount; } else { if (targetCurrency.Rate != 0) { standardItem.Amount = targetCurrency.Amount / targetCurrency.Rate; } } standardItem.AmountText = CurrencyHelper.FormatCurrencyAmount(standardItem.Amount, standardItem.TargetCurrency.CultureName); } foreach (var item in list.Where(x => x.IsBaseCurrency == false).ToList()) { if (targetCurrency != null) { if (targetCurrency.TargetCode != item.TargetCode) { item.Amount = standardItem.Amount * item.Rate; } } else { item.Amount = standardItem.Amount * item.Rate; } item.AmountText = CurrencyHelper.FormatCurrencyAmount(item.Amount, item.TargetCurrency.CultureName); } } }
public void SetBaseCurrency(ObservableCollection <CurrencyExchangeBindableItem> list, CurrencyExchangeBindableItem baseCurrency) { foreach (var x in list) { x.IsBaseCurrency = false; x.BaseCurrency = baseCurrency.TargetCurrency; x.BaseCode = baseCurrency.TargetCode; } baseCurrency.IsBaseCurrency = true; }
public async Task DeleteCurrencyAsync(ObservableCollection <CurrencyExchangeBindableItem> list, CurrencyExchangeBindableItem item) { var target = list.FirstOrDefault(x => x.Id == item.Id); if (target != null) { list.Remove(target); for (var i = 0; i < list.Count; i++) { list[i].SortOrder = i; } await _dataService.DeleteAsync(target.Id); await _dataService.UpdateRangeAsync(list.Select(x => x.ToCurrencyExchangeItem())); } }