public MainViewModel(IScriptLocatorService scriptLocatorService, IScriptRunnerService scriptRunnerService, AlertService alertService) { _alertService = alertService; _scriptLocatorService = scriptLocatorService; _scriptRunnerService = scriptRunnerService; _scriptLocatorService.OnScriptsUpdated += x => { Scripts = new ObservableCollection <PowershellScript>(x); }; _scriptRunnerService.ScriptRunComplete += x => { MainWindow.RootDispatcher.Invoke(() => { //HACK! This forces update of the LastRun property. Correct way would be to implement INotifyPropertyChanged in derived class. int index = Scripts.IndexOf(x); if (index != -1) { Scripts.RemoveAt(index); Scripts.Insert(index, x); } }); }; }
public ScriptController(IUserScriptsService userScriptsService, IScriptRunnerService scriptRunnerService, IScriptRunEmailBuilder scriptRunEmailBuilder, IEmailService emailService) { _userScriptsService = userScriptsService; _scriptRunnerService = scriptRunnerService; _scriptRunEmailBuilder = scriptRunEmailBuilder; _emailService = emailService; }
public void SetUp() { _scriptsDynamicDataRepositoryMock = new Mock <IScriptsDynamicDataRepository>(); _scriptsDynamicDataRepositoryMock.Setup(o => o.GetAll()).Returns(new List <ScriptDynamicDataModel> { new ScriptDynamicDataModel { Key = "test-script-2", LastRun = DateTime.UtcNow.AddSeconds(-10).Ticks } }); _scriptRunnerService = new ScriptRunnerService(_scriptsDynamicDataRepositoryMock.Object); }