Example #1
0
        private List <DailyCurrencyRate> ParseDailyRates(string rawResponse, DateTime date)
        {
            var rows           = rawResponse.Split("\n", StringSplitOptions.RemoveEmptyEntries);
            var result         = new List <DailyCurrencyRate>();
            var dtFromResponse = DateTime.Parse(rows[0].Split(" ")[0]);
            var isHoliday      = dtFromResponse.Date != date;

            if (isHoliday)
            {
                return(new List <DailyCurrencyRate>());
            }
            for (var i = 2; i < rows.Length; i++)
            {
                try
                {
                    var parts   = rows[i].Split("|", StringSplitOptions.RemoveEmptyEntries);
                    var newItem = new DailyCurrencyRate();
                    newItem.CurrencyCode = parts[3];
                    newItem.Amount       = parts[2].DecimalParse();
                    newItem.Date         = date;
                    newItem.OriginalRate = parts[4].DecimalParse();
                    newItem.Year         = date.Year;
                    newItem.Month        = date.Month;
                    newItem.CalculateFinalRate();
                    result.Add(newItem);
                }
                catch (Exception error)
                {
                    _logger.LogError($"Error while parse {rows[i]} {error}");
                }
            }

            return(result);
        }
Example #2
0
        static async Task TestInsert()
        {
            var newItem = new DailyCurrencyRate();

            newItem.Amount       = 10;
            newItem.CurrencyCode = "RUB";
            // newItem.Rate = 1;
            newItem.Date = DateTime.Now;

            //using (var dbContext = new RatesContext("Server=localhost\\SQLExpress;Database=ratesdb;Trusted_Connection=True;"))
            //{
            //    await dbContext.DailyCurrencyRates.AddAsync(newItem);
            //    await dbContext.SaveChangesAsync();
            //}
        }