예제 #1
0
        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();
        }
예제 #2
0
        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);
            }
        }