Esempio n. 1
0
 public MainViewModel(INotificationService notificationService,
                      IRegionManager regionManager,
                      ILoggingService loggingService,
                      IFarmIntegrator farmIntegrator,
                      IConfigSerializer configSerializer,
                      ILoadingProgressController loadingProgressController,
                      ITestsService testsService,
                      IGitWorker gitWorker)
 {
     Dispatcher = Dispatcher.CurrentDispatcher;
     this.notificationService  = notificationService;
     this.regionManager        = regionManager;
     this.loggingService       = loggingService;
     this.farmIntegrator       = farmIntegrator;
     this.configSerializer     = configSerializer;
     LoadingProgressController = loadingProgressController;
     TestService = testsService;
     _GitWorker  = gitWorker;
     TestService.PropertyChanged    += TestService_PropertyChanged;
     loggingService.MessageReserved += OnLoggingMessageReserved;
     UpdateConfig();
 }
Esempio n. 2
0
 public MainViewModel(INotificationService notificationService,
                      ILoggingService loggingService,
                      IConfigSerializer configSerializer,
                      ILoadingProgressController loadingProgressController,
                      ITestsService testsService,
                      IGitWorker gitWorker,
                      IPlatformProvider platformProvider,
                      IActiveService isActiveService, ITestsService testService)
 {
     dispatcher = Dispatcher.CurrentDispatcher;
     this.notificationService  = notificationService;
     this.loggingService       = loggingService;
     this.configSerializer     = configSerializer;
     this.platformProvider     = platformProvider;
     this.isActiveService      = isActiveService;
     this.testService          = testService;
     this.gitWorker            = gitWorker;
     obsolescenceTracker       = new RepositoryObsolescenceTracker(this.gitWorker, () => _config.Repositories, NoticeRepositoryObsolescenceAsync);
     LoadingProgressController = loadingProgressController;
     testService = testsService;
     testService.PropertyChanged    += TestService_PropertyChanged;
     loggingService.MessageReserved += OnLoggingMessageReserved;
 }
        public RepositoryObsolescenceTracker(IGitWorker gitWorker, Func <Repository[]> getReposForCheck, Func <Task> onObsolescence)
        {
            timer = new DispatcherTimer();
            this.getReposForCheck = getReposForCheck;
            platforms             = ServiceLocator.Current.GetInstance <IPlatformProvider>();
            timer.Interval        = TimeSpan.FromMinutes(20);
            timer.Tick           += async(s, a) => {
                timer.Stop();
                foreach (var repo in this.getReposForCheck())
                {
                    try {
                        if (await gitWorker.IsOutdatedAsync(platforms.PlatformInfos.Single(p => p.Name == repo.Platform).GitRepository, repo))
                        {
                            await onObsolescence();

                            return;
                        }
                    }
                    catch {
                    }
                }
                timer.Start();
            };
        }