public ScriptFilesComparerBase CreateScriptFilesComparer <TScriptFileType>(DBCommands dbCommands, string folderPath) where TScriptFileType : ScriptFileTypeBase, new() { DBExecutedFiles dbExecutedFiles = new DBExecutedFiles(dbCommands, ScriptFileTypeBase.Create <TScriptFileType>()); ScriptFilesComparerBase scriptFilesComparer = null; if (typeof(TScriptFileType) == typeof(IncrementalScriptFileType)) { FileSystemScriptFiles fileSystemScriptFiles = new FileSystemScriptFiles(_fileChecksum, ScriptFileTypeBase.Create <TScriptFileType>(), folderPath); scriptFilesComparer = new IncrementalScriptFilesComparer(fileSystemScriptFiles, dbExecutedFiles); } else if (typeof(TScriptFileType) == typeof(RepeatableScriptFileType)) { FileSystemScriptFiles fileSystemScriptFiles = new FileSystemScriptFiles(_fileChecksum, ScriptFileTypeBase.Create <TScriptFileType>(), folderPath); scriptFilesComparer = new RepeatableScriptFilesComparer(fileSystemScriptFiles, dbExecutedFiles); } else if (typeof(TScriptFileType) == typeof(DevDummyDataScriptFileType)) { FileSystemScriptFiles fileSystemScriptFiles = new FileSystemScriptFiles(_fileChecksum, ScriptFileTypeBase.Create <TScriptFileType>(), folderPath); scriptFilesComparer = new DevDummyDataScriptFilesComparer(fileSystemScriptFiles, dbExecutedFiles); } return(scriptFilesComparer); }
public DBExecutedFiles(DBCommands dbCommands, ScriptFileTypeBase scriptFileType) { _dbCommands = dbCommands; ScriptFileType = scriptFileType; Load(); }
public RuntimeScriptFile(ScriptFileTypeBase scriptFileType, string folderPath, string scriptName, int orderNum) { ScriptFileType = scriptFileType; FolderPath = folderPath; ScriptName = scriptName; OrderNum = orderNum; }
public RuntimeScriptFile(ScriptFileTypeBase scriptFileType, string folderPath, string fileFullPath) { scriptFileType.ThrowIfNull(nameof(scriptFileType)); fileFullPath.ThrowIfNull(nameof(fileFullPath)); folderPath.ThrowIfNull(nameof(folderPath)); ScriptFileType = scriptFileType; FolderPath = folderPath; FileInfo fiFile = new FileInfo(fileFullPath); string shouldBeFileFullPath = Path.Combine(FolderPath, fiFile.Name); if (shouldBeFileFullPath.Trim().ToUpperInvariant() != fileFullPath.Trim().ToUpperInvariant()) { throw new ArgumentException($"The argument path: '{fileFullPath}' is different from '{shouldBeFileFullPath}'"); } string filename = fiFile.Name; string filenameWithoutExtension = fiFile.Name.Replace(fiFile.Extension, ""); bool isFilenameValid = Regex.IsMatch(filename, ScriptFileType.RegexFilenamePattern); if (!isFilenameValid) { string errorMessage = CoreTextResources .InvalidFilenameErrorMessage .Replace("[Filename]", filename) .Replace("[FileTypeCode]", ScriptFileType.FileTypeCode) .Replace("[FilenamePattern]", ScriptFileType.FilenamePattern); throw new Exception(errorMessage); } string[] arrFilenameParts = Regex.Split(filenameWithoutExtension, "_"); ScriptName = string.Join("_", arrFilenameParts.Skip(2)); string fileOrderNumStr = arrFilenameParts[1]; if (!int.TryParse(fileOrderNumStr, out int tempOrderNum_FromFilename)) { string errorMessage = CoreTextResources .InvalidOrderNumForIncScriptException .Replace("[Filename]", filename); throw new Exception(errorMessage); } OrderNum = tempOrderNum_FromFilename; }
public static bool TryParseNextRuntimeScriptFileInstance(ScriptFileTypeBase scriptFileType, string folderPath, string scriptName, RuntimeScriptFile prevRuntimeScriptFile, out RuntimeScriptFile newRuntimeScriptFile) { int nextOrderNum = 1; if (prevRuntimeScriptFile != null) { nextOrderNum = prevRuntimeScriptFile.OrderNum + 1; } newRuntimeScriptFile = new RuntimeScriptFile(scriptFileType, folderPath, scriptName, nextOrderNum); return(newRuntimeScriptFile.IsValidFileName); }
public FileSystemScriptFiles(FileChecksum fileChecksum, ScriptFileTypeBase scriptFileType, string folderPath) { fileChecksum.ThrowIfNull(nameof(fileChecksum)); scriptFileType.ThrowIfNull(nameof(scriptFileType)); folderPath.ThrowIfNull(nameof(folderPath)); _fileChecksum = fileChecksum; ScriptFileType = scriptFileType; FolderPath = folderPath; Load(); }