public Amount Adapt(Amount amount, Currency currency) { if (amount.Currency.Code != currency.Code) { log.Trace("Request to adapt amount '{0}' to currency '{1}'.", amount, currency); var result = decorated.Adapt(amount, currency); log.Trace("Result after adapt of '{0}' to currency '{1}' is '{2}'.", amount, currency, result); return(result); } return(decorated.Adapt(amount, currency)); }
public Amount Add(Amount amountOne, Amount amountTwo) { var normalizedAmountTwo = currencyAdaptor.Adapt(amountTwo, amountOne.Currency); var result = decorated.Add(amountOne, normalizedAmountTwo); return(result); }
public Amount RetrieveBalance(LoyaltyPointAccountIdentity identity, Currency requiredCurrency) { if (!transactions.Any()) { return(new Amount(requiredCurrency, 0)); } var result = transactions.Aggregate((a, b) => new Amount(requiredCurrency, currencyAdaptor.Adapt(b, requiredCurrency).Value + a.Value)); return(result); }
public Amount RetrieveBalance(AccountInformation account) { if (!transactions.Any()) { return(new Amount(defaultCurrency, 0)); } var result = transactions.Aggregate((a, b) => new Amount(defaultCurrency, currencyAdaptor.Adapt(b, defaultCurrency).Value + a.Value)); return(result); }