Esempio n. 1
0
 public UpdateTileTask()
 {
     userService = UserService.GetInstance();
     weatherService = WeatherService.GetInstance();
     userRespose = new GetUserRespose();
     userCityRespose = new GetUserCityRespose();
     weatherTypeRespose = new GetWeatherTypeRespose();
 }
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            BackgroundTaskDeferral _deferral = taskInstance.GetDeferral();

            userRespose = await userService.GetUserAsync();

            bool IsAutoUpdateTime = false;

            //是否处于停止更新时间
            if (userRespose.UserConfig.IsAutoUpdateTimeSpan == 1)
            {
                IsAutoUpdateTime = IsAutoUpdateByTime();
            }

            if (!IsAutoUpdateTime)
            {
                userCityRespose = await userService.GetUserCityAsync();

                if (userCityRespose != null && userRespose != null)
                {
                    //网络是否开启
                    if (NetHelper.IsNetworkAvailable())
                    {
                        //无论使用移动数据还是WIFI都允许自动更新
                        if (userRespose.UserConfig.IsWifiAutoUpdate == 0)
                        {
                            await UpdateWeather();
                        }
                        else
                        {
                            if (NetHelper.IsWifiConnection())
                            {
                                await UpdateWeather();
                            }
                            else
                            {
                                await UpdateWeatherByClientTask();
                            }
                        }
                    }
                    else
                    {
                        await UpdateWeatherByClientTask();
                    }
                }
            }
            //表示完成任务
            _deferral.Complete();
        }
Esempio n. 3
0
        public AddCityPage()
        {
            this.InitializeComponent();

            this.navigationHelper = new NavigationHelper(this);
            this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required;


            cityService = CityService.GetInstance();
            userService = UserService.GetInstance();
            resposeCities = new GetCityRespose();
            resposeHotCities = new GetHotCityRespose();
            resposeUserCity = new GetUserCityRespose();

        }
Esempio n. 4
0
        public MyCityPage()
        {
            this.InitializeComponent();

            this.navigationHelper = new NavigationHelper(this);
            this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
            this.navigationHelper.SaveState += this.NavigationHelper_SaveState;

            userService = UserService.GetInstance();
            weatherService = WeatherService.GetInstance();
            userRespose = new GetUserRespose();
            userCityRespose = new GetUserCityRespose();
            weatherTypeRespose = new GetWeatherTypeRespose();
            weatherRespose = new GetWeatherRespose();
            myCityPage = new ViewModel.MyCityPage();
            myCityPageModelList = new List<ViewModel.MyCityPageModel>();

        }
Esempio n. 5
0
        public PivotPage()
        {
            this.InitializeComponent();

            this.navigationHelper = new NavigationHelper(this);
            this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
            this.navigationHelper.SaveState += this.NavigationHelper_SaveState;
            this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required;

            userService = UserService.GetInstance();
            weatherService = WeatherService.GetInstance();
            settingService = SettingService.GetInstance();
            userRespose = new GetUserRespose();
            userCityRespose = new GetUserCityRespose();
            weatherRespose = new GetWeatherRespose();
            weatherTypeRespose = new GetWeatherTypeRespose();
            settingAutoUpdateTimeRepose = new GetSettingAutoUpdateTimeRepose();
        }
Esempio n. 6
0
        public MainPage()
        {
            this.navigationHelper = new NavigationHelper(this);
            this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required;

            userService = UserService.GetInstance();
            weatherService = WeatherService.GetInstance();
            settingService = SettingService.GetInstance();
            colorService = ColorService.GetInstance();

            userRespose = new GetUserRespose();
            userCityRespose = new GetUserCityRespose();
            weatherRespose = new GetWeatherRespose();
            weatherTypeRespose = new GetWeatherTypeRespose();
            settingAutoUpdateTimeRepose = new GetSettingAutoUpdateTimeRepose();
            colorResponse = new GetColorRespose();
            homePageModel = new HomePageModel();


            this.InitializeComponent();
            Loaded += MainPage_Loaded;
        }
Esempio n. 7
0
 /// <summary>
 /// 常用城市磁贴排序
 /// </summary>
 /// <param name="respose"></param>
 /// <returns></returns>
 private List<MyCityPageModel> SortCityPageModelList(GetUserCityRespose respose)
 {
     respose = SortUserCity(respose);
     List<MyCityPageModel> newList = new List<MyCityPageModel>();
     foreach (var item in respose.UserCities)
     {
         MyCityPageModel model = myCityPageModelList.FirstOrDefault(x => x.CityId == item.CityId);
         newList.Add(model);
     }
     return newList;
 }
