public async Task <IEnumerable <InstaDirectInboxThreadWrapper> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = new CancellationToken()) { var pagesToLoad = pageSize / 20; if (pagesToLoad < 1) { pagesToLoad = 1; } var pagination = PaginationParameters.MaxPagesToLoad(pagesToLoad); pagination.StartFromMaxId(OldestCursor); var result = await _instaApi.GetInboxAsync(pagination); InboxContainer container; if (result.Status == ResultStatus.Succeeded) { container = result.Value; if (_firstTime) { _firstTime = false; FirstUpdated?.Invoke(container.SeqId, container.SnapshotAt); } } else { return(new List <InstaDirectInboxThreadWrapper>(0)); } UpdateExcludeThreads(container); return(container.Inbox.Threads.Select(x => new InstaDirectInboxThreadWrapper(x, _instaApi))); }
public async Task <IEnumerable <InstaDirectInboxThreadWrapper> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = new CancellationToken()) { if (!_firstTime && !HasOlder) { return(Array.Empty <InstaDirectInboxThreadWrapper>()); } var pagesToLoad = pageSize / 20; if (pagesToLoad < 1) { pagesToLoad = 1; } var pagination = PaginationParameters.MaxPagesToLoad(pagesToLoad); pagination.StartFromMaxId(OldestCursor); var result = await _instaApi.GetInboxAsync(pagination, PendingInbox); InboxContainer container; if (result.Status == ResultStatus.Succeeded) { container = result.Value; if (_firstTime) { _firstTime = false; FirstUpdated?.Invoke(container.SeqId, container.SnapshotAt); } } else { return(new List <InstaDirectInboxThreadWrapper>(0)); } UpdateExcludeThreads(container); var wrappedThreadList = new List <InstaDirectInboxThreadWrapper>(); foreach (var directThread in container.Inbox.Threads) { var wrappedThread = new InstaDirectInboxThreadWrapper(directThread, _instaApi); wrappedThread.PropertyChanged += OnThreadChanged; wrappedThreadList.Add(wrappedThread); } return(wrappedThreadList); }