NavigateToPageAsync() public method

public NavigateToPageAsync ( int index ) : Task>
index int
return Task>
コード例 #1
0
ファイル: Program.cs プロジェクト: dream-365/toolkit
        private static void FroumCacheDemo()
        {
            var provider = DefaultLocalFileSystemHttpCacheProvider.Current;

            Regex urlRegex = new Regex(@"(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})");

            var resolver = new RegexPathResolver(urlRegex, "thread_id_{1}.xml");

            provider.Configure(@"D:\httpcache", resolver);

            var collection = new ThreadCollection(Community.MSDN, "wpdevelop");

            var task = collection.NavigateToPageAsync(1);

            task.Wait();

            var threads = task.Result;

            var client = new HttpClient();

            foreach (var thread in threads)
            {
                var urlString = thread + "&outputAs=xml";

                var uri = new Uri(urlString);

                if (provider.IsCached(uri))
                {
                    continue;
                }

                var httpTask = client.GetStreamAsync(uri);

                httpTask.Wait();

                provider.Cache(httpTask.Result, uri);
            }
        }
コード例 #2
0
ファイル: ForumSnapshot.cs プロジェクト: dream-365/toolkit
        public async Task TakeAsync(int pageSize)
        {
            var collection = new ThreadCollection(_community, _forum);

            for (int i = 1; i < pageSize + 1; i++)
            {
                var threads = await collection.NavigateToPageAsync(i);

                foreach (var url in threads)
                {
                    var threadId = ExtractUuid(url);

                    if (_storage.FirstOrDefault(m => m.Id.Equals(threadId)) != null)
                    {
                        continue;
                    }

                    var parser = new ThreadParser(Guid.Parse(threadId));

                    try
                    {

                        var info = await parser.ReadThreadInfoAsync();

                        _storage.Add(info);

                        Log(threadId);
                    }
                    catch (Exception ex)
                    {
                        Log(ex.Message);
                    }

                }
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: dream-365/toolkit
        static async Task Run(Community community, string forum, int index)
        {
            var collection = new ThreadCollection(community, forum);

            var threads = await collection.NavigateToPageAsync(index);

            var client = new HttpClient();

            foreach (var thread in threads)
            {
                var body = new FormUrlEncodedContent(new List<KeyValuePair<string, string>>
                                { new KeyValuePair<string, string>("", thread)});

                var message = await client.PostAsync("http://analyzeit.azurewebsites.net/api/thread", body);

                var result = await message.Content.ReadAsStringAsync();

                Console.WriteLine(result);
            }
        }