public IAsyncOperation <LoadMoreItemsResult> LoadMoreItemsAsync(uint count) { return(AsyncInfo.Run(async cancelToken => { if (_mainSplittedModel.LoadingEntries == true || _LoadingEntries == true) { return new LoadMoreItemsResult { Count = 0 }; } _LoadingEntries = true; string LastEntryID = ""; if (Count > 0) { var last = this.OrderByDescending(x => x.data.created_utc).FirstOrDefault(); if (last != null) { LastEntryID = last.data.name; } } //Debug.WriteLine("Count: " + Count + " LastEntryID: " + LastEntryID); var res = await _reddit.GetEntriesAsync(Reddit.eKindOfGet.AfterLastEntry); _LoadingEntries = false; if (res.Success == true) { await _mainSplittedModel.FilterEntriesAsync(res.value.data.children); foreach (var item in res.value.data.children) { Add(item); } return new LoadMoreItemsResult { Count = count }; } else { return new LoadMoreItemsResult { Count = 0 }; } })); }
internal async Task <IncrementalLoadingCollectionOfEntries> LoadEntriesAsync(List <Child> Entries) { IncrementalLoadingCollectionOfEntries Response_Entries = null; LoadingEntries = true; try { if (Entries == null || Entries.Count == 0) { Reddit reddit = new Reddit(); var res = await reddit.GetEntriesAsync(Reddit.eKindOfGet.CleanSearchFromTheBeggining, 10); if (res.Success == false) { return(null); } Entries = res.value.data.children; } //To Tag the Read ones, and remove the Dissmissed ones. await FilterEntriesAsync(Entries); Services.SuspensionManager.PointerTo_ListOfEntries = Entries; //Reddit_Entries = new ObservableCollection<Child>(Entries); Response_Entries = new IncrementalLoadingCollectionOfEntries(this); foreach (var item in Entries) { Response_Entries.Add(item); } } catch { Response_Entries = null; } finally { LoadingEntries = false; } return(Response_Entries); }