/// <summary> /// Implements <see cref="ICommand.Execute" /> /// </summary> public void Execute(object parameter) { _mainWindowViewModel.ExtractedData.Clear(); _mainWindowViewModel.ExtractedDataShadow.Clear(); var span = new TimeSpan(); _mainWindowViewModel.Information = string.Format("Extracting"); var nodes = new List <INode>(); if (_mainWindowViewModel.ExtractTests) { var result = _extractor.ExtractTimed <IStubNode>(_mainWindowViewModel.Files); span = result.Item2; nodes.AddRange(result.Item1); } if (_mainWindowViewModel.ExtractSuits) { var result = _extractor.ExtractTimed <ISuiteNode>(_mainWindowViewModel.Files); span = result.Item2; nodes.AddRange(result.Item1); } _mainWindowViewModel.Information = string.Format("Extraction took {0} ms", span.Milliseconds); if (!nodes.Any()) { return; } foreach (var node in nodes) { _mainWindowViewModel.ExtractedData.Add(node); } _mainWindowViewModel.ExtractedDataShadow.AddRange(nodes); _mainWindowViewModel.PopulateCategoryFiltersCommand.Execute(null); _mainWindowViewModel.FilterCommand.Execute(null); }