Exemple #1
0
        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));
            }
        }
Exemple #4
0
        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);
        }