Beispiel #1
0
 public CurrencyConversion(string fromCurrencyISOName, string toCurrencyISOName)
 {
     Argument.NotEmpty(fromCurrencyISOName, "fromCurrencyISOName");
     Argument.NotEmpty(toCurrencyISOName, "toCurrencyISOName");
     Argument.Satisfies(fromCurrencyISOName, x => x != toCurrencyISOName, "toCurrencyISOName", "Can't create conversion to the same currency.");
     _fromCurrencyISOName = fromCurrencyISOName;
     _toCurrencyISOName   = toCurrencyISOName;
     _exchangeRateKey     = new ExchangeRateKey(fromCurrencyISOName, toCurrencyISOName);
 }
 public IList <ExchangeRate> GetActualForExchange(ExchangeRateKey key)
 {
     return(EnsureRepositoryException(() =>
     {
         var rate1 = Context.Set <ExchangeRate>()
                     .OrderByDescending(x => x.TimestampUtc)
                     .FirstOrDefault(x => x.Base.ISOName == key.FirstCurrencyISOName && x.Foreign.ISOName == key.SecondCurrencyISOName && x.IsActual);
         var rate2 = Context.Set <ExchangeRate>()
                     .OrderByDescending(x => x.TimestampUtc)
                     .FirstOrDefault(x => x.Base.ISOName == key.SecondCurrencyISOName && x.Foreign.ISOName == key.FirstCurrencyISOName && x.IsActual);
         var list = new List <ExchangeRate>();
         if (rate1 != null)
         {
             list.Add(rate1);
         }
         if (rate2 != null)
         {
             list.Add(rate2);
         }
         return list;
     }));
 }