public ExtractScriptNumberFromFilename ( string filename ) : int | ||
filename | string | |
return | int |
public void CanParseAnyFilenameThatStartsWithANumber() { FilenameParser parser = new FilenameParser(); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("0001_a_filename.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1_a_filename.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1 a filename.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1.txt")); Assert.AreEqual(123, parser.ExtractScriptNumberFromFilename("00123_something.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1.foo.2.txt")); }
public void CanParseAnyFilenameThatStartsWithANumber() { FilenameParser parser = new FilenameParser(); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("0001_a_filename.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1_a_filename.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1 a filename.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1.txt")); Assert.AreEqual(123, parser.ExtractScriptNumberFromFilename("00123_something.txt")); Assert.AreEqual(1, parser.ExtractScriptNumberFromFilename("1.foo.2.txt")); }
public List <ChangeScript> GetChangeScripts() { if (directory == null) { return(new List <ChangeScript>()); } if (!directory.Exists) { return(new List <ChangeScript>()); } try { infoTextWriter.WriteLine("Reading change scripts from directory '" + directory.FullName + "'..."); } catch (IOException) { // ignore } var scripts = new List <ChangeScript>(); foreach (FileInfo file in directory.GetFiles("*.sql", SearchOption.AllDirectories)) { if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) { continue; } string filename = file.Name; try { var scriptNumber = filenameParser.ExtractScriptNumberFromFilename(filename); scripts.Add(new ChangeScript(file.Directory.Name, scriptNumber, file, encoding)); } catch (UnrecognisedFilenameException) { // ignore } } return(scripts); }
private IEnumerable <ChangeScript> GetChangeScriptsFromAssembly(Assembly assembly) { try { this.infoTextWriter.WriteLine("Reading change scripts from assembly '" + assembly.FullName + "'..."); } catch (IOException) { // ignore } var scripts = new List <ChangeScript>(); var resourceScripts = assembly.GetManifestResourceNames().Where(resourceName => resourceName.EndsWith(".sql")); if (resourceNameFilter != null) { resourceScripts = resourceScripts.Where(resourceName => resourceNameFilter.Invoke(resourceName)); } foreach (var resourceScript in resourceScripts) { string folder = ExtractFolderNameWithUnderlines(resourceScript); string fileName = ExtractFileName(resourceScript, folder); try { folder = folder.Replace("._", "."); int scriptNumber = filenameParser.ExtractScriptNumberFromFilename(fileName); var embeddedFileInfo = new EmbeddedFileInfo { Assembly = assembly, FileName = fileName, Folder = folder, ResourceName = resourceScript }; scripts.Add(new ChangeScript(embeddedFileInfo, scriptNumber, encoding)); } catch (UnrecognisedFilenameException) { // ignore } } return(scripts); }