Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
    public IList <IFile> ListFilesRecursively(FileListFilter filter = null)
    {
        filter ??= _ => true;
        var files = new List <IFile>();

        InternalListFilesRecursively(filter, this, files);

        return(files);
    }
Example #4
0
    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);
        }
    }
Example #5
0
        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);
        }