示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }
示例#4
0
 private void RefreshProperties(ProxySetting setting)
 {
     this.ProxySettingId = setting.Id;
     this.Proxy          = setting.GetProxy();
     this.SettingType    = setting.SettingType;
 }