示例#1
0
        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 ℃");
        }
示例#2
0
        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 ℃");
        }
示例#3
0
        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;
            }));
        }
示例#5
0
        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);
        }
示例#7
0
        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));
        }
示例#8
0
        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 ℃");
        }