Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }