private void OnWatchdogTargetChanged(object sender, EventArgs e) { var processVm = ProcessesUnderWatch.SingleOrDefault(puw => puw == (ProcessViewModel)sender); IEnumerable <IProcessWatch> models = ProcessesUnderWatch.Select(ProcessWatchAssembler.AssembleFromViewModel); _eventHub.GetEvent <OnWatchdogTargetChangedEvent>().Publish(models); }
private void UpdateProcessWatch(IEnumerable <IProcessWatch> processWatches) { IEnumerable <IProcessWatch> processToRemove = ProcessesUnderWatch.Except(processWatches); IEnumerable <IProcessWatch> processToAdd = processWatches.Except(ProcessesUnderWatch); IEnumerable <IProcessWatch> processToUpdate = ProcessesUnderWatch.Union(processWatches); processToAdd.ToList().ForEach(p => _processWatcher.AddProcessToWatchList(p.ProcessName, p.DoCapture)); processToRemove.ToList().ForEach(p => _processWatcher.RemoveProcessFromWatchList(p.ProcessName)); processToUpdate.ToList().ForEach(p => _processWatcher.UpdateProcessCaptureInWatchList(p.ProcessName, p.DoCapture)); ProcessesUnderWatch = _processWatcher.GetProcessUnderWatch(); }
private void OnWatchdogRemoveTarget(object sender, EventArgs e) { var processVm = ProcessesUnderWatch.SingleOrDefault(puw => puw == (ProcessViewModel)sender); if (processVm != null) { processVm.OnProcessWatchRemoveEvent -= OnWatchdogRemoveTarget; ProcessesUnderWatch.Remove(processVm); } IEnumerable <IProcessWatch> models = ProcessesUnderWatch.Where(p => p.IsValidProcessViewModel) .Select(ProcessWatchAssembler.AssembleFromViewModel); _eventHub.GetEvent <OnWatchdogTargetChangedEvent>().Publish(models); }