예제 #1
0
        public static void Main(string[] args)
        {
            string root = args[0];

            IFileReader       fileReader       = new FileReader();
            IDirectoryBrowser directoryBrowser = new DirectoryBrowser(root, fileReader, new string[] { "node_modules", "$tf", "packages" });

            IDatabaseParser  efDatabaseParser = new EntityFrameworkDatabaseParser();
            IProcedureParser procedureParser  = new InformixProcedureParser();

            IFileParser csFileParser  = new CSFileParser(efDatabaseParser);
            IFileParser sqlFileParser = new SQLFileParser(procedureParser);

            IProjectParser netCoreProjectParser = new NETCoreProjectParser(csFileParser);

            List <ProcedureParseReport> procedureList = new List <ProcedureParseReport>();
            List <ProjectParseReport>   projectList   = new List <ProjectParseReport>();

            int total = 0;

            DirFile file;

            while ((file = directoryBrowser.NextFile()) != null)
            {
                if (file.Extension == "csproj")
                {
                    ProjectParseReport projectReport = netCoreProjectParser.Parse(file);

                    if (projectReport != null)
                    {
                        projectList.Add(projectReport);
                    }
                }
                else if (file.Extension == "sql")
                {
                    FileParseReport procedureReport = sqlFileParser.Parse(file);

                    if (procedureReport != null)
                    {
                        procedureList.AddRange(procedureReport.Procedures);
                    }
                }

                total++;
                UpdateConsoleStatus(total, file.Path, root);
            }

            JsonFileWriter.WriteToFile(procedureList, "procedureReport.json");
            JsonFileWriter.WriteToFile(projectList, "projectReport.json");
        }
예제 #2
0
        public FileParseReport Parse(DirFile file)
        {
            FileParseReport databaseReport = null;

            if (file.Extension == "cs")
            {
                List <DatabaseParseReport> databaseParseReports = new List <DatabaseParseReport>();

                foreach (IDatabaseParser dbParser in _databaseParsers)
                {
                    DatabaseParseReport dbReport = dbParser.Parse(file);

                    if (dbReport != null)
                    {
                        databaseParseReports.Add(dbReport);
                    }
                }

                databaseReport = new FileParseReport(file.Name, databaseParseReports, null);
            }

            return(databaseReport);
        }
예제 #3
0
        public FileParseReport Parse(DirFile file)
        {
            FileParseReport databaseReport = null;

            if (file.Extension == "sql")
            {
                List <ProcedureParseReport> procedureParseReports = new List <ProcedureParseReport>();

                foreach (IProcedureParser procParser in _procedureParsers)
                {
                    ProcedureParseReport procReport = procParser.Parse(file);

                    if (procReport != null)
                    {
                        procedureParseReports.Add(procReport);
                    }
                }

                databaseReport = new FileParseReport(file.Name, null, procedureParseReports);
            }

            return(databaseReport);
        }