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.Windows; usingSystem.Windows.Navigation; usingCampusAppWP8.Feed.GeoApi; usingCampusAppWP8.Feed.Mensa; usingCampusAppWP8.Resources; usingCampusAppWP8.Utility.Lui.MessageBoxes; usingMicrosoft.Phone.Controls; publicpartialclassMensaPage:PhoneApplicationPage { #regionMembers privateMensaFeedfeed; privateintselectedIndex; privateboolrefreshed=false; privateCampusSpsApicampusApi; privateboolforceLoad=false; #endregion #regionConstructor publicMensaPage() { this.InitializeComponent(); } #endregion #regionMethod #regionprotected protectedoverridevoidOnNavigatedTo(NavigationEventArgse) { base.OnNavigatedTo(e); this.ProgressBar.Visibility=System.Windows.Visibility.Visible; this.InitializeFeed(); } protectedoverridevoidOnNavigatedFrom(NavigationEventArgse) { this.feed.SaveData(this.refreshed); } #endregion #regionprivate privatevoidSpsApiIsReady() { this.InitializeFeed(this.campusApi.GetCampus()); } privatevoidSpsApiIsFail() { MessageBoxResultresult=MessageBoxes.ShowMainModelErrorMessageBox(AppResources.MsgBox_ErrorCampusLoc); this.InitializeFeed(Settings.UserProfil.DefaultCampus); } privatevoidDeterminCurrentCampusAndLoadFeed() { this.campusApi=newCampusSpsApi(); this.campusApi.onLoaded+=newSpsApi.OnLoaded(this.SpsApiIsReady); this.campusApi.onFailed+=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.OnLoaded(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(); } } privatevoidInitializeFeed() { if(Settings.AppSetting.GeoWatchEnable) { if(this.Dispatcher!=null) { this.Dispatcher.BeginInvoke(newAction(()=>this.DeterminCurrentCampusAndLoadFeed())); } else { this.DeterminCurrentCampusAndLoadFeed(); } } 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.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; } #endregion #endregion } }