protected override IEnumerable <Data.SmileyDataModel> LoadPageInBackground(int index) { var list = new List <Data.SmileyDataModel>(); if (System.ComponentModel.DesignerProperties.IsInDesignTool) { return(list); } // load smilies from the web, or from cache else if (this._smilies.Count == 0) { IEnumerable <TagMetadata> cache = CoreExtensions.LoadFromFile <List <TagMetadata> >("smilies.xml"); if (cache == null) { cache = ForumTasks.FetchAllSmilies(); } this._smilies.AddRange(cache); if (this._smilies.Count != 0) { this._smilies.SaveToFile("smilies.xml"); } this._allSmilies = new List <Data.SmileyDataModel>( this._smilies.Select(item => new Data.SmileyDataModel(item))); double maxPages = this._smilies.Count / SMILIES_PER_PAGE; this._maxPages = (int)Math.Ceiling(maxPages); } // create a sub set of smilies at a time if (index <= _maxPages) { var page = this._allSmilies.Page(index, SMILIES_PER_PAGE); list.AddRange(page); } return(list); }
public override IList <ForumMetadata> LoadForumList() { return(new List <ForumMetadata>(ForumTasks.FetchAllForums())); }