main
 1namespace solidware.financials.service.domain.accounting
 2{
 3    public delegate ConversionRatio RateTable(UnitOfMeasure unitCurrency, UnitOfMeasure referenceCurrency);
 4
 5    public abstract class SimpleUnitOfMeasure : UnitOfMeasure
 6    {
 7        public decimal convert(decimal amount, UnitOfMeasure other)
 8        {
 9            return rate_table(this, other).applied_to(amount);
10        }
11
12        public abstract string pretty_print(decimal amount);
13
14        static RateTable rate_table = (x, y) => ConversionRatio.Default;
15
16        static public void provide_rate(RateTable current_rates)
17        {
18            rate_table = current_rates;
19        }
20    }
21}