Example #1
0
        private async Task <Example> ExtractFileFeatures(Document document, ExternalArgumentsDataset externalArgumentsDataset)
        {
            (_, Example example) = await externalArgumentsDataset.AddExample(document);

            example.SourcePath = document.FilePath;
            example.Features   = example.Features.Trim();
            return(example);
        }
Example #2
0
        private async Task <Example> ExtractFileFeatures(string filePath, ExternalArgumentsDataset externalArgumentsDataset)
        {
            string fileContent = File.ReadAllText(filePath);

            (_, Example example) = await externalArgumentsDataset.AddExample("", false, fileContent);

            example.SourcePath = filePath;
            example.Features   = example.Features.Trim();
            return(example);
        }
Example #3
0
        public async Task <List <Example> > ScanFolder(string directoryPath)
        {
            string[]                 filePaths                = Directory.GetFiles(directoryPath, "*.cs", SearchOption.AllDirectories);
            List <Example>           scannedFiles             = new List <Example>();
            ExternalArgumentsDataset externalArgumentsDataset = new ExternalArgumentsDataset(null, verbose);

            foreach (string filePath in filePaths)
            {
                Example example = await ExtractFileFeatures(filePath, externalArgumentsDataset);

                scannedFiles.Add(example);
            }

            return(await ClassifyFiles(scannedFiles));
        }
Example #4
0
        public async Task <List <Example> > ScanProject(string projectFilePath)
        {
            using (var workspace = MSBuildWorkspace.Create())
            {
                Project project = await workspace.OpenProjectAsync(projectFilePath);

                IEnumerable <Document>   documents                = project.Documents.Where(d => d.FilePath != null && d.FilePath.EndsWith(".cs"));
                List <Example>           scannedFiles             = new List <Example>();
                ExternalArgumentsDataset externalArgumentsDataset = new ExternalArgumentsDataset(projectFilePath, verbose);
                foreach (Document document in documents)
                {
                    Example example = await ExtractFileFeatures(document, externalArgumentsDataset);

                    scannedFiles.Add(example);
                }

                return(await ClassifyFiles(scannedFiles));
            }
        }