public void CreateMutants() { var counter = ProgressCounter.Invoking(RaiseMinorStatusUpdate, OperationsState.Mutating); var mutantModules = _mutantsContainer.InitMutantsForOperators(counter); _currentSession.MutantsGrouped = mutantModules; _sessionEventsSubject.OnNext(new MutationFinishedEventArgs(OperationsState.MutationFinished) { MutantsGrouped = _currentSession.MutantsGrouped, }); }
public async Task SaveResults(string path = null) { if (path == null) { if (string.IsNullOrEmpty(_viewModel.TargetPath) || !Path.IsPathRooted(_viewModel.TargetPath)) { _svc.Logging.ShowError("Invalid path"); return; } path = _viewModel.TargetPath; } _viewModel.SavingInProgress = true; _cts = new CancellationTokenSource(); var progress = ProgressCounter.Invoking(i => _viewModel.Progress = i); XDocument document = await _generator.GenerateResults(_currentSession, _viewModel.IncludeDetailedTestResults, _viewModel.IncludeCodeDifferenceListings, progress, _cts.Token); try { using (var writer = _fs.File.CreateText(path)) { writer.Write(document.ToString()); } _svc.Settings["MutationResultsFilePath"] = path; _viewModel.Close(); var p = new Process(); p.StartInfo.FileName = path; p.Start(); } catch (IOException) { _svc.Logging.ShowError("Cannot write file: " + path); } }