Exemplo n.º 1
0
        private ProxyCheckJob MakeProxyCheckJob(ProxyCheckJobOptions options)
        {
            var job = new ProxyCheckJob(settingsService, pluginRepo, logger)
            {
                StartCondition    = options.StartCondition,
                Bots              = options.Bots,
                CheckOnlyUntested = options.CheckOnlyUntested,
                Url        = options.Target.Url,
                SuccessKey = options.Target.SuccessKey,
                Timeout    = TimeSpan.FromMilliseconds(options.TimeoutMilliseconds)
            };

            job.GeoProvider = new DBIPProxyGeolocationProvider("dbip-country-lite.mmdb");
            job.Proxies     = proxyReloadService.Reload(options.GroupId, job.OwnerId).Result;

            // Update the stats
            var proxies = options.CheckOnlyUntested
                ? job.Proxies.Where(p => p.WorkingStatus == ProxyWorkingStatus.Untested)
                : job.Proxies;

            job.Total       = proxies.Count();
            job.Tested      = proxies.Count(p => p.WorkingStatus != ProxyWorkingStatus.Untested);
            job.Working     = proxies.Count(p => p.WorkingStatus == ProxyWorkingStatus.Working);
            job.NotWorking  = proxies.Count(p => p.WorkingStatus == ProxyWorkingStatus.NotWorking);
            job.ProxyOutput = new DatabaseProxyCheckOutput(proxyRepo);

            return(job);
        }
        public ProxyCheckJobOptionsDialog(ProxyCheckJobOptions options = null, Action <JobOptions> onAccept = null)
        {
            this.onAccept = onAccept;
            vm            = new ProxyCheckJobOptionsViewModel(options);
            DataContext   = vm;

            vm.StartConditionModeChanged += mode => startConditionTabControl.SelectedIndex = (int)mode;

            InitializeComponent();

            startConditionTabControl.SelectedIndex = (int)vm.StartConditionMode;
        }
Exemplo n.º 3
0
        public Job FromOptions(int id, int ownerId, JobOptions options)
        {
            Job job = options switch
            {
                MultiRunJobOptions x => MakeMultiRunJob(x),
                ProxyCheckJobOptions x => MakeProxyCheckJob(x),
                _ => throw new NotImplementedException()
            };

            job.Id      = id;
            job.OwnerId = ownerId;
            return(job);
        }