Exemplo n.º 1
0
        static void GetInputFiles(string path)
        {
            if (System.IO.File.Exists(path))
            {
                var content = System.IO.File.ReadAllLines(path);

                CodeParser cp = new CodeParser(allowedExtensions);

                var resultStrings = cp.FindStrings(content);
                var files         = new List <StringDefinition>();
                var paths         = new List <StringDefinition>();
                StringDefinition file;
                foreach (var s in resultStrings)
                {
                    file = null;
                    foreach (var extension in allowedExtensions)
                    {
                        if (s.LineContent.ToUpper().EndsWith(extension.Extension))
                        {
                            file = s;
                            break;
                        }
                    }

                    if (file == null)
                    {
                        paths.Add(s);
                    }
                    else
                    {
                        files.Add(s);
                    }
                }

                var inputfiles        = new List <InputFile>();
                var strangeInputfiles = new List <InputFile>();

                // Try to find for each file the path needed.
                foreach (var f in files)
                {
                    var possiblePaths = paths.Where(p => (f.LineIndex - 5 <= p.LineIndex) && (p.LineIndex <= f.LineIndex)).OrderByDescending(p => p.LineIndex).ToList();

                    if (possiblePaths.Count == 1)
                    {
                        inputfiles.Add(new InputFile(possiblePaths[0].LineContent, f.LineContent));
                    }
                    else
                    {
                        strangeInputfiles.Add(new InputFile(f.LineContent));
                    }
                }

                inputfiles        = inputfiles.Distinct().ToList();
                strangeInputfiles = strangeInputfiles.Distinct().ToList();

                var difference = strangeInputfiles.Where(s => !inputfiles.Any(i => i.Filename == s.Filename)).ToList();
            }
        }