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); }
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(); //} }