Esempio n. 8
0
 /// <summary>
 /// 常用城市排序
 /// </summary>
 /// <param name="respose"></param>
 /// <returns></returns>
 private GetUserCityRespose SortUserCity(GetUserCityRespose respose)
 {
     var data = from c in respose.UserCities
                orderby c.IsDefault descending, c.AddTime descending
                select c;
     respose.UserCities = data.ToList();
     return respose;
 }
Esempio n. 9
0
        /// <summary>
        /// 此部分中提供的方法只是用于使
        /// NavigationHelper 可响应页面的导航方法。
        /// <para>
        /// 应将页面特有的逻辑放入用于
        /// <see cref="NavigationHelper.LoadState"/>
        /// 和 <see cref="NavigationHelper.SaveState"/> 的事件处理程序中。
        /// 除了在会话期间保留的页面状态之外
        /// LoadState 方法中还提供导航参数。
        /// </para>
        /// </summary>
        /// <param name="e">提供导航方法数据和
        /// 无法取消导航请求的事件处理程序。</param>
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            this.navigationHelper.OnNavigatedTo(e);

            try
            {
                userCityRespose = await userService.GetUserCityAsync();

                userRespose = await userService.GetUserAsync();

                weatherTypeRespose = await weatherService.GetWeatherTypeAsync();

                if (userCityRespose != null && userRespose != null && weatherTypeRespose != null)
                {
                    await GetWeather(0);
                }

            }
            catch (Exception)
            {

                throw;
            }


        }
Esempio n. 10
0
        /// <summary>
        /// 此部分中提供的方法只是用于使
        /// NavigationHelper 可响应页面的导航方法。
        /// <para>
        /// 应将页面特有的逻辑放入用于
        /// <see cref="NavigationHelper.LoadState"/>
        /// 和 <see cref="NavigationHelper.SaveState"/> 的事件处理程序中。
        /// 除了在会话期间保留的页面状态之外
        /// LoadState 方法中还提供导航参数。
        /// </para>
        /// </summary>
        /// <param name="e">提供导航方法数据和
        /// 无法取消导航请求的事件处理程序。</param>
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            colorResponse = new GetColorRespose();

            StatusBar sb = StatusBar.GetForCurrentView();
            await sb.HideAsync();

            VisualStateManager.GoToState(this, "MoreHide", false);
            cityId = e.Parameter == null ? "" : e.Parameter.ToString();
            this.navigationHelper.OnNavigatedTo(e);

            userCityRespose = await userService.GetUserCityAsync();

            if (userCityRespose == null)
            {
                Frame.Navigate(typeof(AddCityPage), 1);
                return;
            }
            else
            {
                if (cityId == "")
                {
                    cityId = userCityRespose.UserCities.FirstOrDefault().CityId;
                }
                try
                {
                    userRespose = await userService.GetUserAsync();
                    weatherTypeRespose = await weatherService.GetWeatherTypeAsync();
                    await GetWeather(cityId, 0);

                    colorResponse = await colorService.GetColorAsync();
                    int timeSection = TimeHelper.GetNowSectionByWeight();
                    ChangeBgColor(timeSection);


                }
                catch (Exception)
                {


                }
                _timer = new DispatcherTimer();
                _timer.Interval = TimeSpan.FromMinutes(1);
                _timer.Tick += _timer_Tick;
                _timer.Start();
            }

        }
Esempio n. 11
0
        /// <summary>
        /// 此部分中提供的方法只是用于使
        /// NavigationHelper 可响应页面的导航方法。
        /// <para>
        /// 应将页面特有的逻辑放入用于
        /// <see cref="NavigationHelper.LoadState"/>
        /// 和 <see cref="NavigationHelper.SaveState"/> 的事件处理程序中。
        /// 除了在会话期间保留的页面状态之外
        /// LoadState 方法中还提供导航参数。
        /// </para>
        /// </summary>
        /// <param name="e">提供导航方法数据和
        /// 无法取消导航请求的事件处理程序。</param>
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            cityId = e.Parameter == null ? "" : e.Parameter.ToString();
            this.navigationHelper.OnNavigatedTo(e);

            userCityRespose = await userService.GetUserCityAsync();

            if (userCityRespose == null)
            {
                Frame.Navigate(typeof(AddCityPage), 1);
                return;
            }
            else
            {
                userRespose = await userService.GetUserAsync();
                weatherTypeRespose = await weatherService.GetWeatherTypeAsync();
                await GetWeather(cityId, 0);
            }

            HardwareButtons.BackPressed += HardwareButtons_BackPressed;

        }
