MensaPage.xaml.cs CampusAppWP8::Pages::Mensa::MensaPage CampusAppWP8::Pages::Mensa //----------------------------------------------------------------------- //<copyrightfile="MensaPage.xaml.cs"company="BTU/IIT"> //Companycopyrighttag. //</copyright> //<author>stubbfel</author> //<sience>04.05.2013</sience> //---------------------------------------------------------------------- namespaceCampusAppWP8.Pages.Mensa { usingSystem; usingSystem.Threading; usingSystem.Windows; usingSystem.Windows.Navigation; usingCampusAppWP8.Api.GeoApi; usingCampusAppWP8.Feed.Mensa; usingCampusAppWP8.Resources; usingCampusAppWP8.Utility; usingCampusAppWP8.Utility.Lui.MessageBoxes; usingMicrosoft.Phone.Controls; usingMicrosoft.Phone.Shell; usingCampusAppWPortalLib8.Model.Mensa; publicpartialclassMensaPage:PhoneApplicationPage { #regionMembers privateMensaFeedfeed; privateintselectedIndex; privateboolrefreshed=false; privateCampusSpsApicampusApi; privateboolforceLoad=false; #endregion #regionConstructor publicMensaPage() { this.InitializeComponent(); ApplicationBarMenuItemmenuItem1=ApplicationBar.MenuItems[0]asApplicationBarMenuItem; ApplicationBarMenuItemmenuItem2=ApplicationBar.MenuItems[1]asApplicationBarMenuItem; ApplicationBarMenuItemmenuItem3=ApplicationBar.MenuItems[2]asApplicationBarMenuItem; if(menuItem1!=null) { menuItem1.Text=AppResources.Campus_CBMain; } if(menuItem2!=null) { menuItem2.Text=AppResources.Campus_CBSouth; } if(menuItem3!=null) { menuItem3.Text=AppResources.Campus_SFBMain; } } #endregion #regionMethod #regionprotected protectedoverridevoidOnNavigatedTo(NavigationEventArgse) { base.OnNavigatedTo(e); this.ProgressBar.Visibility=System.Windows.Visibility.Visible; this.InitializeFeed(); } protectedoverridevoidOnNavigatedFrom(NavigationEventArgse) { if(this.feed!=null) { this.feed.SaveData(this.refreshed); } } #endregion #regionprivate privatevoidSpsApiIsReady() { if(this.Dispatcher!=null) { this.Dispatcher.BeginInvoke(newAction(()=>this.InitializeFeed(this.campusApi.GetCampus()))); } else { this.InitializeFeed(this.campusApi.GetCampus()); } } privatevoidSpsApiIsFail() { if(this.Dispatcher!=null) { this.Dispatcher.BeginInvoke(newAction(()=>MessageBoxes.ShowMainModelErrorMessageBox(AppResources.MsgBox_ErrorCampusLoc))); this.Dispatcher.BeginInvoke(newAction(()=>this.InitializeFeed(Settings.UserProfil.DefaultCampus))); } } privatevoidDeterminCurrentCampusAndLoadFeed() { this.campusApi=newCampusSpsApi(); this.campusApi.OnLoaded+=newSpsApi.OnIO(this.SpsApiIsReady); this.campusApi.OnFailedLoad+=newSpsApi.OnFailed(this.SpsApiIsFail); this.campusApi.SetupCurrentCampusRequest(); this.campusApi.LoadData(); } privatevoidInitializeFeed(CampusAppWP8.Model.Setting.UserProfilModel.Campuscampus) { this.feed=MensaFeed.CreateCampusMensaFeed(campus); this.feed.OnLoaded+=newMensaFeed.OnIO(this.FeedIsReady); this.feed.OnFailedWeb+=newMensaFeed.OnFailed(this.FeedIsFailWeb); this.feed.OnFailedFile+=newMensaFeed.OnFailed(this.FeedIsFailFile); this.CalcSelectedIndex(); if(this.forceLoad) { this.feed.ForceWebUpdate(); this.forceLoad=false; } else { this.feed.LoadData(Utilities.GetLoadModus<MenuWeekModel>()); } } privatevoidInitializeFeed() { if(Settings.AppSetting.GeoWatchEnable&&Settings.AppSetting.UniNetwork) { Threadthread=newThread(newThreadStart(this.DeterminCurrentCampusAndLoadFeed)); thread.Start(); } else { this.InitializeFeed(Settings.UserProfil.DefaultCampus); } } privatevoidFeedIsReady() { this.SetupMensaPivot(); this.ProgressBar.Visibility=System.Windows.Visibility.Collapsed; } privatevoidFeedIsFailWeb() { MessageBoxResultresult=MessageBoxes.ShowMainModelErrorMessageBox(AppResources.MsgBox_ErrorMainModelLoadWeb); this.feed.ForceReadFile(); } privatevoidFeedIsFailFile() { MessageBoxResultresult=MessageBoxes.ShowMainModelErrorMessageBox(AppResources.MsgBox_ErrorMainModelLoadFile); this.ProgressBar.Visibility=System.Windows.Visibility.Collapsed; } privatevoidSetupMensaPivot() { this.MensaPivot.Title=AppResources.MensaApp_Title+"("+this.feed.Title+")"; this.MensaPivot.ItemsSource=this.feed.Model.Menus; this.MensaPivot.SelectedIndex=this.selectedIndex; } privatevoidCalcSelectedIndex() { DayOfWeektoday=DateTime.Now.DayOfWeek; inttodayIndex; switch(today) { caseDayOfWeek.Monday: todayIndex=0; break; caseDayOfWeek.Tuesday: todayIndex=1; break; caseDayOfWeek.Wednesday: todayIndex=2; break; caseDayOfWeek.Thursday: todayIndex=3; break; caseDayOfWeek.Friday: todayIndex=4; break; default: todayIndex=0; break; } this.selectedIndex=todayIndex; } privatevoidMensaForceUpdate_Click(objectsender,EventArgse) { this.ProgressBar.Visibility=System.Windows.Visibility.Visible; this.forceLoad=true; this.InitializeFeed(); this.refreshed=true; } privatevoidApplicationBarMenuItem_Click(objectsender,EventArgse) { this.ProgressBar.Visibility=System.Windows.Visibility.Visible; this.InitializeFeed(CampusAppWP8.Model.Setting.UserProfilModel.Campus.CB_MAIN); } privatevoidApplicationBarMenuItem2_Click(objectsender,EventArgse) { this.ProgressBar.Visibility=System.Windows.Visibility.Visible; this.InitializeFeed(CampusAppWP8.Model.Setting.UserProfilModel.Campus.CB_SOUTH); } privatevoidApplicationBarMenuItem3_Click(objectsender,EventArgse) { this.ProgressBar.Visibility=System.Windows.Visibility.Visible; this.InitializeFeed(CampusAppWP8.Model.Setting.UserProfilModel.Campus.SFB_MAIN); } #endregion #endregion } }