Beispiel #1
0
 public StatusServer(ProcessingStatus status)
 {
     this.workingStatus = status;
 }
Beispiel #2
0
        void InitializeViewModel()
        {
            if (this.didInitialize)
            {
                return;
            }

            ViewModel.Initialize(this.Dispatcher);

            this.currentStatus = new ProcessingStatus();

            var viewModel = ViewModel;

            void UpdateStatusFromViewModel()
            {
                this.currentStatus.NumComplete                = viewModel.CompletedOutputFiles.Count;
                this.currentStatus.NumPending                 = viewModel.PendingInputFiles.Count;
                this.currentStatus.NumProcessing              = viewModel.ProcessingQueueFiles.Count;
                this.currentStatus.NumImagesProcessing        = -1;
                this.currentStatus.NumImagesProcessingPending = -1;

                this.currentStatus.ProcessingQueueStates = string.Join("\n", viewModel.ProcessingQueueFiles.Select(ti => ti.TaskState));
            }

            UpdateStatusFromViewModel();

            ViewModel.TaskItems.CollectionChanged += (s, e) =>
            {
                UpdateStatusFromViewModel();
            };

            ViewModel.TaskItems.TaskItemChanged += (t) =>
            {
                UpdateStatusFromViewModel();
            };

            if (ViewModel.Settings.AutoStartOnOpen || RootConfig.IsHeadless)
            {
                Logger.Debug("Auto-starting processing queue since AutoStartOnOpen=true, or running in headless mode");
                ViewModel.StartProcessing();
            }

            ViewModel.PropertyChanged += ViewModel_PropertyChanged;


            PendingFilesPane.Title    = ViewModel.PendingFileListLabel;
            ProcessingFilesPane.Title = ViewModel.ProcessingFileListLabel;
            OutputFilesPane.Title     = ViewModel.OutputFileListLabel;

            this.statusServer = new StatusServer(this.currentStatus);
            try
            {
                this.statusServer.Start();
            }
            catch (Exception e)
            {
                Logger.Error("Unable to start status server: {Exception}", e.ToString());
            }

            this.didInitialize = true;
        }