예제 #1
0
        public async void LoadCode(CodeLanguage selectedLanguage)
        {
            _viewModel.IsCodeLoading = true;
            _viewModel.ClearCode();

            var mutant = _currentMutant;

            if (mutant != null)
            {
                MutationResult mutationResult = await _mutantsCache.GetMutatedModulesAsync(mutant);

                CodeWithDifference diff = await _codeVisualizer.CreateDifferenceListing(selectedLanguage,
                                                                                        mutant, mutationResult);

                if (diff != null)
                {
                    _viewModel.PresentCode(diff);
                    _viewModel.IsCodeLoading = false;
                }
            }
        }
예제 #2
0
        public async Task <XElement> CreateCodeDifferenceListings(List <Mutant> mutants, ProgressCounter progress, CancellationToken token)
        {
            var list = new List <XElement>();

            foreach (var mutant in mutants)
            {
                progressAction(progress, token);
                var mutresult = await _mutantsCache.GetMutatedModulesAsync(mutant);

                var diff = await _codeVisualizer.CreateDifferenceListing(CodeLanguage.CSharp,
                                                                         mutant, mutresult);

                var el = new XElement("MutantCodeListing",
                                      new XAttribute("MutantId", mutant.Id),

                                      new XElement("Code",
                                                   Environment.NewLine + diff.Code));
                list.Add(el);
            }
            return(new XElement("CodeDifferenceListings", list));
        }