protected override PolicyResult CheckPolicy(DirectoryInfo databaseScriptsRoot) { PolicyResult result = new PolicyResult(); IEnumerable <FileInfo> allFiles = FileListFilter.FilterFileListWithIgnoreDirectoryFilter( databaseScriptsRoot.GetFiles(ToolConfiguration.SqlFileSearchPattern, SearchOption.AllDirectories)); IEnumerable <FileInfo> allFilesWithoutCreateDatabase = allFiles.Where(x => !ToolConfiguration.CreateDatabaseSqlFileSearchPattern.Equals(x.Name)); IEnumerable <FileInfo> invalidFilenames = (from fileInfo in allFilesWithoutCreateDatabase where VersionNumberHelper.FilenameHasValidVersionPrefix(fileInfo.Name) == false select fileInfo).ToList(); if (!invalidFilenames.Any()) { result.Success = true; } else { result.Messages.Add( string.Format( "FilenamePrefixPolicy failed. The following files do not have a valid prefix: {0}.", string.Join(",", invalidFilenames.Select(fileinfo => fileinfo.FullName).ToArray()))); } return(result); }
public static string FindLocationOfDataset(string datasetName) { var reader = new MSSQLReader() { Server = "gigasax", Database = "DMS5", SQLText = "SELECT * FROM V_Mage_Dataset_List WHERE Dataset = '" + datasetName + "'" }; var fileFilter = new FileListFilter() { FileColumnName = "Name", OutputColumnList = "Item|+|text, Name|+|text, Folder, Dataset, Dataset_ID, *", FileNameSelector = ".raw" // regex style filter for file names – blank means pass all }; var sink = new SimpleSink(); var pipeline = ProcessingPipeline.Assemble("test_pipeline", reader, fileFilter, sink); pipeline.RunRoot(null); if (sink.Rows == null || sink.Rows.Count != 1) { throw new InvalidOperationException("Mage returned invalid results."); } var folderColumnIndex = sink.ColumnIndex["Folder"]; var folderName = sink.Rows[0].GetValue(folderColumnIndex).ToString(); return(folderName); }
public IList <IFile> ListFilesRecursively(FileListFilter filter = null) { filter ??= _ => true; var files = new List <IFile>(); InternalListFilesRecursively(filter, this, files); return(files); }
private void InternalListFilesRecursively(FileListFilter filter, IDirectory directory, List <IFile> files) { foreach (var file in directory.ListFiles()) { if (filter(file)) { files.Add(file); } } foreach (var dir in directory.ListDirectories()) { InternalListFilesRecursively(filter, dir, files); } }
protected override PolicyResult CheckPolicy(DirectoryInfo databaseScriptsRoot) { PolicyResult result = new PolicyResult(); FileInfo[] allSqlFiles = FileListFilter.FilterFileListWithIgnoreDirectoryFilter( databaseScriptsRoot.GetFiles(ToolConfiguration.SqlFileSearchPattern, SearchOption.AllDirectories)).ToArray(); if (allSqlFiles.Length == 0) { result.Messages.Add( string.Format( "MustContainSqlFilePolicy failed. There were no script files with the extension: {0} found.", ToolConfiguration.SqlFileExtension)); return(result); } result.Success = true; return(result); }