Exemplo n.º 1
0
        private static void Main(string[] args)
        {
            var currencyWorker = new CurrencyWorker();

            var year = GetYear();
            var list = currencyWorker.Main(year);

            SaveDataInDbWorker.Save(list);
        }
Exemplo n.º 2
0
        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);
                        }
                    }
                }
            }
        }