Beispiel #1
0
        public T GetData(string baseUrl, string url, string helpLinkBlock)
        {
            var helpCenterData = GetFromCacheOrFile(url);

            if (helpCenterData != null)
            {
                return(helpCenterData);
            }

            helpCenterData = new T {
                ResetCacheKey = ClientSettings.ResetCacheKey
            };
            var request = new HelpCenterRequest
            {
                Url           = url,
                BaseUrl       = baseUrl,
                HelpLinkBlock = helpLinkBlock,
                Starter       = (r, html) =>
                {
                    InitAndCacheData(r, html, helpCenterData);
                    HelpDownloader.Complete(url);
                }
            };

            HelpDownloader.Make(request);

            return(null);
        }
        public static void Make(HelpCenterRequest request, Action <HelpCenterRequest, string> starter)
        {
            if (!DownloadEnabled)
            {
                return;
            }

            lock (LockObj)
            {
                if (Tasks.GetItems().Any(r => r.Url == request.Url))
                {
                    return;
                }

                Tasks.Add(request);

                if (!Tasks.IsStarted)
                {
                    Tasks.Start(r =>
                    {
                        var html = SendRequest(r.Url);
                        starter(r, html);
                    });
                }
            }
        }
Beispiel #3
0
        private void InitAndCacheData(HelpCenterRequest request, string html, T helpCenterData)
        {
            helpCenterData.Init(html, request.HelpLinkBlock, request.BaseUrl);

            lock (data)
            {
                data[request.Url] = helpCenterData;

                ToFile(data);
                ToCache(data);
            }
        }
        private void InitAndCacheData(HelpCenterRequest request, string html, string resetCacheKey)
        {
            var helpCenterData = new T {
                ResetCacheKey = resetCacheKey
            };

            helpCenterData.Init(html, request.HelpLinkBlock, request.BaseUrl);

            lock (data)
            {
                data[request.Url] = helpCenterData;

                ToFile(data);
                ToCache(data);
            }
        }
Beispiel #5
0
        public static void Make(HelpCenterRequest request)
        {
            if (!DownloadEnabled)
            {
                return;
            }

            lock (LockObj)
            {
                if (Tasks.GetTasks().Any(r => r.GetProperty <string>("Url") == request.Url))
                {
                    return;
                }

                Tasks.QueueTask(request.SendRequest, request.GetDistributedTask());
            }
        }
        public async Task <T> GetDataAsync(string baseUrl, string page, string helpLinkBlock, string resetCacheKey)
        {
            var url            = baseUrl + page;
            var helpCenterData = GetFromCacheOrFile(url);

            if (helpCenterData == null)
            {
                var request = new HelpCenterRequest
                {
                    Url           = url,
                    BaseUrl       = baseUrl,
                    HelpLinkBlock = helpLinkBlock
                };
                var html = await httpClient.GetStringAsync(url);

                InitAndCacheData(request, html, resetCacheKey);
            }

            return(helpCenterData);
        }
Beispiel #7
0
        public async Task <T> GetDataAsync(string baseUrl, string url, string helpLinkBlock, string resetCacheKey)
        {
            var helpCenterData = GetFromCacheOrFile(url);

            if (helpCenterData == null)
            {
                helpCenterData = new T {
                    ResetCacheKey = resetCacheKey
                };
                var request = new HelpCenterRequest
                {
                    Url           = url,
                    BaseUrl       = baseUrl,
                    HelpLinkBlock = helpLinkBlock,
                    Starter       = (r, html) => InitAndCacheData(r, html, helpCenterData)
                };
                await request.SendRequestAsync();
            }

            return(helpCenterData);
        }
        public T GetData(string baseUrl, string page, string helpLinkBlock)
        {
            var url            = baseUrl + page;
            var helpCenterData = GetFromCacheOrFile(url);

            if (helpCenterData != null)
            {
                return(helpCenterData);
            }

            var request = new HelpCenterRequest
            {
                Url           = url,
                BaseUrl       = baseUrl,
                HelpLinkBlock = helpLinkBlock
            };

            HelpDownloader.Make(request, (r, html) => InitAndCacheData(r, html, ClientSettings.ResetCacheKey));

            return(null);
        }
        public static void Make(HelpCenterRequest request)
        {
            if (!DownloadEnabled)
            {
                return;
            }

            lock (LockObj)
            {
                if (Tasks.GetItems().Any(r => r.Url == request.Url))
                {
                    return;
                }

                Tasks.Add(request);

                if (!Tasks.IsStarted)
                {
                    Tasks.Start(r => r.SendRequest());
                }
            }
        }