Exemplo n.º 1
0
        public CodeBase Analyze(MetricsCommandArguments details)
        {
            var command = collectionStepFactory.GetStep(details.RepositorySourceType);

            details.MetricsOutputFolder = fileSystem.MetricsOutputFolder;
            details.BuildOutputFolder   = fileSystem.GetProjectBuildFolder(details.ProjectName);
            fileSystem.CreateFolder(details.BuildOutputFolder);

            var metricsResults = command.Run(details);

            var codeBase = CodeBase.Empty();

            foreach (var x in metricsResults)
            {
                var filename = x.MetricsFile;
                var cb       = codebaseService.Get(fileSystem.OpenFileStream(filename), x.ParseType);
                codeBase.Enrich(new CodeGraph(cb.AllInstances));
            }

            var codebase = analyzerFactory.For(details.RepositorySourceType).Analyze(codeBase.AllInstances);

            codebase.SourceType = details.RepositorySourceType;
            codebase.Name       = details.ProjectName;

            return(codebase);
        }