public override async Task OnNavigatedToAsync(NavigationContext navigationContext) { foreach (var item in context.Configuration.Localization.Sources) { Sources.Add(item.Name); } foreach (var item in context.Configuration.Localization.Languages) { BaseLanguages.Add(new LanguageStruct(item.Icon, item.Name, item.DisplayName)); TargetLanguages.Add(new LanguageStruct(item.Icon, item.Name, item.DisplayName)); } if (navigationContext.Parameters.ContainsKey("Name")) { var Name = navigationContext.Parameters.GetValue <string>("Name"); var lang = context.Configuration.Localization.Languages.FirstOrDefault(t => t.Name.Equals(Name)); if (lang != null) { SelectedBaseLanguage = new LanguageStruct(lang.Icon, lang.Name, lang.DisplayName); SelectedTargetLanguage = new LanguageStruct(lang.Icon, lang.Name, lang.DisplayName); } input.TargetValueFilter = "ALL"; input.SourceName = Sources.Last(); } await RefreshAsync(); }
public override WorkflowResult Process(WorkflowResult workflowResult = null, CancellationToken cancellationToken = default(CancellationToken)) { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; BaseLanguages = GetBaseLanguages(AnalyzedLanguages); var result = workflowResult ?? new WorkflowResult(AnalyzedLanguages.ToArray(), ThreadCount, Stage, IsIncludeIntermediateResult); result.BaseLanguages = BaseLanguages.ToArray(); result.RenderStages = RenderStages; result.IsSimplifyUst = IsSimplifyUst; IEnumerable <string> fileNames = SourceCodeRepository.GetFileNames(); if (fileNames is IList <string> fileNamesList) { result.TotalFilesCount = fileNamesList.Count; } else { filesCountTask = Task.Factory.StartNew(() => result.TotalFilesCount = fileNames.Count()); } try { var patternMatcher = new PatternMatcher { Logger = Logger, Patterns = ConvertPatterns(result), IsIgnoreFilenameWildcards = IsIgnoreFilenameWildcards }; var parallelOptions = PrepareParallelOptions(cancellationToken); Parallel.ForEach( fileNames, parallelOptions, fileName => { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; ProcessFileWithTimeout(fileName, patternMatcher, result, parallelOptions.CancellationToken); }); } catch (OperationCanceledException) { Logger.LogInfo("Scan has been cancelled"); } if (result.TotalProcessedFilesCount > 1) { AntlrParser.ClearCacheIfRequired(); } DumpJsonOutput(result); result.ErrorCount = logger?.ErrorCount ?? 0; return(result); }