/// <summary> /// Формирует строки отчета по данным из базы данных. /// </summary> /// <param name="year"></param> /// <param name="month"></param> /// <param name="currencyCodes"></param> /// <returns></returns> public static List <List <RateInfo> > GetReportInfo(int year, int month, List <string> currencyCodes) { ICurrencyService currencyService = new DefaultCurrencyService(); var rateReports = new List <List <RateInfo> >(); foreach (var currencyCode in currencyCodes) { var rateReport = new List <RateInfo>(); var rates = currencyService.GetRates(year, month, currencyCode); if (rates == null) { continue; } var ratesByWeek = SplitByWeek(rates); foreach (var rateWeek in ratesByWeek) { var rateInfo = GetRateInfo(rateWeek.ToList()); rateReport.Add(rateInfo); } // отсекаем случаи, если бд ничего не вернула по валюте (например - ошибка в конфиге) if (rateReport.Count != 0) { rateReports.Add(rateReport); } } return(rateReports); }
static async System.Threading.Tasks.Task Main(string[] args) { ICurrencyDataProvider currencyDataProvider = new DefaultCurrencyDataProvider(); ICurrencyService currencyService = new DefaultCurrencyService(); var currencies = await currencyDataProvider.ParseCurrenciesAsync(); foreach (var currency in currencies) { if (!currencyService.AddCurrency(currency)) { Console.WriteLine($"Failed to add currency {currency.Code}."); } } foreach (var year in new[] { 2017, 2018 }) { var rates = await currencyDataProvider.ParseRatesAsync(year); if (rates == null) { Console.WriteLine("Failed to add rates."); continue; } if (!currencyService.AddRates(rates)) { Console.WriteLine("Failed to add rates."); } } Console.ReadKey(); }
public async Task Execute(IJobExecutionContext context) { ICurrencyDataProvider currencyDataProvider = new DefaultCurrencyDataProvider(); ICurrencyService currencyService = new DefaultCurrencyService(); var rates = await currencyDataProvider.ParseRatesAsync(DateTime.Now); if (rates == null) { Console.WriteLine("Failed to parse rates."); } if (!currencyService.AddRates(rates)) { Console.WriteLine("Failed to add today's currencies rates!"); return; } Console.WriteLine("Done!"); }