Пример #1
0
        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);
                }
            }
        }
Пример #2
0
 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;
 }
Пример #3
0
        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()));
            }
        }