public static List <IFile> SearchFilesPath(IFile root, string path)
        {
            var condition = new FilePathCondition();

            condition.Path = path;
            return(SearchFile.Search(root, condition));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="inputProject"></param>
        /// <returns> path to .exe file </returns>
        public Tuple <string, LogProcess> Process(IProject inputProject)
        {
            List <IFile> listCsFiles = SearchFile.Search(inputProject.RootFolder,
                                                         new CsFileSearchCondition());
            List <CsClass> screens = new List <CsClass>();

            List <CsFile> listCsFilesNeedToModify = new List <CsFile>();

            foreach (IFile file in listCsFiles)
            {
                CsFileAnalyzer csFileAnalyzer = new CsFileAnalyzer();
                CsFile         csFile         = (CsFile)file;
                csFileAnalyzer.CsFile = csFile;
                csFileAnalyzer.Process();
                foreach (CsClass csClass in csFile.Classes)
                {
                    if (csClass.BaseOnClass != null && (
                            csClass.BaseOnClass.Contains(CsClass.WINDOW_CLASS) |
                            csClass.BaseOnClass.Contains(CsClass.FORM_CLASS)))
                    {
                        screens.Add(csClass);
                        if (!listCsFilesNeedToModify.Contains(file))
                        {
                            listCsFilesNeedToModify.Add((CsFile)file);
                        }
                    }
                }
            }

            ModifyProject(inputProject, screens, listCsFilesNeedToModify);
            return(RebuildProject(inputProject));
        }
        public static CsprojFile SearchCsprojFile(IFile root)
        {
            List <IFile> files = SearchFile.Search(root, new CsprojSearchCondition());

            if (files == null | files.Count != 1)
            {
                logger.Error("get " + files.Count + " .csproj in project input: " + files);
                return(null);
            }
            return((CsprojFile)files[0]);
        }