コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #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);
        }