From 6197a4cc12c49fde74f9cc8899932554e75011df Mon Sep 17 00:00:00 2001 From: Christian Fiedler Date: Mon, 11 Nov 2013 15:15:40 +0100 Subject: [PATCH] added timespan-from-today relative appointment loading --- .../Feed/TimeTable/AppointmentFeed.cs | 30 ++++++++++++++++++- .../CampusAppWP8/Pages/StartPage.xaml | 1 + .../CampusAppWP8/Pages/StartPage.xaml.cs | 20 +++++++++++++ .../CampusAppWP8/Pages/TimeTable/TimeTable.cs | 16 ++++++++-- .../CampusAppWP8/Properties/WMAppManifest.xml | 2 +- 5 files changed, 65 insertions(+), 4 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Feed/TimeTable/AppointmentFeed.cs b/CampusAppWP8/CampusAppWP8/Feed/TimeTable/AppointmentFeed.cs index 2131a7d8..6e52cc16 100644 --- a/CampusAppWP8/CampusAppWP8/Feed/TimeTable/AppointmentFeed.cs +++ b/CampusAppWP8/CampusAppWP8/Feed/TimeTable/AppointmentFeed.cs @@ -8,6 +8,7 @@ //----------------------------------------------------------------------- namespace CampusAppWP8.Feed.TimeTable { + using System; using System.Collections.Generic; using System.IO; using System.Text; @@ -23,6 +24,8 @@ namespace CampusAppWP8.Feed.TimeTable /// public class AppointmentFeed : XmlModel { + private TimeSpan span = TimeSpan.Zero; + /// Initializes a new instance of the AppointmentFeed class. /// Fiedler, 06.11.2013. /// (Optional) the automatic load. @@ -39,6 +42,21 @@ namespace CampusAppWP8.Feed.TimeTable } } + public AppointmentFeed(TimeSpan span, bool autoLoad = true) + : base(ModelType.File, Constants.FileAppointments_Name) + { + this.span = span; + + this.IsFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDateOnLoad); + this.IsFileUpToDateOnSave += new IsFileUpToDate(this.CheckIsFileUpToDateOnSave); + this.IsModelUpToDateOnLoad += new IsModelUpToDate(this.CheckIsModelUpToDate); + + if (autoLoad == true) + { + this.LoadData(); + } + } + /// Check is model up to date. /// Fiedler, 06.11.2013. /// The model. @@ -113,7 +131,17 @@ namespace CampusAppWP8.Feed.TimeTable AppointmentModel newAppModel = new AppointmentModel(appStr[i]); - this.Model.Appointments.Add(newAppModel); + if (this.span.Equals(TimeSpan.Zero)) + { + this.Model.Appointments.Add(newAppModel); + } + else + { + if (newAppModel.IsDate(DateTime.Today, this.span.Days) >= 0) + { + this.Model.Appointments.Add(newAppModel); + } + } } } diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml index 06f98638..2203c800 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml @@ -276,6 +276,7 @@ + diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs index 9f84551d..dde76ad0 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs @@ -17,6 +17,7 @@ namespace CampusAppWP8.Pages using CampusAppWP8.Feed.Utility; using CampusAppWP8.File.Places; using CampusAppWP8.Model.Setting; + using CampusAppWP8.Pages.TimeTable; using CampusAppWP8.Resources; using CampusAppWP8.Utility; using CampusAppWP8.Utility.Lui.MessageBoxes; @@ -58,6 +59,7 @@ namespace CampusAppWP8.Pages ApplicationBarMenuItem menuItem3 = ApplicationBar.MenuItems[2] as ApplicationBarMenuItem; ApplicationBarMenuItem menuItem4 = ApplicationBar.MenuItems[3] as ApplicationBarMenuItem; ApplicationBarMenuItem menuItem5 = ApplicationBar.MenuItems[4] as ApplicationBarMenuItem; + ApplicationBarMenuItem menuItem6 = ApplicationBar.MenuItems[5] as ApplicationBarMenuItem; if (menuItem1 != null) { @@ -85,10 +87,22 @@ namespace CampusAppWP8.Pages } else { + /* ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count - 1); ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count - 1); + */ + ApplicationBar.MenuItems.Remove(menuItem3); + ApplicationBar.MenuItems.Remove(menuItem4); } + if (menuItem6 != null) + { + menuItem6.Text = AppResources.TimeTableApp_Title; + } + + TimeTable.TimeTable.InitFeed(); + + if (!Settings.AppSetting.InitApp) { this.InitPlaceFile(); @@ -462,6 +476,12 @@ namespace CampusAppWP8.Pages #endregion + private void ApplicationBarMenuItem_Click_1(object sender, EventArgs e) + { + Uri url = new Uri(Constants.PathTimeTable_Day, UriKind.Relative); + NavigationService.Navigate(url); + } + #endregion } } \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTable.cs b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTable.cs index 526ef841..7cdc525c 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTable.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/TimeTable.cs @@ -68,9 +68,21 @@ namespace CampusAppWP8.Pages.TimeTable /// Fiedler, 06.11.2013. public static void InitFeed() { - if(TimeTable.feed == null) + TimeTable.InitFeed(TimeSpan.Zero); + } + + public static void InitFeed(TimeSpan span) + { + if (TimeTable.feed == null) { - TimeTable.feed = new AppointmentFeed(false); + if (span.Equals(TimeSpan.Zero)) + { + TimeTable.feed = new AppointmentFeed(false); + } + else + { + TimeTable.feed = new AppointmentFeed(span, false); + } TimeTable.feed.OnFailedFile += new CampusAppWPortalLib8.Model.AbstractMainModel.OnFailed(TimeTable.OnLoadFailed); TimeTable.feed.LoadData(); } diff --git a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml index ebcb1c37..288b01c9 100644 --- a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml +++ b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml @@ -13,7 +13,7 @@ - +