public async Task <SpitCast> GetForecast(int id, string county) { SpitCast spitCast = null; using (var client = new HttpClient()) { var forecastsUrl = new Uri($"http://api.spitcast.com/api/spot/forecast/{id}/"); var waterTempUrl = new Uri($"http://api.spitcast.com/api/county/water-temperature/{county}/"); var windDetailsUrl = new Uri($"http://api.spitcast.com/api/county/wind/{county}/"); var forecastsJson = await GetSpitCast(client, forecastsUrl); var waterTempJson = await GetSpitCast(client, waterTempUrl); var windDetailsJson = await GetSpitCast(client, windDetailsUrl); var forecasts = new List <Forecast>(); var waterTemp = new WaterTemp(); var windDetails = new List <WindDetail>(); forecasts = JsonConvert.DeserializeObject <List <Forecast> >(forecastsJson); waterTemp = JsonConvert.DeserializeObject <WaterTemp>(waterTempJson); windDetails = JsonConvert.DeserializeObject <List <WindDetail> >(windDetailsJson); spitCast = new SpitCast(); spitCast.Forecasts = forecasts; spitCast.WaterTemp = waterTemp; spitCast.WindDetails = windDetails; return(spitCast); } }
public ActionResult <ItemsResponse <Forecast> > GetForecast(int id, string county) { int code = 201; BaseResponse response = null; try { Task <SpitCast> forecasts = _forecastServices.GetForecast(id, county); if (forecasts == null) { code = 404; response = new ErrorResponse("App Resource not found."); } else { SpitCast forecastResults = forecasts.Result; response = new ItemResponse <SpitCast> { Item = forecastResults }; } } catch (Exception ex) { code = 500; response = new ErrorResponse(ex.Message); base.Logger.LogError(ex.ToString()); } return(StatusCode(code, response)); }