Esempio n. 1
0
        private ThreadData Extract(string relativeFilePath, ParallelLoopState state, ThreadData data)
        {
            var extension = Path.GetExtension(relativeFilePath);
            var extractor = data.GetExtractor(extension);

            if (extractor == null)
            {
                return(data);
            }

            string content;

            LocalizableTextInfo[] texts;
            try
            {
                content = File.ReadAllText(Path.Combine(_basePath !, relativeFilePath));
                texts   = extractor.Extract(content).ToArray();
            }
            catch (Exception ex)
            {
                data.Results.Add(relativeFilePath, new ExtractResult {
                    Error = ex.Message.Replace(Environment.NewLine, " ")
                });
                return(data);
            }

            if (texts.Length > 0)
            {
                data.Results.Add(relativeFilePath, new ExtractResult {
                    Texts = texts
                });
            }

            return(data);
        }