Esempio n. 1
0
        public MacroViewModel(
            ILoggerService loggerService,
            IMonitorDialog monitorDialog,
            IFileService fileService,
            IMacroService macroService)
        {
            IsRunning   = false;
            SavedMacros = new ObservableCollection <IMacro>();

            _loggerService = loggerService;
            _monitorDialog = monitorDialog;
            _fileService   = fileService;
            _macroService  = macroService;

            Recorders = _macroService.CreateRecorders();

            Record = new DelegateCommandAsync(() =>
            {
                _runningRecordSession = _macroService.CreateSession(SelectedRecorder);
                _runningRecordSession?.Start();
                Stop.RaiseCanExecuteChanged();
                Record.RaiseCanExecuteChanged();
            },
                                              () => SelectedRecorder != null && _runningRecordSession == null);

            Stop = new DelegateCommandAsync(() =>
            {
                var macro             = _runningRecordSession.Stop();
                _runningRecordSession = null;
                SavedMacros.Add(macro);
                Stop.RaiseCanExecuteChanged();
                Record.RaiseCanExecuteChanged();
                Build.RaiseCanExecuteChanged();
            },
                                            () => _runningRecordSession != null);

            Build = new DelegateCommandAsync(async() =>
            {
                var macro = SavedMacros.First();
                SavedMacros.RemoveAt(0);

                Build.RaiseCanExecuteChanged();

                var saveResult = _monitorDialog.SaveFileDialog("Save script", "test_script.cs", "Monitor Script (*.cs)|*.cs;|All files (*.*)|*.*", null);
                if (saveResult.Success)
                {
                    using (var stream = _fileService.CreateNewFileStream(saveResult.FileName))
                    {
                        await macro.Serialize(stream);
                        _loggerService.LogMessage(this, $"Script built & saved '{saveResult.FileName}'!", Severity.Info);
                    }
                }
            },
                                             () => SavedMacros.Any());
        }
        public MacroViewModelFactory(
            ILoggerService loggerService,
            IMonitorDialog monitorDialog,
            IFileService fileService,
            IMacroService macroService)
        {
            _loggerService = loggerService;
            _monitorDialog = monitorDialog;
            _fileService   = fileService;
            _macroService  = macroService;

            ContentIdBase = "monitor_macro_view";
            Title         = "Macro Recorder";
        }
 public RemoteViewViewModelFactory(
     IScreenshotService screenshotService,
     IScreenshotSavingUtility screenshotSavingUtility,
     ILoggerService loggerService,
     IConnectionService connectionService,
     ITaskSchedulerProvider schedulerProvider,
     IEventService eventService,
     IFrameDelayConverter frameDelayConverter,
     IMonitorDialog monitorDialog,
     IContinuousScreenshotControllerFactory screenshotControllerFactory)
 {
     Title                        = "Model Viewer";
     ContentIdBase                = "monitor_remote_view_extension_id";
     _screenshotService           = screenshotService;
     _screenshotSavingUtility     = screenshotSavingUtility;
     _loggerService               = loggerService;
     _connectionService           = connectionService;
     _schedulerProvider           = schedulerProvider;
     _eventService                = eventService;
     _frameDelayConverter         = frameDelayConverter;
     _monitorDialog               = monitorDialog;
     _screenshotControllerFactory = screenshotControllerFactory;
 }