public void 天気一覧表示() { var weatherMock = new Mock <IWeatherRepository>(); var entities = new List <WeatherEntity>(); entities.Add( new WeatherEntity( 1, "東京", Convert.ToDateTime("2018/01/01 12:34:56"), 2, 12.3f)); entities.Add( new WeatherEntity( 2, "神戸", Convert.ToDateTime("2018/02/01 12:34:56"), 1, 22.3f)); weatherMock.Setup(x => x.GetData()).Returns(entities); var viewModel = new WeatherListViewModel(weatherMock.Object); viewModel.Weathers.Count.Is(2); viewModel.Weathers[0].AreaId.Is("0001"); viewModel.Weathers[0].AreaName.Is("東京"); viewModel.Weathers[0].DataDate.Is("2018/01/01 12:34:56"); viewModel.Weathers[0].Condition.Is("曇り"); viewModel.Weathers[0].Temperature.Is("12.30 ℃"); }
public void 天気一覧画面シナリオ() { // Moqインスタンスの生成 var weatherMock = new Mock <IWeatherRepository>(); var entities = new List <WeatherEntity>(); entities.Add( new WeatherEntity( 1, "東京", Convert.ToDateTime("2019/09/10 23:00:56"), 2, 12.3f)); entities.Add( new WeatherEntity( 2, "大阪", Convert.ToDateTime("2019/09/10 23:00:56"), 1, 22.1234f)); // Moqのセットアップ weatherMock.Setup(x => x.GetData()).Returns(entities); var viewModel = new WeatherListViewModel(weatherMock.Object); viewModel.Weathers.Count.Is(2); viewModel.Weathers[0].AreaId.Is("0001"); viewModel.Weathers[0].AreaName.Is("東京"); viewModel.Weathers[0].DateTime.Is("2019/09/10 23:00:56"); viewModel.Weathers[0].Contition.Is("曇り"); viewModel.Weathers[0].Temperature.Is("12.30 ℃"); }
public WeatherListPage() { InitializeComponent(); ViewModel = new WeatherListViewModel(); BindingContext = ViewModel; WeatherList.SetBinding(ListView.ItemsSourceProperty, nameof(ViewModel.WeatherRequests)); WeatherList.SetBinding(ListView.RefreshCommandProperty, nameof(ViewModel.RefreshCommand)); WeatherList.SetBinding(ListView.IsRefreshingProperty, nameof(ViewModel.IsRefreshing), BindingMode.OneWay); AddFavoriteToolbarItem.SetBinding(ToolbarItem.CommandProperty, nameof(ViewModel.AddFavoriteCommand)); }
private async Task <WeatherListViewModel> GetWeatherData(string cityName) { var httpClient = new HttpClient(); var responseString = await httpClient.GetStringAsync(string.Format( "https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid in (select woeid from geo.places(1) where text='{0}') and u='c'&format=json", cityName)); return(await Task.Run(() => { var dataModel = JsonConvert.DeserializeObject <YahooWeather>(responseString); if (dataModel == null) { return null; } var viewModel = new WeatherListViewModel { Code = dataModel.Query.Results.Channel.Item.Condition.Code, WeatherDate = dataModel.Query.Results.Channel.Item.Condition.Date, Temparature = string.Format("{0}\u02DA {1}", dataModel.Query.Results.Channel.Item.Condition.Temp, dataModel.Query.Results.Channel.Units.Temperature), WeatherCondition = dataModel.Query.Results.Channel.Item.Condition.Text, ImageSource = new UriImageSource { Uri = new Uri(string.Format("http://l.yimg.com/a/i/us/we/52/{0}.gif", dataModel.Query.Results.Channel.Item.Condition.Code)) }, CityAndCountry = string.Format("{0}, {1}", dataModel.Query.Results.Channel.Location.City, dataModel.Query.Results.Channel.Location.Country), Sunrise = string.Format("Sunrise: {0}", dataModel.Query.Results.Channel.Astronomy.Sunrise), Sunset = string.Format("Sunset: {0}", dataModel.Query.Results.Channel.Astronomy.Sunset), Humidity = string.Format("Humidity: {0}\u02DA{1}", dataModel.Query.Results.Channel.Atmosphere.Humidity, dataModel.Query.Results.Channel.Units.Temperature), Pressure = string.Format("Pressure: {0}{1}", dataModel.Query.Results.Channel.Atmosphere.Pressure, dataModel.Query.Results.Channel.Units.Pressure), Visibility = string.Format("Visibility: {0}", dataModel.Query.Results.Channel.Atmosphere.Visibility), Chill = string.Format("Chill: {0}\u02DA{1}", dataModel.Query.Results.Channel.Wind.Chill, dataModel.Query.Results.Channel.Units.Temperature), Direction = string.Format("Direction: {0}", dataModel.Query.Results.Channel.Wind.Direction), Speed = string.Format("Speed: {0}{1}", dataModel.Query.Results.Channel.Wind.Speed, dataModel.Query.Results.Channel.Units.Speed), Forecasts = new List <Forecast>() }; foreach (var forecast in dataModel.Query.Results.Channel.Item.Forecast) { viewModel.Forecasts.Add(new WeatherCheck.ViewModel.Forecast() { Day = forecast.Day, ImageSource = new UriImageSource { Uri = new Uri(string.Format("http://l.yimg.com/a/i/us/we/52/{0}.gif", forecast.Code)) }, Condition = forecast.Text, High = forecast.High + " ", Low = forecast.Low, }); } return viewModel; })); }
public WeatherListPage() { InitializeComponent(); WeatherRequestDataTemplateSelector = new WeatherRequestDataTemplateSelector(); ViewModel = new WeatherListViewModel(); BindingContext = ViewModel; WeatherList.SetBinding(ItemsView <Cell> .ItemsSourceProperty, nameof(ViewModel.WeatherRequests)); WeatherList.SetBinding(ListView.RefreshCommandProperty, nameof(ViewModel.RefreshCommand)); WeatherList.SetBinding(ListView.IsRefreshingProperty, nameof(ViewModel.IsRefreshing), BindingMode.OneWay); WeatherList.ItemTemplate = WeatherRequestDataTemplateSelector; AddFavoriteToolbarItem.SetBinding(MenuItem.CommandProperty, nameof(ViewModel.AddFavoriteCommand)); }
public void 天気一覧画面シナリオ() { var weatherMock = new Mock <IWeatherRepository>(); var entities = new List <WeatherEntity>(); entities.Add(new WeatherEntity(1, "東京", Convert.ToDateTime("2019/01/01 12:34:56"), 2, 12.3f)); entities.Add(new WeatherEntity(2, "神戸", Convert.ToDateTime("2019/02/02 12:34:56"), 1, 22.4f)); weatherMock.Setup(x => x.GetData()).Returns(entities); var viewModel = new WeatherListViewModel(weatherMock.Object); Assert.AreEqual(2, viewModel.Weathers.Count); Assert.AreEqual("0001", viewModel.Weathers[0].AreaId); Assert.AreEqual("東京", actual: viewModel.Weathers[0].AreaName); Assert.AreEqual("2019/01/01 12:34:56", viewModel.Weathers[0].DataDate); Assert.AreEqual("曇り", viewModel.Weathers[0].Condition); Assert.AreEqual("12.30℃", viewModel.Weathers[0].Temperature); }
public IActionResult ViewTable(int?page, WeatherListViewModel wew) { IQueryable <Weather> WeathersQ = db.Weathers.OrderBy(s => s.Date); if (wew.month != null && wew.year != null) { WeathersQ = db.Weathers.Where(p => p.Month == wew.month); WeathersQ = WeathersQ.Where(p => p.Year == wew.year); } if (wew.month == null && wew.year != null) { WeathersQ = db.Weathers.Where(p => p.Year == wew.year); } if (wew.month != null && wew.year == null) { TempData["msg"] = "<script>alert('Введите год');</script>"; } var result = WeathersQ.ToList(); ViewBag.Weathers1 = GetPagedNames(page, result); if (wew.Months == null) { wew.SetMonths(); } if (wew.Years == null) { wew.SetYears(); } WeatherListViewModel viewModel = new WeatherListViewModel { Weathers = WeathersQ, Months = wew.Months, Years = wew.Years }; return(View(viewModel)); }
public void 天気一覧画面シナリオ() { var weatherMock = new Mock <IWeatherRepository>(); var entities = new List <WeatherEntity>(); entities.Add( new WeatherEntity( 1, "東京", Convert.ToDateTime("2020/11/22 10:11:22"), 2, 12.3F) ); entities.Add( new WeatherEntity( 2, "神戸", Convert.ToDateTime("2020/11/30 9:01:01"), 1, 22.392F) ); weatherMock.Setup(x => x.GetData()).Returns(entities); var viewModel = new WeatherListViewModel(weatherMock.Object); viewModel.Weathers.Count.Is(2); viewModel.Weathers[0].AreaId.Is("0001"); viewModel.Weathers[0].AreaName.Is("東京"); viewModel.Weathers[0].DataDate.Is("2020/11/22 10:11:22"); viewModel.Weathers[0].Condition.Is("曇り"); viewModel.Weathers[0].Temperture.Is("12.30 ℃"); }