private MultiRunJob MakeMultiRunJob(MultiRunJobOptions options) { var hitOutputsFactory = new HitOutputFactory(hitRepo); var job = new MultiRunJob(settingsService, pluginRepo, logger) { Config = configService.Configs.FirstOrDefault(c => c.Id == options.ConfigId), CreationTime = DateTime.Now, ProxyMode = options.ProxyMode, ShuffleProxies = options.ShuffleProxies, NoValidProxyBehaviour = options.NoValidProxyBehaviour, NeverBanProxies = options.NeverBanProxies, MarkAsToCheckOnAbort = options.MarkAsToCheckOnAbort, ProxyBanTime = TimeSpan.FromSeconds(options.ProxyBanTimeSeconds), ConcurrentProxyMode = options.ConcurrentProxyMode, PeriodicReloadInterval = TimeSpan.FromSeconds(options.PeriodicReloadIntervalSeconds), StartCondition = options.StartCondition, Bots = options.Bots, Skip = options.Skip, HitOutputs = options.HitOutputs.Select(o => hitOutputsFactory.FromOptions(o)).ToList(), ProxySources = options.ProxySources.Select(s => proxySourceFactory.FromOptions(s).Result).ToList(), Providers = new(settingsService) { RandomUA = settingsService.RuriLibSettings.GeneralSettings.UseCustomUserAgentsList ? new DefaultRandomUAProvider(settingsService) : randomUAProvider, RNG = rngProvider } }; job.DataPool = dataPoolFactory.FromOptions(options.DataPool).Result; return(job); }
public MultiRunJobOptionsDialog(MultiRunJobOptions options = null, Action <JobOptions> onAccept = null) { this.onAccept = onAccept; vm = new MultiRunJobOptionsViewModel(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); }