public EForecast GetForecastResponse(string sJson) { EForecast objResult = new EForecast(); JObject jObject = JObject.Parse(sJson); //Current temperature data JToken jCurrent = jObject["currently"]; objResult.Status = (string)jCurrent["summary"]; objResult.Temperature = (string)jCurrent["temperature"]; objResult.Icon = (string)jCurrent["icon"]; //7 day forecast JToken jDaily = jObject["daily"]; var jDailyForecast = JArray.Parse(jDaily["data"].ToString()); objResult.DailyForecast = jDailyForecast.Select(item => new EDailyForecast { Status = item["summary"].ToString(), Day = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc).AddSeconds(Convert.ToDouble(item["time"])).ToLocalTime().DayOfWeek.ToString(), Icon = item["icon"].ToString(), Temperature_maximum = item["temperatureMax"].ToString(), Temperature_minimum = item["temperatureMin"].ToString() }).ToList(); objResult.DailyForecast.RemoveAt(0); return(objResult); }
public EForecast GetForecastResponse(string sJson) { EForecast objResult = new EForecast(); JObject jObject = JObject.Parse(sJson); JToken jDaily = jObject["forecast"]["simpleforecast"]; var jDailyForecast = JArray.Parse(jDaily["forecastday"].ToString()); List <EDailyForecast> lstDailyForecast = jDailyForecast.Select(item => new EDailyForecast { Status = item["conditions"].ToString(), Day = item["date"]["weekday"].ToString(), Icon = item["icon"].ToString(), Temperature_maximum = item["high"]["fahrenheit"].ToString(), Temperature_minimum = item["low"]["fahrenheit"].ToString() }).ToList(); objResult.Status = lstDailyForecast[0].Status; objResult.Temperature = lstDailyForecast[0].Temperature_maximum.Length > 0 ? lstDailyForecast[0].Temperature_maximum : lstDailyForecast[0].Temperature_minimum; objResult.Icon = lstDailyForecast[0].Icon; for (int index = 1; index <= 7; index++) { objResult.DailyForecast.Add(lstDailyForecast[index]); } return(objResult); }
public ResponseModel Get(string sProviderId, string sCityId) { try { //RequestHandler.Validate(ModelState, Request.Headers.Authorization, false); EForecast oForecastResult = weatherDashboardService.GetForecast(sProviderId, sCityId); return(new SuccessResponse <EForecast>(oForecastResult)); } catch (HttpException ex) { return(new FailureResponse(ex.GetHttpCode(), ex.Message)); } catch (Exception ex) { return(new FailureResponse(HttpStatusCode.InternalServerError.GetHashCode(), ex.Message)); } }
public void Get() { // Arrange var MockService = new Moq.Mock <IWeatherDashboardService>(); var Response = new Mock <EForecast>(); Random oRandom = new Random(); string sProviderId = oRandom.Next(1, 2).ToString(); string sCityId = oRandom.Next(1, 5).ToString(); MockService.Setup(s => s.GetForecast(sProviderId, sCityId)).Returns(Response.Object); WeatherDashboardImplementationRepository repository = new WeatherDashboardImplementationRepository(); // Act EForecast result = repository.GetForecast(sProviderId, sCityId); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(EForecast)); Assert.IsNotNull(((EForecast)result).DailyForecast); Assert.AreEqual(7, ((EForecast)result).DailyForecast.Count); }