Esempio n. 1
0
        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
                    };
                }
            }));
        }
Esempio n. 2
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);
        }