Esempio n. 12
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            this.navigationHelper.OnNavigatedTo(e);

            // 获取用户城市数据
            resposeUserCity = await userService.GetUserCityAsync();

            // 获取城市
            resposeCities = await cityService.GetCityAsync();
            // 获取人们城市
            resposeHotCities = await cityService.GetHotCityAsync(); ;

            // 数据绑定
            page = new ViewModel.SelectCityPage();

            page.Cities = resposeCities.Cities;

            page.HotCities = resposeHotCities.Cities;

            LayoutRoot.DataContext = page;

        }
Esempio n. 13
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="cityName"></param>
        /// <returns></returns>
        public async Task<bool> UpdateUserCity(string cityName)
        {
            bool isAdd = false;

            Model.UserCity userCity = new Model.UserCity()
            {
                CityId = (from c in page.Cities
                          where c.DistrictZH == cityName
                          select c.ID).FirstOrDefault(),
                AddTime = DateTime.Now,
                CityName = cityName.Trim(),
                IsDefault = 1
            };
            GetUserCityRespose respose = new GetUserCityRespose();
            List<Model.UserCity> userCityList = new List<Model.UserCity>();
            userCityList.Add(userCity);
            respose.UserCities = userCityList;
            await userService.SaveUserCity(respose);
            isAdd = true;

            return isAdd;
        }
Esempio n. 14
0
        public async Task<bool> UpdateUserCity(string cityName)
        {
            bool isAdd = false;

            Model.UserCity userCity = new Model.UserCity()
            {
                CityId = (from c in page.Cities
                          where c.District == cityName
                          select c.Id).FirstOrDefault(),
                AddTime = DateTime.Now,
                CityName = cityName.Trim(),
                IsDefault = isNotFirst == false ? 1 : 0
            };
            if (!isNotFirst)
            {
                GetUserCityRespose respose = new GetUserCityRespose();
                List<Model.UserCity> userCityList = new List<Model.UserCity>();
                userCityList.Add(userCity);
                respose.UserCities = userCityList;
                await userService.SaveUserCity(SortUserCity(respose));
                isAdd = true;
            }
            else
            {
                if (resposeUserCity.UserCities.Count < 5)
                {
                    var count = resposeUserCity.UserCities.Count(x => x.CityName.Contains(cityName.Trim()));

                    if (count == 0)
                    {
                        resposeUserCity.UserCities.Add(userCity);

                        await userService.SaveUserCity(SortUserCity(resposeUserCity));
                        isAdd = true;
                    }
                    else
                    {
                        NotifyUser("该城市已加入常用城市列表");
                    }
                }
                else
                {
                    NotifyUser("因资源有限,每人最多拥有5座常用城市");
                }
            }

            return isAdd;
        }
Esempio n. 15
0
        private async void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
        {

            resposeUserCity = await userService.GetUserCityAsync();

            if (resposeUserCity == null)
            {
                Application.Current.Exit();
            }
            else
            {
                Frame.Navigate(typeof(PivotPage));
            }
        }
Esempio n. 16
0
        /// <summary>
        /// 此部分中提供的方法只是用于使
        /// NavigationHelper 可响应页面的导航方法。
        /// <para>
        /// 应将页面特有的逻辑放入用于
        /// <see cref="NavigationHelper.LoadState"/>
        /// 和 <see cref="NavigationHelper.SaveState"/> 的事件处理程序中。
        /// 除了在会话期间保留的页面状态之外
        /// LoadState 方法中还提供导航参数。
        /// </para>
        /// </summary>
        /// <param name="e">提供导航方法数据和
        /// 无法取消导航请求的事件处理程序。</param>
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            this.navigationHelper.OnNavigatedTo(e);

            resposeUserCity = await userService.GetUserCityAsync();

            if (resposeUserCity == null)
            {
                isNotFirst = false;
            }
            else
            {
                isNotFirst = true;
            }

            resposeCities = await cityService.GetCityAsync();

            resposeHotCities = await cityService.GetHotCityAsync(); ;

            page = new ViewModel.SelectCityPage();
            page.Cities = resposeCities.Cities;
            page.HotCities = resposeHotCities.Cities;
            LayoutRoot.DataContext = page;

            HardwareButtons.BackPressed += HardwareButtons_BackPressed;
        }