Example #1
0
        public void TaskSchedulerAsyncTest()
        {
            var strings       = new List <string>();
            var taskScheduler = new TaskSchedulerService();

            taskScheduler.QueueTask(async() =>
            {
                await Task.Delay(100);
                await AddStringAsync(strings, "a");
            });

            taskScheduler.QueueTask(async() => await AddStringAsync(strings, "b"));

            var lastTask = new ManualResetEvent(false);

            taskScheduler.QueueTask(() =>
            {
                lastTask.Set();
                return(Task.CompletedTask);
            });
            lastTask.WaitOne();

            Assert.IsTrue(strings.Take(100).All(x => x == "a"), string.Join(Environment.NewLine, strings));
            Assert.IsTrue(strings.Skip(100).All(x => x == "b"));
        }
        private static ITaskSchedulerService <ITask> CreateTaskSchedulerService()
        {
            // Normally, these would be injected via DI framework.
            var taskConsumer = new PausablePipeLineTaskConsumer();
            var pipeLine     = new ProducerConsumerPipeLine <ITask>(taskConsumer, 3);

            var taskSchedulerService = new TaskSchedulerService <ITask>(pipeLine);

            return(taskSchedulerService);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ScheduledTaskController"/> class.
 /// </summary>
 /// <param name="loggerFactory">
 /// The logger factory.
 /// </param>
 /// <param name="unitOfWork">
 /// The unit of work.
 /// </param>
 public ScheduledTaskController(
     IStringLocalizer <RestApiResource> localizer,
     ILoggerFactory loggerFactory,
     TaskSchedulerService taskSchedulerService,
     UnitOfWork unitOfWork)
     : base(localizer)
 {
     this.logger               = loggerFactory.CreateLogger <ScheduledTaskController>();
     this.unitOfWork           = unitOfWork;
     this.taskSchedulerService = taskSchedulerService;
 }
Example #4
0
 public Importer(ILogService log, ILegacyRenewalService legacyRenewal,
                 IRenewalService currentRenewal, LegacyTaskSchedulerService legacyTaskScheduler,
                 TaskSchedulerService currentTaskScheduler, PasswordGenerator passwordGenerator)
 {
     _legacyRenewal        = legacyRenewal;
     _currentRenewal       = currentRenewal;
     _log                  = log;
     _currentTaskScheduler = currentTaskScheduler;
     _legacyTaskScheduler  = legacyTaskScheduler;
     _passwordGenerator    = passwordGenerator;
 }
Example #5
0
 public Importer(ILogService log, IInputService input,
                 ILegacyRenewalService legacyRenewal, IRenewalService currentRenewal, PluginService pluginService,
                 LegacyTaskSchedulerService legacyTaskScheduler, TaskSchedulerService currentTaskScheduler)
 {
     _legacyRenewal        = legacyRenewal;
     _currentRenewal       = currentRenewal;
     _log                  = log;
     _input                = input;
     _currentTaskScheduler = currentTaskScheduler;
     _legacyTaskScheduler  = legacyTaskScheduler;
     _pluginService        = pluginService;
 }
Example #6
0
        public Wacs(
            IContainer container,
            IAutofacBuilder scopeBuilder,
            ExceptionHandler exceptionHandler,
            ILogService logService,
            ISettingsService settingsService,
            IUserRoleService userRoleService,
            IDueDateService dueDateService,
            TaskSchedulerService taskSchedulerService,
            SecretServiceManager secretServiceManager)
        {
            // Basic services
            _container        = container;
            _scopeBuilder     = scopeBuilder;
            _exceptionHandler = exceptionHandler;
            _log                  = logService;
            _settings             = settingsService;
            _userRoleService      = userRoleService;
            _taskScheduler        = taskSchedulerService;
            _secretServiceManager = secretServiceManager;
            _dueDateService       = dueDateService;

            if (!string.IsNullOrWhiteSpace(_settings.UI.TextEncoding))
            {
                try
                {
                    Console.OutputEncoding = System.Text.Encoding.GetEncoding(_settings.UI.TextEncoding);
                }
                catch
                {
                    _log.Warning("Error setting text encoding to {name}", _settings.UI.TextEncoding);
                }
            }

            _arguments = _container.Resolve <ArgumentsParser>();
            _arguments.ShowCommandLine();
            _args         = _arguments.GetArguments <MainArguments>() !;
            _input        = _container.Resolve <IInputService>();
            _renewalStore = _container.Resolve <IRenewalStore>();

            var renewalExecutor = container.Resolve <RenewalExecutor>(
                new TypedParameter(typeof(IContainer), _container));

            _renewalCreator = container.Resolve <RenewalCreator>(
                new TypedParameter(typeof(IContainer), _container),
                new TypedParameter(typeof(RenewalExecutor), renewalExecutor));
            _renewalManager = container.Resolve <RenewalManager>(
                new TypedParameter(typeof(IContainer), _container),
                new TypedParameter(typeof(RenewalExecutor), renewalExecutor),
                new TypedParameter(typeof(RenewalCreator), _renewalCreator));
        }
Example #7
0
        public Wacs(
            IContainer container,
            IAutofacBuilder scopeBuilder,
            ExceptionHandler exceptionHandler,
            ILogService logService,
            ISettingsService settingsService,
            IUserRoleService userRoleService,
            TaskSchedulerService taskSchedulerService,
            VersionService versionService)
        {
            // Basic services
            _container        = container;
            _scopeBuilder     = scopeBuilder;
            _exceptionHandler = exceptionHandler;
            _log             = logService;
            _settings        = settingsService;
            _userRoleService = userRoleService;
            _taskScheduler   = taskSchedulerService;
            _versionService  = versionService;

            try
            {
                Console.OutputEncoding = System.Text.Encoding.GetEncoding(_settings.UI.TextEncoding);
            }
            catch
            {
                _log.Warning("Error setting text encoding to {name}", _settings.UI.TextEncoding);
            }

            _arguments = _container.Resolve <IArgumentsService>();
            _arguments.ShowCommandLine();
            _args         = _arguments.MainArguments;
            _input        = _container.Resolve <IInputService>();
            _renewalStore = _container.Resolve <IRenewalStore>();

            var renewalExecutor = container.Resolve <RenewalExecutor>(
                new TypedParameter(typeof(IContainer), _container));

            _renewalManager = container.Resolve <RenewalManager>(
                new TypedParameter(typeof(IContainer), _container),
                new TypedParameter(typeof(RenewalExecutor), renewalExecutor));
            _renewalCreator = container.Resolve <RenewalCreator>(
                new TypedParameter(typeof(IContainer), _container),
                new TypedParameter(typeof(RenewalExecutor), renewalExecutor));
        }
Example #8
0
        public AppContext(ILogger <AppContext> logger, IconService iconService, IGlucoseFetchService fetchService, IOptionsMonitor <GlucoseTraySettings> options, TaskSchedulerService taskScheduler)
        {
            _logger        = logger;
            _iconService   = iconService;
            _fetchService  = fetchService;
            _options       = options;
            _taskScheduler = taskScheduler;

            trayIcon = new NotifyIcon()
            {
                ContextMenuStrip = new ContextMenuStrip(new Container()),
                Visible          = true
            };

            PopulateContextMenu();
            trayIcon.DoubleClick += ShowBalloon;
            BeginCycle();
        }
Example #9
0
 public Importer(
     ILogService log, ILegacyRenewalService legacyRenewal,
     ISettingsService settings, IRenewalStore currentRenewal,
     IInputService input,
     LegacyTaskSchedulerService legacyTaskScheduler,
     TaskSchedulerService currentTaskScheduler,
     PasswordGenerator passwordGenerator,
     AcmeClient acmeClient)
 {
     _legacyRenewal        = legacyRenewal;
     _currentRenewal       = currentRenewal;
     _log                  = log;
     _settings             = settings;
     _input                = input;
     _currentTaskScheduler = currentTaskScheduler;
     _legacyTaskScheduler  = legacyTaskScheduler;
     _passwordGenerator    = passwordGenerator;
     _acmeClient           = acmeClient;
 }
Example #10
0
        public void TaskSchedulerServiceTest()
        {
            var strings       = new List <string>();
            var taskScheduler = new TaskSchedulerService();

            taskScheduler.QueueTask(() =>
            {
                Thread.Sleep(10);
                for (int i = 0; i < 100; i++)
                {
                    strings.Add("a");
                }
                return(Task.CompletedTask);
            });

            taskScheduler.QueueTask(() =>
            {
                for (int i = 0; i < 100; i++)
                {
                    strings.Add("b");
                }
                return(Task.CompletedTask);
            });

            var lastTask = new ManualResetEvent(false);

            taskScheduler.QueueTask(() =>
            {
                lastTask.Set();
                return(Task.CompletedTask);
            });
            lastTask.WaitOne();

            Assert.IsTrue(strings.Take(100).All(x => x == "a"), string.Join(Environment.NewLine, strings));
            Assert.IsTrue(strings.Skip(100).All(x => x == "b"));
        }
Example #11
0
        public Wacs(ILifetimeScope container)
        {
            // Basic services
            _container        = container;
            _scopeBuilder     = container.Resolve <IAutofacBuilder>();
            _exceptionHandler = container.Resolve <ExceptionHandler>();
            _log             = _container.Resolve <ILogService>();
            _settings        = _container.Resolve <ISettingsService>();
            _userRoleService = _container.Resolve <UserRoleService>();
            _settings        = _container.Resolve <ISettingsService>();
            _taskScheduler   = _container.Resolve <TaskSchedulerService>();

            try
            {
                Console.OutputEncoding = System.Text.Encoding.GetEncoding(_settings.UI.TextEncoding);
            }
            catch
            {
                _log.Warning("Error setting text encoding to {name}", _settings.UI.TextEncoding);
            }

            ShowBanner();

            _arguments = _container.Resolve <IArgumentsService>();
            _arguments.ShowCommandLine();
            _args         = _arguments.MainArguments;
            _input        = _container.Resolve <IInputService>();
            _renewalStore = _container.Resolve <IRenewalStore>();

            var renewalExecutor = container.Resolve <RenewalExecutor>(
                new TypedParameter(typeof(IContainer), _container));

            _renewalManager = container.Resolve <RenewalManager>(
                new TypedParameter(typeof(IContainer), _container),
                new TypedParameter(typeof(RenewalExecutor), renewalExecutor));
        }