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