Ejemplo n.º 1
0
        public async Task <ForumResponse> FetchDirectoryAsync(CancellationToken cancelToken)
        {
            using (var wrapper = new ServiceWrapper(cancelToken))
            {
                var service = wrapper.Service;
                var result  = await service.GetForumListAsync(new ForumRequest
                {
                    userName         = this.Credential.UserName,
                    password         = this.Credential.Password,
                    forumsRowVersion = forumsRowVersion,
                });

                Interlocked.Exchange(ref forumsRowVersion, result.Body.GetForumListResult.forumsRowVersion);
                StoreRowVersions();

                return(result.Body.GetForumListResult);
            }
        }
Ejemplo n.º 2
0
        public async Task <TopicResponse> FetchArchivesAsync(IEnumerable <int> threadIds, CancellationToken cancelToken)
        {
            if (threadIds.Any() == false)
            {
                return new TopicResponse {
                           Messages = new JanusMessageInfo[0]
                }
            }
            ;

            using (var wrapper = new ServiceWrapper(cancelToken))
            {
                var service = wrapper.Service;

                var result = await service.GetTopicByMessageAsync(new TopicRequest
                {
                    userName   = this.Credential.UserName,
                    password   = this.Credential.Password,
                    messageIds = CreateArrayOfInt(threadIds)
                });

                return(result.Body.GetTopicByMessageResult);
            }
        }
Ejemplo n.º 3
0
        public async Task <ChangeResponse> FetchChangesAsync(IEnumerable <RequestForumInfo> forums, CancellationToken cancelToken)
        {
            using (var wrapper = new ServiceWrapper(cancelToken))
            {
                var service = wrapper.Service;
                var result  = await service.GetNewDataAsync(new ChangeRequest
                {
                    userName           = this.Credential.UserName,
                    password           = this.Credential.Password,
                    subscribedForums   = forums.ToArray(),
                    maxOutput          = -1,
                    messageRowVersion  = messageRowVersion,
                    ratingRowVersion   = ratingRowVersion,
                    moderateRowVersion = moderateRowVersion,
                });

                Interlocked.Exchange(ref messageRowVersion, result.Body.GetNewDataResult.lastForumRowVersion);
                Interlocked.Exchange(ref ratingRowVersion, result.Body.GetNewDataResult.lastRatingRowVersion);
                Interlocked.Exchange(ref moderateRowVersion, result.Body.GetNewDataResult.lastModerateRowVersion);
                StoreRowVersions();

                return(result.Body.GetNewDataResult);
            }
        }