public async Task SavaAsteroidsNeoWsInDataBase(AsteroidsNeoWs asteroids) { AsteroidsNeoWs check = await _context.AsteroidsNeoWs.AsNoTracking() .FirstOrDefaultAsync(t => t.Name.Equals(asteroids.Name)); if (check is null) { await _context.AsteroidsNeoWs.AddAsync(asteroids); await _context.SaveChangesAsync(); } //remove old ones List <AsteroidsNeoWs> asteroidsList = await _context.AsteroidsNeoWs.ToListAsync(); if (asteroidsList.Count <= 50) { return; } for (int i = 0; i < asteroidsList.Count - 20; i++) { _context.AsteroidsNeoWs.Remove(asteroidsList[i]); } await _context.SaveChangesAsync(); }
public async Task GetAsteroidsNeoWsData(string data) { if (data is null) { return; } JArray json = _jsonTools.GetJArray(JObject.Parse(data), "near_earth_objects"); for (int i = 0; i < json.Count; i++) { JObject jObject = JObject.Parse(json[i].ToString()); AsteroidsNeoWs asteroids = new AsteroidsNeoWs() { Name = _jsonTools.GetValue <string>(jObject, "name"), Url = _jsonTools.GetValue <string>(jObject, "nasa_jpl_url"), Size = _jsonTools.GetValue <string>(jObject, "absolute_magnitude_h"), Dangerous = _jsonTools.GetValue <string>(jObject, "is_potentially_hazardous_asteroid"), FirstObservation = _jsonTools.GetValue <string>(_jsonTools.GetJObject(jObject, "orbital_data"), "first_observation_date"), LastObservation = _jsonTools.GetValue <string>(_jsonTools.GetJObject(jObject, "orbital_data"), "last_observation_date") }; await _repository.SavaAsteroidsNeoWsInDataBase(asteroids); } }