diff --git a/CampusAppWP8/CampusAppWP8/Feed/Link/ClubLinkFeed.cs b/CampusAppWP8/CampusAppWP8/Feed/Link/ClubLinkFeed.cs index 76f9d279..7f328f0a 100644 --- a/CampusAppWP8/CampusAppWP8/Feed/Link/ClubLinkFeed.cs +++ b/CampusAppWP8/CampusAppWP8/Feed/Link/ClubLinkFeed.cs @@ -12,6 +12,7 @@ namespace CampusAppWP8.Feed.Link using CampusAppWP8.Model; using CampusAppWP8.Model.Link; using CampusAppWP8.Resources; + using CampusAppWP8.Utility; /// /// This Class is for ClubLinkFeeds @@ -26,8 +27,9 @@ namespace CampusAppWP8.Feed.Link public ClubLinkFeed() : base(ModelType.FileAndFeed, Constants.FileLink_ClubLinks, Constants.UrlLink_ClubLinks) { - this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate); - this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate); + this.isFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDateOnLoad); + this.isFileUpToDateOnSave += new IsFileUpToDate(this.CheckIsFileUpToDateOnSave); + this.isModelUpToDateOnLoad += new IsModelUpToDate(this.CheckIsModelUpToDate); } #endregion @@ -58,12 +60,31 @@ namespace CampusAppWP8.Feed.Link /// reference of the FeedModel /// info about the file /// true, if file is up-to-date, otherwise false - private bool CheckIsFileUpToDate(LinkListModel model, FileInfo fileInfo) + private bool CheckIsFileUpToDateOnLoad(LinkListModel model, FileInfo fileInfo) { DateTime lastModified = fileInfo.LastWriteTime; return this.CheckIsUpToDate(lastModified); } + /// + /// Method check if the FeedFile is up-to-date + /// + /// reference of the FeedModel + /// info about the file + /// true, if file is up-to-date, otherwise false + private bool CheckIsFileUpToDateOnSave(LinkListModel model, FileInfo fileInfo) + { + bool retValue = true; + + if ((fileInfo.Exists == false) + || (fileInfo.Length == 0)) + { + retValue = false; + } + + return retValue; + } + /// /// Check if the model or file is up-to-date. /// @@ -71,16 +92,7 @@ namespace CampusAppWP8.Feed.Link /// true, if is up-to-date, otherwise false private bool CheckIsUpToDate(DateTime lastModified) { - DateTime temp = lastModified.AddDays(1); - - int diff = temp.CompareTo(DateTime.Now); - - if (diff < 0) - { - return false; - } - - return true; + return Utilities.DayDifference(Utilities.DifferenceType.Less, lastModified, 7.0); } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Feed/Link/CommonLinkFeed.cs b/CampusAppWP8/CampusAppWP8/Feed/Link/CommonLinkFeed.cs index 35c1db36..2c99598b 100644 --- a/CampusAppWP8/CampusAppWP8/Feed/Link/CommonLinkFeed.cs +++ b/CampusAppWP8/CampusAppWP8/Feed/Link/CommonLinkFeed.cs @@ -12,6 +12,7 @@ namespace CampusAppWP8.Feed.Link using CampusAppWP8.Model; using CampusAppWP8.Model.Link; using CampusAppWP8.Resources; + using CampusAppWP8.Utility; /// /// This Class is for CommonLinkFeeds @@ -26,8 +27,9 @@ namespace CampusAppWP8.Feed.Link public CommonLinkFeed() : base(ModelType.FileAndFeed, Constants.FileLink_CommonLinks, Constants.UrlLink_CommonLinks) { - this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate); - this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate); + this.isFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDateOnLoad); + this.isFileUpToDateOnSave += new IsFileUpToDate(this.CheckIsFileUpToDateOnSave); + this.isModelUpToDateOnLoad += new IsModelUpToDate(this.CheckIsModelUpToDate); } #endregion @@ -58,7 +60,26 @@ namespace CampusAppWP8.Feed.Link /// reference of the FeedModel /// info about the file /// true, if file is up-to-date, otherwise false - private bool CheckIsFileUpToDate(LinkListModel model, FileInfo fileInfo) + private bool CheckIsFileUpToDateOnSave(LinkListModel model, FileInfo fileInfo) + { + bool retValue = true; + + if ((fileInfo.Exists == false) + || (fileInfo.Length == 0)) + { + retValue = false; + } + + return retValue; + } + + /// + /// Method check if the FeedFile is up-to-date + /// + /// reference of the FeedModel + /// info about the file + /// true, if file is up-to-date, otherwise false + private bool CheckIsFileUpToDateOnLoad(LinkListModel model, FileInfo fileInfo) { DateTime lastModified = fileInfo.LastWriteTime; return this.CheckIsUpToDate(lastModified); @@ -71,16 +92,7 @@ namespace CampusAppWP8.Feed.Link /// true, if is up-to-date, otherwise false private bool CheckIsUpToDate(DateTime lastModified) { - DateTime temp = lastModified.AddDays(1); - - int diff = temp.CompareTo(DateTime.Now); - - if (diff < 0) - { - return false; - } - - return true; + return Utilities.DayDifference(Utilities.DifferenceType.Less, lastModified, 7.0); } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs index 265d1aca..659f110e 100644 --- a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs +++ b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs @@ -12,6 +12,7 @@ namespace CampusAppWP8.Feed.Mensa using CampusAppWP8.Model; using CampusAppWP8.Model.Mensa; using CampusAppWP8.Resources; + using CampusAppWP8.Utility; /// /// This Class is for MensaFeeds @@ -26,8 +27,9 @@ namespace CampusAppWP8.Feed.Mensa public MensaFeed() : base(ModelType.FileAndFeed, Constants.FileMensa_Shedule, Constants.UrlMensa_Week) { - this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate); - this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate); + this.isFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDateOnLoad); + this.isFileUpToDateOnSave += new IsFileUpToDate(this.CheckIsFileUpToDateOnSave); + this.isModelUpToDateOnLoad += new IsModelUpToDate(this.CheckIsModelUpToDate); } #endregion @@ -58,12 +60,31 @@ namespace CampusAppWP8.Feed.Mensa /// reference of the FeedModel /// info about the file /// true, if file is up-to-date, otherwise false - private bool CheckIsFileUpToDate(MenuWeekModel model, FileInfo fileInfo) + private bool CheckIsFileUpToDateOnLoad(MenuWeekModel model, FileInfo fileInfo) { DateTime lastModified = fileInfo.LastWriteTime; return this.CheckIsUpToDate(lastModified); } + /// + /// Method check if the FeedFile is up-to-date + /// + /// reference of the FeedModel + /// info about the file + /// true, if file is up-to-date, otherwise false + private bool CheckIsFileUpToDateOnSave(MenuWeekModel model, FileInfo fileInfo) + { + bool retValue = true; + + if ((fileInfo.Exists == false) + || (fileInfo.Length == 0)) + { + retValue = false; + } + + return retValue; + } + /// /// Method check if the last modification was later as the NewMenuWeekDay /// @@ -81,6 +102,7 @@ namespace CampusAppWP8.Feed.Mensa return true; } + #endregion #endregion diff --git a/CampusAppWP8/CampusAppWP8/Feed/StudentCouncil/StudentCouncilFeed.cs b/CampusAppWP8/CampusAppWP8/Feed/StudentCouncil/StudentCouncilFeed.cs index a2520fc3..3c8027bf 100644 --- a/CampusAppWP8/CampusAppWP8/Feed/StudentCouncil/StudentCouncilFeed.cs +++ b/CampusAppWP8/CampusAppWP8/Feed/StudentCouncil/StudentCouncilFeed.cs @@ -12,6 +12,7 @@ namespace CampusAppWP8.Feed.StudentCouncil using CampusAppWP8.Model; using CampusAppWP8.Model.StudentCouncil; using CampusAppWP8.Resources; + using CampusAppWP8.Utility; /// /// This Class is for StudentCouncilFeed @@ -26,8 +27,9 @@ namespace CampusAppWP8.Feed.StudentCouncil public StudentCouncilFeed() : base(ModelType.FileAndFeed, Constants.FileStudentCouncil_StudentCouncils, Constants.UrlStudentCouncil_StudentCouncils) { - this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate); - this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate); + this.isFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDateOnLoad); + this.isFileUpToDateOnSave += new IsFileUpToDate(this.CheckIsFileUpToDateOnSave); + this.isModelUpToDateOnLoad += new IsModelUpToDate(this.CheckIsModelUpToDate); } #endregion @@ -58,12 +60,30 @@ namespace CampusAppWP8.Feed.StudentCouncil /// reference of the FeedModel /// info about the file /// true, if file is up-to-date, otherwise false - private bool CheckIsFileUpToDate(StudentCouncilListModel model, FileInfo fileInfo) + private bool CheckIsFileUpToDateOnLoad(StudentCouncilListModel model, FileInfo fileInfo) { DateTime lastModified = fileInfo.LastWriteTime; return this.CheckIsUpToDate(lastModified); } + /// + /// Method check if the FeedFile is up-to-date + /// + /// reference of the FeedModel + /// info about the file + /// true, if file is up-to-date, otherwise false + private bool CheckIsFileUpToDateOnSave(StudentCouncilListModel model, FileInfo fileInfo) + { + bool retValue = true; + + if ((fileInfo.Exists == false) + || (fileInfo.Length == 0)) + { + retValue = false; + } + + return retValue; + } /// /// Check if the model or file is up-to-date. /// @@ -71,16 +91,7 @@ namespace CampusAppWP8.Feed.StudentCouncil /// true, if is up-to-date, otherwise false private bool CheckIsUpToDate(DateTime lastModified) { - DateTime temp = lastModified.AddDays(1); - - int diff = temp.CompareTo(DateTime.Now); - - if (diff < 0) - { - return false; - } - - return true; + return Utilities.DayDifference(Utilities.DifferenceType.Less, lastModified, 7.0); } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/Links/LinkPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Links/LinkPage.xaml.cs index f0ccccaa..e12e313b 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Links/LinkPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Links/LinkPage.xaml.cs @@ -115,6 +115,7 @@ namespace CampusAppWP8.Pages.Links { this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed; } + this.commonLinkFeed.SaveData(); } /// @@ -128,6 +129,7 @@ namespace CampusAppWP8.Pages.Links { this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed; } + this.clubLinkFeed.SaveData(); } /// diff --git a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs index 8b531f1b..a1e18c30 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs @@ -88,6 +88,7 @@ namespace CampusAppWP8.Pages.Mensa { this.SetupMensaPivot(); this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed; + this.feed.SaveData(); } /// diff --git a/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs index 7d484a9b..1be5c5b5 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs @@ -83,6 +83,7 @@ namespace CampusAppWP8.Pages.Openinghours { this.SetupInstitutionList(); this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed; + this.feed.SaveData(); } /// diff --git a/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs index fa36d6a6..9b427ae6 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/StudentCouncil/StudentCouncilPage.xaml.cs @@ -77,6 +77,7 @@ namespace CampusAppWP8.Pages.StudentCouncil { this.SetupStudentCouncilPivot(); this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed; + this.feed.SaveData(); } ///