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; }