public MoneyBag(Money[] bag) { for (int i = 0; i < bag.Length; i++) { if (!bag[i].IsZero) AppendMoney(bag[i]); } }
static void Main(string[] args) { MoneyBag bag = new MoneyBag(); Money moneyA = new Money(10, "EUR"); Money moneyB = new Money(20, "USD"); Money moneyC = new Money(15, "EUR"); Money moneyD = new Money(25, "JPY"); IMoney money = bag.AddMoney(moneyA); money = money.AddMoney(moneyB); money = money.AddMoney(moneyC); money = money.AddMoney(moneyD); Console.WriteLine("My Portfolio : " + money.ToString()); Console.ReadLine(); }
public IMoney AddMoney(Money m) { if (m.Currency.Equals(Currency)) return new Money(Amount + m.Amount, Currency); return new MoneyBag(this, m); }
private void AppendMoney(Money aMoney) { IMoney old = FindMoney(aMoney.Currency); if (old == null) { fMonies.Add(aMoney); return; } fMonies.Remove(old); IMoney sum = old.Add(aMoney); if (sum.IsZero) return; fMonies.Add(sum); }
public IMoney AddMoney(Money m) { return (new MoneyBag(m, this)).Simplify(); }
public MoneyBag(Money m, MoneyBag bag) { AppendMoney(m); AppendBag(bag); }
public MoneyBag(Money m1, Money m2) { AppendMoney(m1); AppendMoney(m2); }
private bool Contains(Money aMoney) { Money m = FindMoney(aMoney.Currency); return m.Amount == aMoney.Amount; }