Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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!");
        }