MensaFeed.cs CampusAppWP8::Feed::Mensa::MensaFeed CampusAppWP8::Feed::Mensa //----------------------------------------------------------------------- //<copyrightfile="MensaFeed.cs"company="BTU/IIT"> //Companycopyrighttag. //</copyright> //<author>stubbfel</author> //<sience>03.05.2013</sience> //---------------------------------------------------------------------- namespaceCampusAppWP8.Feed.Mensa { usingSystem; usingSystem.IO; usingCampusAppWP8.Model; usingCampusAppWP8.Model.Mensa; publicabstractclassMensaFeed:XmlModel<MenuWeekModel> { #regionConstructor protectedMensaFeed(stringfileName,stringfeedUrl) :base(ModelType.FileAndFeed,fileName,feedUrl) { this.isFileUpToDateOnLoad+=newIsFileUpToDate(this.CheckIsFileUpToDate); this.isModelUpToDateOnLoad+=newIsModelUpToDate(this.CheckIsModelUpToDate); this.isFileUpToDateOnSave+=newIsFileUpToDate(this.CheckIsFileUpToDate); } #endregion #regionMethod #regionpublic publicstaticMensaFeedCreateCampusMensaFeed(CampusAppWP8.Model.Setting.UserProfilModel.Campuscampus) { switch(campus) { caseCampusAppWP8.Model.Setting.UserProfilModel.Campus.CB_MAIN: returnnewMensaFeedCBMain(); caseCampusAppWP8.Model.Setting.UserProfilModel.Campus.CB_NORTH: returnnewMensaFeedCBNorth(); caseCampusAppWP8.Model.Setting.UserProfilModel.Campus.CB_SOUTH: returnnewMensaFeedCBSouth(); caseCampusAppWP8.Model.Setting.UserProfilModel.Campus.SFB_MAIN: returnnewMensaFeedSBFMain(); default: returnnewMensaFeedCBMain(); } } #endregion #regionPrivate privateboolCheckIsModelUpToDate(MenuWeekModelmodel) { if(model==null) { returnfalse; } DateTimelastModified=model.CreateTime; returnthis.CheckIsUpToDate(lastModified); } privateboolCheckIsFileUpToDate(MenuWeekModelmodel,FileInfofileInfo) { if(fileInfo==null||!fileInfo.Exists) { returnfalse; } DateTimelastModified=fileInfo.LastWriteTime; returnthis.CheckIsUpToDate(lastModified); } privateboolCheckIsUpToDate(DateTimelastModified) { intdiff=lastModified.CompareTo(MenuWeekModel.CalcFirstWeekDay()); if(diff<0) { returnfalse; } returntrue; } #endregion #endregion } }