private static async System.Threading.Tasks.Task AddDataPoints(int count) { Random rand = new Random(); List <Station> stations = await _context.Stations.ToListAsync(); List <Parameter> parameters = await _context.Parameters.ToListAsync(); foreach (Station station in stations) { List <DataPoint> points = new List <DataPoint>(); decimal lat = (decimal)(rand.NextDouble() * 13 + 35.8); decimal lng = (decimal)(rand.NextDouble() * 44.1 - 121); for (int i = 0; i < count; i++) { foreach (Parameter parameter in parameters) { DataPoint datapoint = new DataPoint(); //datapoint.Lat = lat; //datapoint.Lng = lng; datapoint.AQI = rand.Next(400); datapoint.Category = GetHealthRiskCategory(datapoint.AQI); datapoint.Indoor = (datapoint.AQI % 2 == 0) ? true : false; datapoint.Parameter = parameter; datapoint.Station = station; datapoint.Value = DateTime.Now.Millisecond; datapoint.Time = DateTime.Now.AddMinutes(i * 15); points.Add(datapoint); } } _repo.SetDataPointsFromStation(points.ToArray()); } }
public IHttpActionResult AddStationDataPointSet([FromBody] DataPoint[] dataSet) { DateTime start = DateTime.Now; if (dataSet.Length == 0) { return(NotFound()); } foreach (DataPoint dataPoint in dataSet) { if (dataPoint.Category == 0 && dataPoint.AQI == 0 || dataPoint.AQI < 0) { Tuple <int, int> result = null; switch (dataPoint.Parameter.Name) { case "PM2.5": result = Pm25Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "PM10": result = Pm10Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "CO": result = CoAqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "NO2": result = No2Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "OZONE": result = OzoneAqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "SO2": result = So2Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; } } } IEnumerable <DataPoint> response = _stationRepo.SetDataPointsFromStation(dataSet); DateTime end = DateTime.Now; if (response == null) { return(NotFound()); } return(Ok(response)); }