예제 #1
0
        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));
        }
예제 #2
0
        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);
        }
예제 #4
0
        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);
        }