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