public void EmptyInput_EmptyOutput_Test() { string result = null; var parseResult = DiagramForecastParser.Parse(result); Assert.IsNull(parseResult); result = string.Empty; parseResult = DiagramForecastParser.Parse(result); Assert.IsNull(parseResult); }
public async Task <ActionResult> Data() { var httpClient = new HttpClient(); var uri = GetGfsDataUrl(2017, "Jun", 1, 10, 0, 9, 50.5, 30.5); var result = await httpClient.GetStringAsync(uri); var data = DiagramForecastParser.Parse(result); var jsonResult = new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = data, MaxJsonLength = int.MaxValue }; return(jsonResult); }
public async Task <List <MeteoStateModel> > Get(DateTime time, CoordinatePoint point, int hoursInterval) { try { var dataContext = new ForecastDataContext(); var id = ForecastModel.GenerateId(point, time); var forecastData = dataContext.Forecast.Where(forecast => forecast.Id.Equals(id, StringComparison.InvariantCulture)); string resultString; if (await forecastData.AnyAsync()) { resultString = (await forecastData.SingleAsync()).Value; } else { var httpClient = new HttpClient(); var uri = GetGfsDataUrl(time, point, hoursInterval); resultString = await httpClient.GetStringAsync(uri); var forecastModel = new ForecastModel { Id = id, LoadTime = DateTime.UtcNow, Time = time, Point = point, Value = resultString }; dataContext.Forecast.Add(forecastModel); await dataContext.SaveChangesAsync(); } return(DiagramForecastParser.Parse(resultString)); } catch (Exception ex) { } return(null); }
public void ValueInput_CorrectOutput_Test() { var result = DiagramForecastParser.Parse(ReturnValue6hours); Assert.IsNotNull(result); Assert.AreEqual(result.Count, 2); var firstHourData = result.First(); Assert.AreEqual(firstHourData.ForecastModel, "GFS"); Assert.AreEqual(firstHourData.Coordinates, new CoordinatePoint { Latitude = 50.5, Longitude = 30.5 }); Assert.AreEqual(firstHourData.DateTime, new DateTime(2017, 6, 1, 6, 0, 0)); Assert.AreEqual(firstHourData.Cape, 69); Assert.AreEqual(firstHourData.CIN, -1); Assert.AreEqual(firstHourData.Helic, 99999); Assert.AreEqual(firstHourData.PW, 18); Assert.AreEqual(firstHourData.MeteoData.Count(), 31); var firstGridLine = firstHourData.MeteoData.First(); Assert.AreEqual(firstGridLine.Altitude, 27.1272); Assert.AreEqual(firstGridLine.Pressure, 10000); Assert.AreEqual(firstGridLine.Temperature, 18.0); Assert.AreEqual(firstGridLine.DewPoint, 11.0); Assert.AreEqual(firstGridLine.WindDirection, 276); Assert.AreEqual(firstGridLine.WindSpeed, 6.6878); var lastGridLine = firstHourData.MeteoData.Last(); Assert.AreEqual(lastGridLine.Altitude, 14758.7208); Assert.AreEqual(lastGridLine.Pressure, 10); Assert.AreEqual(lastGridLine.Temperature, -8.3); Assert.AreEqual(lastGridLine.DewPoint, 9999.9); Assert.AreEqual(lastGridLine.WindDirection, 102); Assert.AreEqual(lastGridLine.WindSpeed, 19.0344); }