public override async Task Execute(object parameter) { try { var selected = model.SelectedProxySettingModel; var address = model.TestAddress; var setting = new ProxySetting(selected.SettingType) { Address = selected.Address, UserName = selected.UserName, Password = selected.Password }; var proxy = setting.GetProxy(); var client = new TestCoockieClient() { Proxy = proxy }; await client.DownloadStringTaskAsync(address).ConfigureAwait(true); Dialogs.ShowInfo("Проверка прокси", "Успешно."); } catch (Exception e) { Dialogs.ShowInfo("Проверка прокси", "Произошла ошибка. \r\n" + e.Message); } }
internal static void RevalidateSetting(Type pluginType, ProxySetting setting) { if (caches.Count == 0) { return; } var inCache = pluginType == null? caches.Values.Where(c => c.ProxySettingId == setting.Id).ToList() : caches.Values.Where(c => c.Plugin == pluginType).ToList(); foreach (var cache in inCache.OrderByDescending(c => c.IsParent)) { cache.RefreshProperties(setting); } Log.Add($"Applied {setting.SettingType} proxy to {string.Join(", ", inCache.Select(s => s.Plugin.Name))}"); // If any of setting cache is root - need recreate all 'child' caches. if (inCache.Any(r => r.IsParent)) { var childs = caches.Values.Where(c => c.SettingType == ProxySettingType.Parent).ToList(); foreach (var cache in childs) { cache.Proxy = setting.GetProxy(); } Log.Add($"Applied {setting.SettingType} proxy to childs {string.Join(", ", childs.Select(s => s.Plugin.Name))}"); } }
public override async Task Execute(object parameter) { try { var selected = model.SelectedProxySettingModel; var address = new Uri(model.TestAddress); var setting = new ProxySetting(selected.SettingType) { Address = selected.Address, UserName = selected.UserName, Password = selected.Password }; var proxy = setting.GetProxy(); var client = SiteHttpClientFactory.Get(address, proxy, new CookieContainer()); var page = await client.GetPage(address).ConfigureAwait(true); if (page.HasContent) { Dialogs.ShowInfo("Проверка прокси", "Успешно."); } else { Dialogs.ShowInfo("Проверка прокси", "Не удалось получить страницу, проверьте настройки.\r\n" + page.Error); } } catch (Exception e) { Dialogs.ShowInfo("Проверка прокси", "Произошла ошибка. \r\n" + e.Message); } }
private void RefreshProperties(ProxySetting setting) { this.ProxySettingId = setting.Id; this.Proxy = setting.GetProxy(); this.SettingType = setting.SettingType; }