示例#1
0
 public WeatherListViewModel(IWeatherRepository weather)
 {
     _weather = weather;
     foreach (var entity in _weather.GetData())
     {
         Weathers.Add(new WeatherListViewModelWeather(entity));
     }
 }
        private async Task SearchCity(string city)
        {
            if (city == null)
            {
                return;
            }

            var result = await _repository.GetWheater(city);

            Weathers.Add(new WeatherViewModel(result));
        }
示例#3
0
        public CurrentWeather(string apiKey, string queryStr, UnitsEnum units)
        {
            string unitsString;

            switch (units)
            {
            case UnitsEnum.Metric: { unitsString = "metric"; break; }

            case UnitsEnum.Imperial: { unitsString = "imperial"; break; }

            default: { unitsString = "standard"; break; }
            }

            JObject jsonData;

            using (var client = new System.Net.WebClient())
                jsonData = JObject.Parse(client.DownloadString($"http://api.openweathermap.org/data/2.5/weather?appid={apiKey}&q={queryStr}&units={unitsString}"));

            if (jsonData.SelectToken("cod").ToString() == "200")
            {
                ValidRequest = true;
                Coord        = new Coord(jsonData.SelectToken("coord"));
                foreach (JToken weather in jsonData.SelectToken("weather"))
                {
                    Weathers.Add(new Weather(weather));
                }
                Base = jsonData.SelectToken("base").ToString();
                Main = new Main(jsonData.SelectToken("main"));
                if (jsonData.SelectToken("visibility") != null)
                {
                    Visibility = double.Parse(jsonData.SelectToken("visibility").ToString(), CultureInfo.InvariantCulture);
                }
                Wind = new Wind(jsonData.SelectToken("wind"));
                if (jsonData.SelectToken("rain") != null)
                {
                    Rain = new Rain(jsonData.SelectToken("rain"));
                }
                if (jsonData.SelectToken("snow") != null)
                {
                    Snow = new Snow(jsonData.SelectToken("snow"));
                }
                Clouds = new Clouds(jsonData.SelectToken("clouds"));
                Sys    = new Sys(jsonData.SelectToken("sys"));
                ID     = int.Parse(jsonData.SelectToken("id").ToString(), CultureInfo.InvariantCulture);
                Name   = jsonData.SelectToken("name").ToString();
                Cod    = int.Parse(jsonData.SelectToken("cod").ToString(), CultureInfo.InvariantCulture);
            }
            else
            {
                ValidRequest = false;
            }
        }
        public WeatherListViewModel(IWeatherRepository weather, MainWindowViewModel mainWindowViewModel)
        {
            _weather             = weather;
            _mainWindowViewModel = mainWindowViewModel;
            foreach (var entity in _weather.GetData())
            {
                Weathers.Add(new WeatherListViewModelWeather(entity));
            }

            UpdateButton             = new DelegateCommand(UpdateButtonExecute);
            DataGridSelectionChanged = new DelegateCommand(DataGridSelectionChangedExecute);
            DataGridMouseDoubleClick = new DelegateCommand(DataGridMouseDoubleClickExecute);
        }
        private async Task LoadData()
        {
            if (_isDataLoaded)
            {
                return;
            }

            _isDataLoaded = true;

            // Our repository works with Weather objects. In this view model, we work with WeatherViewModel objects.
            // So, here I've called  LINQ Select() extension method to map these Weather objects to WeatherViewModel.
            var results = await _repository.GetSeveralCitiesWheaterAsync();

            foreach (var result in results.Weather)
            {
                Weathers.Add(new WeatherViewModel(result));
            }
        }
        private async Task GetWeathersAsync()
        {
            CanClick = false;

            Weathers.Clear();
            // サービスの GetWeathersAsync メソッドをコールし、一時的に保存
            var tempWeathers = await _weatherService.GetWeathersAsync();

            // View から参照できるようにプロパティに流し込み
            if (tempWeathers != null)
            {
                foreach (var weather in tempWeathers)
                {
                    Weathers.Add(weather);
                }
            }

            CanClick = true;
        }
示例#7
0
        public Query(string apiKey, string queryStr)
        {
            JObject jsonData;

            using (var client = new System.Net.WebClient())
                jsonData = JObject.Parse(client.DownloadString($"http://api.openweathermap.org/data/2.5/weather?appid={apiKey}&q={queryStr}"));

            if (jsonData.SelectToken("cod").ToString() == "200")
            {
                ValidRequest = true;
                Coord        = new Coord(jsonData.SelectToken("coord"));
                foreach (JToken weather in jsonData.SelectToken("weather"))
                {
                    Weathers.Add(new Weather(weather));
                }
                Base = jsonData.SelectToken("base").ToString();
                Main = new Main(jsonData.SelectToken("main"));
                if (jsonData.SelectToken("visibility") != null)
                {
                    Visibility = double.Parse(jsonData.SelectToken("visibility").ToString(), CultureInfo.InvariantCulture);
                }
                Wind = new Wind(jsonData.SelectToken("wind"));
                if (jsonData.SelectToken("rain") != null)
                {
                    Rain = new Rain(jsonData.SelectToken("rain"));
                }
                if (jsonData.SelectToken("snow") != null)
                {
                    Snow = new Snow(jsonData.SelectToken("snow"));
                }
                Clouds = new Clouds(jsonData.SelectToken("clouds"));
                Sys    = new Sys(jsonData.SelectToken("sys"));
                ID     = int.Parse(jsonData.SelectToken("id").ToString(), CultureInfo.InvariantCulture);
                Name   = jsonData.SelectToken("name").ToString();
                Cod    = int.Parse(jsonData.SelectToken("cod").ToString(), CultureInfo.InvariantCulture);
                Dt     = Helper.convertUnixToDateTime(double.Parse(jsonData.SelectToken("dt").ToString(), CultureInfo.InvariantCulture));
            }
            else
            {
                ValidRequest = false;
            }
        }
示例#8
0
        public Hour(JToken hourData)
        {
            if (hourData is null)
            {
                throw new ArgumentNullException(nameof(hourData));
            }

            DateTime    = Utility.convertUnixToDateTime(double.Parse(hourData.SelectToken("dt").ToString(), CultureInfo.InvariantCulture));
            Temperature = double.Parse(hourData.SelectToken("temp").ToString(), CultureInfo.InvariantCulture);
            FeelsLike   = double.Parse(hourData.SelectToken("feels_like").ToString(), CultureInfo.InvariantCulture);
            Pressure    = int.Parse(hourData.SelectToken("pressure").ToString(), CultureInfo.InvariantCulture);
            Humidity    = int.Parse(hourData.SelectToken("humidity").ToString(), CultureInfo.InvariantCulture);
            DewPoint    = double.Parse(hourData.SelectToken("dew_point").ToString(), CultureInfo.InvariantCulture);
            Uvi         = double.Parse(hourData.SelectToken("uvi").ToString(), CultureInfo.InvariantCulture);
            Clouds      = int.Parse(hourData.SelectToken("clouds").ToString(), CultureInfo.InvariantCulture);
            Visibility  = int.Parse(hourData.SelectToken("visibility").ToString(), CultureInfo.InvariantCulture);
            Wind        = new Wind(hourData);
            Pop         = double.Parse(hourData.SelectToken("pop").ToString(), CultureInfo.InvariantCulture);
            foreach (JToken weather in hourData.SelectToken("weather"))
            {
                Weathers.Add(new Weather(weather));
            }
        }