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); } }
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); } }
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); } }