private static void Main(string[] args) { var currencyWorker = new CurrencyWorker(); var year = GetYear(); var list = currencyWorker.Main(year); SaveDataInDbWorker.Save(list); }
private async void DoWork(object state) { var scope = scopeFactory.CreateScope(); IWorker currencyWorker = new CurrencyWorker(scope.ServiceProvider.GetRequiredService <ApplicationContext>()); HttpClient client = new HttpClient(); HttpRequestMessage request = new HttpRequestMessage(); request.RequestUri = new Uri($"https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json"); request.Method = HttpMethod.Get; request.Headers.Add("Accept", "application/json"); HttpResponseMessage response = await client.SendAsync(request); if (response.StatusCode == System.Net.HttpStatusCode.OK) { HttpContent responseContent = response.Content; var test = responseContent.ReadAsStringAsync().Result; var deserializedJson = JsonConvert.DeserializeObject <List <Currency> >(responseContent.ReadAsStringAsync().Result); deserializedJson.InsertRange(1, new List <Currency> { deserializedJson.First(cur => cur.cc == "USD"), deserializedJson.First(cur => cur.cc == "EUR"), new Currency { exchangedate = DateTime.Now.ToString(), cc = "UAH", txt = "Українська гривня", rate = 1 } }); if (!currencyWorker.GetEntities().Any()) { foreach (var c in deserializedJson.Distinct()) { currencyWorker.AddEntity(c); _logger.LogInformation($"{c.txt} was added to db"); } } else { foreach (var c in deserializedJson) { var currentCur = currencyWorker.GetEntities().Cast <Currency>().FirstOrDefault(t => t.cc == c.cc); if (currentCur != null) { c.Id = currentCur.Id; currencyWorker.EditEntity(c); } } } } }