protected virtual internal void UpdateBuildFiles(DbBuildVersion build) { foreach (var item in build.Files) { var originalName = ""; var newName = ""; Console.WriteLine("Update {0} to {1}", originalName, newName); } }
protected virtual internal DbUpgradeFile GetUpgradeFile(DbBuildVersion version) { var upgradeFileName = String.Format("Upgrade.{0}.vb", version.VersionNumber.MajorMinorBuildVersion().ToString()); var upgradeFullPath = System.IO.Path.Combine(version.RootPath, upgradeFileName); var upgradeFile = new DbUpgradeFile() { FullPath = upgradeFullPath, FileName = upgradeFileName, Content = System.IO.File.ReadAllText(upgradeFullPath) }; return(upgradeFile); }
public TaskResult <DbVersion> UpdateDbBuildVersion(DbMinorVersion versionToUpdate) { var result = new TaskResult <DbVersion>(); try { if (!versionToUpdate.RequiresUpgrade) { throw new InvalidOperationException("Upgrade folder not found!"); } // need to confirm that we have a x.x.100 version! var upgradeVersion = versionToUpdate.UpgradeBuildVersion; var currentDbVersion = GetCurrentBuildVersion(versionToUpdate); var newBuildNumber = currentDbVersion.VersionNumber.Build + 1; var newVersionNumber = new Version(versionToUpdate.VersionNumber.Major, versionToUpdate.VersionNumber.Minor, newBuildNumber); var newVersionDirectoryPath = Path.Combine(versionToUpdate.RootPath, newVersionNumber.MajorMinorBuildVersion().ToString()); // rename the files in the build version being updated. (Replace '100' with the new build #) foreach (var buildVersionFile in upgradeVersion.Files) { File.Move(buildVersionFile.FullPath, buildVersionFile.UpdatedVersionPath(newBuildNumber)); } // Update the build version vb file (16.2.100) to use the new build number (class name, version declaration, vb upgrade file name. var buildVersionUpgradeFile = upgradeVersion.BuildUpgradeVbFile; var content = buildVersionUpgradeFile.Content.Replace(Constants.UpgradeBuildNumber.ToString(), newBuildNumber.ToString()); File.WriteAllText(upgradeVersion.BuildUpgradeVbFile.FullPath, content); var newFilePath = upgradeVersion.BuildUpgradeVbFile.UpdatedVersionPath(newBuildNumber); File.Move(upgradeVersion.BuildUpgradeVbFile.FullPath, newFilePath); // rename the folder in the build version being updated (16.2.100->16.2.20, replace '100' with the new build #) Directory.Move(upgradeVersion.RootPath, upgradeVersion.UpdatedVersionPath(newBuildNumber)); // Add the call to the new class in the minor version upgrade vb file. var minorUpgradeClassContent = versionToUpdate.UpgradeVbFile.Content; var lastVersionUpgradeClassName = String.Format("Upgrade{0}_{1}_{2}()", upgradeVersion.VersionNumber.Major, upgradeVersion.VersionNumber.Minor, (newBuildNumber - 1)); var newVersionUpgradeClassName = String.Format("Upgrade{0}_{1}_{2}()", upgradeVersion.VersionNumber.Major, upgradeVersion.VersionNumber.Minor, newBuildNumber); var lastBuildCallIndex = minorUpgradeClassContent.IndexOf(lastVersionUpgradeClassName); if (lastBuildCallIndex > 0) { minorUpgradeClassContent = minorUpgradeClassContent.Insert(lastBuildCallIndex + lastVersionUpgradeClassName.Length, "," + Environment.NewLine + " New " + newVersionUpgradeClassName); File.WriteAllText(versionToUpdate.UpgradeVbFile.FullPath, minorUpgradeClassContent); } upgradeVersion = new DbBuildVersion(newVersionNumber, newVersionDirectoryPath); // TODO: confirm file property set to EmbeddedResource // TODO: Confirm update versus adding // TODO: Run SetVersion -IncrementDb } catch (Exception ex) { result.AddException(ex); Console.WriteLine(ex.ToString()); } return(result); }
protected virtual internal void UpdateMajorMinorUpgradeFile(DbMinorVersion version, DbBuildVersion newBuild) { // add the new class. Console.WriteLine("Add Class {0} to {1} in file {2}", newBuild.UpgradeClassName, version.UpgradeClassName, version.UpgradeVbFile.FileName); }
protected virtual internal void UpdateBuildUpgradeFile(DbBuildVersion currentBuild, DbBuildVersion newBuild) { Console.WriteLine("Change File {0} to {1}", currentBuild.BuildUpgradeVbFile.FileName, newBuild.BuildUpgradeVbFile.FileName); Console.WriteLine("Change Class {0} to {1}", currentBuild.UpgradeClassName, newBuild.UpgradeClassName); }