Esempio n. 1
0
        public App()
        {
            _logger.Info("Starting application.");
            CommandLineOptions = new Options();
            Parser.Default.ParseArguments(Environment.GetCommandLineArgs(), CommandLineOptions);

            // crash handling
            CrashManager = new CrashManager(_logger);
            DispatcherUnhandledException += CrashManager.OnDispatcherUnhandledException;
        }
Esempio n. 2
0
        public DownloadManager(IPlatformManager platformManager, IJobManager jobManager, IVpdbClient vpdbClient, 
			ISettingsManager settingsManager, IMessageManager messageManager, IDatabaseManager databaseManager,
			ILogger logger, CrashManager crashManager)
        {
            _platformManager = platformManager;
            _jobManager = jobManager;
            _vpdbClient = vpdbClient;
            _settingsManager = settingsManager;
            _messageManager = messageManager;
            _databaseManager = databaseManager;
            _logger = logger;
            _crashManager = crashManager;

            // setup download callbacks
            jobManager.WhenDownloaded.Subscribe(OnDownloadCompleted);

            // setup flavor matchers as soon as settings are available.
            _settingsManager.Settings.WhenAny(
                s => s.DownloadOrientation,
                s => s.DownloadOrientationFallback,
                s => s.DownloadLighting,
                s => s.DownloadLightingFallback,
                (a, b, c, d) => Unit.Default).Subscribe(_ =>
            {
                _logger.Info("Setting up flavor matchers.");
                _flavorMatchers.Clear();
                _flavorMatchers.Add(new OrientationMatcher(_settingsManager.Settings));
                _flavorMatchers.Add(new LightingMatcher(_settingsManager.Settings));
            });
        }
Esempio n. 3
0
 public MessageManager(IDatabaseManager databaseManager, CrashManager crashManager)
 {
     _databaseManager = databaseManager;
     _crashManager    = crashManager;
 }
Esempio n. 4
0
 public VersionManager(CrashManager crashManager, ILogger logger)
 {
     _logger       = logger;
     _crashManager = crashManager;
 }
Esempio n. 5
0
 public VisualPinballManager(CrashManager crashManager, ILogger logger)
 {
     _crashManager = crashManager;
     _logger = logger;
 }
Esempio n. 6
0
 public MarshallManager(ILogger logger, CrashManager crashManager)
 {
     _logger = logger;
     _crashManager = crashManager;
 }
Esempio n. 7
0
 public VersionManager(CrashManager crashManager, ILogger logger)
 {
     _logger = logger;
     _crashManager = crashManager;
 }
Esempio n. 8
0
 public DatabaseManager(ISettingsManager settingsManager, CrashManager crashManager, ILogger logger)
 {
     _settingsManager = settingsManager;
     _crashManager    = crashManager;
     _logger          = logger;
 }
Esempio n. 9
0
        public DatabaseManager(ISettingsManager settingsManager, CrashManager crashManager, ILogger logger)
        {
            _settingsManager = settingsManager;
            _crashManager = crashManager;
            _logger = logger;

            // throttle saving
            _save
                .ObserveOn(Scheduler.Default)
                .Sample(TimeSpan.FromMilliseconds(500))
                .Subscribe(_ => { MarshallDatabase(); });
        }
Esempio n. 10
0
 public MessageManager(IDatabaseManager databaseManager, CrashManager crashManager)
 {
     _databaseManager = databaseManager;
     _crashManager = crashManager;
 }
Esempio n. 11
0
 public PusherAuthorizer(IVpdbClient vpdbClient, CrashManager crashManager, ILogger logger)
 {
     _vpdbClient = vpdbClient;
     _crashManager = crashManager;
     _logger = logger;
 }
Esempio n. 12
0
		/// <summary>
		/// Constructor sets up queue and creates download folder if non-existing.
		/// </summary>
		public JobManager(IDatabaseManager databaseManager, IMessageManager messageManager, ILogger logger, CrashManager crashManager)
		{
			CurrentJobs = databaseManager.GetJobs();

			_databaseManager = databaseManager;
			_messageManager = messageManager;
			_logger = logger;
			_crashManager = crashManager;

			// setup transfer queue
			_queue = _jobs
				.ObserveOn(Scheduler.Default)
				.Select(job => Observable.DeferAsync(async token => Observable.Return(await ProcessDownload(job, token))))
				.Merge(MaximalSimultaneousDownloads)
				.Subscribe(job => {
					_databaseManager.Save();

					if (job.Status != Job.JobStatus.Aborted) {
						_whenDownloaded.OnNext(job);
					}
				}, error => {
					_databaseManager.Save();
					// todo treat error in ui
					_logger.Error(error, "Error: {0}", error.Message);
				});

			if (!Directory.Exists(_downloadPath)) {
				_logger.Info("Creating non-existing download folder at {0}.", _downloadPath);
				Directory.CreateDirectory(_downloadPath);
			}
		}
Esempio n. 13
0
        public VpdbClient(ISettingsManager settingsManager, IVersionManager versionManager, IMessageManager messageManager, 
			IScreen screen, ILogger logger, CrashManager crashManager)
        {
            _settingsManager = settingsManager;
            _versionManager = versionManager;
            _messageManager = messageManager;
            _logger = logger;
            _screen = screen;
            _crashManager = crashManager;
        }