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