using FarmatikoData.FarmatikoRepoInterfaces; using FarmatikoData.Models; using System.Collections.Generic; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using Microsoft.Extensions.Logging; using System.Net; using System.Linq; using FarmatikoServices.FarmatikoServiceInterfaces; using RestSharp; namespace FarmatikoServices.Services { public class ProcessJSONService : IProcessJSONService { //private IHealthFacilityRepository _healthFacilityRepository; private IPandemicRepository _pandemicRepository; //private IHealthcareWorkerRepository _healthcareWorkerRepository; //private IMedicineRepository _medicineRepository; //private readonly ILogger _logger; public ProcessJSONService(/*IHealthFacilityRepository healthFacilityRepository, */IPandemicRepository pandemicRepository/*, IHealthcareWorkerRepository healthcareWorkerRepository, IMedicineRepository medicineRepository*/) { //_logger = logger; //_healthFacilityRepository = healthFacilityRepository; _pandemicRepository = pandemicRepository; //_healthcareWorkerRepository = healthcareWorkerRepository; //_medicineRepository = medicineRepository; } public List GetProcessedHealthFacilitiesFromJSON() { try { /*var client = new WebClient(); var json = client.DownloadString(@"C:\Users\Miki\Desktop\ustanovi.json"); var jsonResponse = JObject.Parse(json); var records = JArray.Parse(jsonResponse.GetValue("records").ToString()); foreach(var rec in records) { dynamic obj = JsonConvert.DeserializeObject(rec.ToString()); var Name = obj[2]; var Municipality = obj[6]; var Address = obj[9]; var Email = obj[10]; var Phone = obj[11]; var Type = obj[5]; HealthFacilities healthFacility = new HealthFacilities(); healthFacility.Name = Name; healthFacility.Municipality = Municipality; healthFacility.Address = Address; healthFacility.Email = Email; healthFacility.Phone = Phone; healthFacility.Type = Type; _healthFacilityRepository.Add(healthFacility); }*/ var client1 = new RestClient("https://api.covid19api.com/summary"); var response = client1.Execute(new RestRequest()); string original = response.Content; var jsonResponsePandemic = JObject.Parse(original); var global = JObject.Parse(jsonResponsePandemic.GetValue("Global").ToString()); var TotalConfirmed = long.Parse(global.GetValue("TotalConfirmed").ToString()); var TotalDeaths = long.Parse(global.GetValue("TotalDeaths").ToString()); var TotalRecovered = long.Parse(global.GetValue("TotalRecovered").ToString()); var mk = JArray.Parse(jsonResponsePandemic.GetValue("Countries").ToString()); dynamic objP = mk[100]; var TotalMk = Int32.Parse(objP.GetValue("TotalConfirmed").ToString()); var TotalDeathsMK = Int32.Parse(objP.GetValue("TotalDeaths").ToString()); var TotalRecoveredMK = Int32.Parse(objP.GetValue("TotalRecovered").ToString()); var NewMK = Int32.Parse(objP.GetValue("NewConfirmed").ToString()); Pandemic pandemic = new Pandemic(); pandemic.TotalGlobal = TotalConfirmed; pandemic.ActiveGlobal = TotalConfirmed - (TotalRecovered + TotalDeaths); pandemic.DeathsGlobal = TotalDeaths; pandemic.TotalMK = TotalMk; pandemic.ActiveMK = TotalMk - (TotalRecoveredMK + TotalDeathsMK); pandemic.DeathsMK = TotalDeathsMK; pandemic.NewMK = NewMK; pandemic.Name = "Coronavirus"; _pandemicRepository.Add(pandemic); /*var jsonW = client.DownloadString(@"C:\Users\Miki\Desktop\rabotnici.json"); var jsonResponseW = JObject.Parse(jsonW); var recordsW = JArray.Parse(jsonResponseW.GetValue("records").ToString()); foreach (var rec in recordsW) { dynamic obj = JsonConvert.DeserializeObject(rec.ToString()); var Name = obj[4]; var Branch = obj[2]; HealthFacilities facility = new HealthFacilities(); facility.Name = obj[1]; facility.Municipality = "WorkerFacilityMunicipality"; facility.Address = "WorkerFacilityAddress"; var Title = obj[3]; HealthcareWorkers healthcareWorker = new HealthcareWorkers(); healthcareWorker.Name = Name; healthcareWorker.Branch = Branch; healthcareWorker.Facility = facility; healthcareWorker.Title = Title; _healthcareWorkerRepository.Add(healthcareWorker); } var jsonM = client.DownloadString(@"C:\Users\Miki\Desktop\lekovi.json"); var jsonResponseM = JObject.Parse(jsonM); var recordsM = JArray.Parse(jsonResponseM.GetValue("records").ToString()); foreach (var rec in recordsM) { dynamic obj = JsonConvert.DeserializeObject(rec.ToString()); var Name = obj[1]; var Strength = obj[7]; var Form = obj[6]; var WayOfIssuing = obj[9]; var Manufacturer = obj[11]; var Price = float.Parse(obj[17]); var Packaging = obj[8]; Medicine medicine = new Medicine(); medicine.Name = Name; medicine.Strength = Strength; medicine.Form = Form; medicine.WayOfIssuing = WayOfIssuing; medicine.Manufacturer = Manufacturer; medicine.Price = Price; medicine.Packaging = Packaging; _medicineRepository.Add(medicine); }*/ } catch (Exception e) { //_logger.LogError(e.Message); Console.WriteLine(e.Message); throw e; return null; } return null; } } }