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); }
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); }
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)); }
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)); } }