public ProxyListViewModel(IProxyChecker proxyChecker, ITransportService transportService, ICacheService cacheService, ICommonErrorHandler errorHandler, IStateService stateService, INavigationService navigationService, IMTProtoService mtProtoService, ITelegramEventAggregator eventAggregator) : base(cacheService, errorHandler, stateService, navigationService, mtProtoService, eventAggregator) { SuppressSharing = StateService.SuppressProxySharing; StateService.SuppressProxySharing = false; _proxyChecker = proxyChecker; _transportService = transportService; PropertyChanged += (sender, args) => { if (Property.NameEquals(args.PropertyName, () => IsEnabled)) { var proxy = _proxyConfig.GetProxy(); _proxyConfig.IsEnabled = new TLBool(IsEnabled); if (proxy != null) { proxy.NotifyOfPropertyChange(() => proxy.Self); } SetReconnect(!_proxyConfig.IsEmpty, _proxyConfig, null); } else if (Property.NameEquals(args.PropertyName, () => UseForCalls)) { var proxy = _proxyConfig.GetProxy(); _proxyConfig.UseForCalls = new TLBool(UseForCalls); if (proxy != null) { proxy.NotifyOfPropertyChange(() => proxy.Self); } SetReconnect(false, _proxyConfig, null); } }; }
public HttpRequest(IConfiguration configurationManager, IProxyChecker proxyChecker) { var configuration = configurationManager.GetSection("tor").Get <TorConfigurationSection>(); m_PortsFrom = configuration.PortStart; m_PortsControlFrom = configuration.PortControlStart; m_PortsCount = configuration.PortCount; _proxyChecker = proxyChecker; SetProxy(); }
public Application(ISearchEngine searchEngine, IProxyChecker checker, IHttpDownloaderContainer httpDownloaderContainer, IGeoIP geoIP = null, IProxyProvider proxyProvider = null, ITaskManager taskManager = null) { this.searchEngine = searchEngine; this.checker = checker; this.httpDownloaderContainer = httpDownloaderContainer; this.proxyProvider = proxyProvider ?? new ProxyProvider(); this.geoIP = geoIP ?? new TurnOffGeoIP(); this.taskManager = taskManager ?? new TaskManager(); }
public Application(ISearchEngine searchEngine, IProxyChecker checker, IHttpDownloaderContainer httpDownloaderContainer, IGeoIP geoIP = null, IRatingManager ratingManager = null, IProxyProvider proxyProvider = null, ITaskManager taskManager = null) { this.searchEngine = searchEngine; this.checker = checker; this.httpDownloaderContainer = httpDownloaderContainer; this.proxyProvider = proxyProvider ?? new ProxyProvider(); this.geoIP = geoIP ?? new TurnOffGeoIP(); this.taskManager = taskManager ?? new TaskManager(); this.ratingManager = ratingManager ?? new DisabledRatingManager(); }
public Application Create(TaskItem task, ProxySearchFeedback feedback) { Context.Set(new CancellationTokenSource()); Context.Set <IHttpDownloaderContainer>(HttpDownloaderContainer); task.UpdateDetails(Resources.ReadingConfigurationOfSelectedSearch); IDetectable searchEngineDetectable = DetectableManager.CreateDetectableInstance <ISearchEngine>(Settings.SelectedTabSettings.SearchEngineDetectableType); IDetectable proxyCheckerDetectable = DetectableManager.CreateDetectableInstance <IProxyChecker>(Settings.SelectedTabSettings.ProxyCheckerDetectableType); IDetectable geoIPDetectable = DetectableManager.CreateDetectableInstance <IGeoIP>(Settings.GeoIPDetectableType); ISearchEngine searchEngine = DetectableManager.CreateImplementationInstance <ISearchEngine>(searchEngineDetectable, Settings.SelectedTabSettings.SearchEngineSettings, searchEngineDetectable.InterfaceSettings); feedback.ExportAllowed = !(searchEngine is FolderSearchEngine); task.UpdateDetails(Resources.PreparingProxyProvider); IProxyProvider proxyProvider = new ProxyProvider(Context.Get <IBlackList>(), new ParseMethodsProvider(Settings.ParseDetails)); task.UpdateDetails(Resources.PreparingProxyChecker); IProxyChecker proxyChecker = DetectableManager.CreateImplementationInstance <IProxyChecker>(proxyCheckerDetectable, Settings.SelectedTabSettings.ProxyCheckerSettings, proxyCheckerDetectable.InterfaceSettings); task.UpdateDetails(Resources.PreparingGeoIpService); IGeoIP geoIP = DetectableManager.CreateImplementationInstance <IGeoIP>(geoIPDetectable, Settings.GeoIPSettings, geoIPDetectable.InterfaceSettings); task.UpdateDetails(Resources.PreparingApplication); Application application = new Application(searchEngine, proxyChecker, HttpDownloaderContainer, geoIP, Context.Get <IRatingManager>(), proxyProvider, Context.Get <ITaskManager>()); application.ProxyAlive += feedback.OnAliveProxy; application.OnError += Context.Get <IErrorFeedback>().SetException; return(application); }