public static void Execute(IExchangeRatesClient client, MonthlyTimeSeries options) { var model = client.GetMonthlyTimeSeries(options.StartMonth, options.StartYear, options.EndMonth, options.EndYear, options.BaseCurrencyIsoCode.ToUpper(), options.CurrencyIsoCode.ToUpper()).Result; System.Console.WriteLine($"{model.ResultsInfo.IsoCode} {model.ResultsInfo.Currency}"); System.Console.WriteLine(); System.Console.WriteLine($"Ref. date Rate"); foreach (var rate in model.Rates) { System.Console.WriteLine( $"{rate.ReferenceDate:yyyy-MM} {rate.AvgRate,16:N6} {model.ResultsInfo.ExchangeConventionCode,1}"); } System.Console.WriteLine(); System.Console.WriteLine("Exchange convention:"); System.Console.WriteLine( $"{model.ResultsInfo.ExchangeConventionCode} {model.Rates.FirstOrDefault()?.ExchangeConvention}"); }
public async Task GetMonthlyTimeSeries() { var startMonth = 1; var startYear = 2019; var endMonth = 12; var endYear = 2020; var rates = new MonthlyTimeSeriesModel.ExchangeRateModel[] { new MonthlyTimeSeriesModel.ExchangeRateModel { ReferenceDate = new DateTime(startYear, startMonth, 1), AvgRate = 1.1652, ExchangeConvention = "Foreign currency amount for 1 Euro", }, new MonthlyTimeSeriesModel.ExchangeRateModel { ReferenceDate = new DateTime(endYear, endMonth, 1), AvgRate = 1.1625, ExchangeConvention = "Foreign currency amount for 1 Euro", } }; var expected = new MonthlyTimeSeriesModel { ResultsInfo = new MonthlyTimeSeriesModel.ResultsInfoModel { TotalRecords = rates.Length, Currency = "U.S. Dollar", IsoCode = "USD", UicCode = "001", ExchangeConventionCode = "C" }, Rates = rates }; var actual = await _client.GetMonthlyTimeSeries(startMonth, startYear, endMonth, endYear, "USD", "EUR"); Assert.Equal(JsonConvert.SerializeObject(expected), JsonConvert.SerializeObject(actual)); }