MensaFeed.cs CampusAppWP8::Feed::Mensa::MensaFeed CampusAppWP8::Feed::Mensa //----------------------------------------------------------------------- //<copyrightfile="MensaFeed.cs"company="BTU/IIT"> //TheMITLicense(MIT).Copyright(c)2013BTU/IIT. //</copyright> //<author>Stubbfel</author> //<date>14.10.2013</date> //<summary>Implementsthemensafeedclass</summary> //----------------------------------------------------------------------- namespaceCampusAppWP8.Feed.Mensa { usingSystem; usingSystem.IO; usingCampusAppWP8.Model; usingCampusAppWPortalLib8.Model.Mensa; usingCampusAppWPortalLib8.Model; 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 #regionProperty publicstringTitle{get;protectedset;} #endregion #regionMethod #regionpublic publicstaticMensaFeedCreateCampusMensaFeed(CampusAppWPortalLib8.Model.Settings.Campuscampus) { switch(campus) { caseCampusAppWPortalLib8.Model.Settings.Campus.CB_MAIN: returnnewMensaFeedCBMain(); caseCampusAppWPortalLib8.Model.Settings.Campus.CB_NORTH: returnnewMensaFeedCBNorth(); caseCampusAppWPortalLib8.Model.Settings.Campus.CB_SOUTH: returnnewMensaFeedCBSouth(); caseCampusAppWPortalLib8.Model.Settings.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||fileInfo.Length<1) { returnfalse; } DateTimelastModified=fileInfo.LastWriteTime; returnthis.CheckIsUpToDate(lastModified); } privateboolCheckIsUpToDate(DateTimelastModified) { intdiff=lastModified.CompareTo(MenuWeekModel.CalcFirstWeekDay()); if(diff<0) { returnfalse; } returntrue; } #endregion #endregion } }