Commit 0e9c5d3a0145c31401cee2b23a9563098a036f20

Authored by Schwirg László
1 parent 4e5cf08c

v1.26.0.0

- DBBackup remote SQL serverről
Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs
... ... @@ -70,8 +70,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
70 70 var dbname = SQLDataBaseManagerCore.GetDBName(sqld.SQLCS);
71 71 ColorConsole.WriteLine($"Database backup process started. DB key:'{key}', name:'{dbname}'...", ConsoleColor.Yellow);
72 72 if (!string.IsNullOrWhiteSpace(targetfolder)) { sqld.Xml_BackupTargetDirectoryPath = targetfolder; }
73   - if (enabledbbackup) { SQLDataBaseManagerCore.CreateBackup(sqld.Xml_BackupTargetDirectoryPath, sqld.SQLCS, sqld.Xml_BackupFileNameMask, sqld.Xml_CreateZip, timestamp); }
74   - if (enablescriptbackup) { SQLDataBaseManagerCore.BackupSqlScripts(sqld.Xml_BackupTargetDirectoryPath, sqld.Xml_BackupFileNameMask, sqld.SQLCS, sqld.Xml_CreateZip, timestamp); }
  73 + if (enabledbbackup) { SQLDataBaseManagerCore.CreateBackup(sqld,null, timestamp); }
  74 + if (enablescriptbackup) { SQLDataBaseManagerCore.BackupSqlScripts(sqld, timestamp); }
75 75 if (enabletabledatabackup) { SQLDataBaseManagerCore.BackupSqlData(sqld, timestamp); }
76 76 ColorConsole.WriteLine($"Database backup process finished!", ConsoleColor.DarkGreen);
77 77 }
... ... @@ -135,7 +135,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
135 135 try
136 136 {
137 137  
138   - SQLDataBaseManagerCore.BackupSqlScripts(sqld.Xml_BackupTargetDirectoryPath, sqld.Xml_BackupFileNameMask,sqld.SQLCS,sqld.Xml_CreateZip,TS);
  138 + SQLDataBaseManagerCore.BackupSqlScripts(sqld,TS);
139 139 ColorConsole.WriteLine($"SQLDB code scripts created. Name:{sqld.Xml_Description}", ConsoleColor.Green);
140 140 }
141 141 catch (Exception ex) { ColorConsole.WriteLine(ex.Message, ConsoleColor.Red); }
... ... @@ -164,7 +164,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
164 164 SQLDataBase ssqldb = p.Parameters as SQLDataBase;
165 165 try
166 166 {
167   - SQLDataBaseManagerCore.CreateBackup(ssqldb.Xml_BackupTargetDirectoryPath, ssqldb.SQLCS, ssqldb.Xml_BackupFileNameMask, ssqldb.Xml_CreateZip,TS);
  167 + SQLDataBaseManagerCore.CreateBackup(ssqldb,null,TS);
168 168 ColorConsole.WriteLine($"Database backup created. Name:{ssqldb.DBName}", ConsoleColor.Green);
169 169 }
170 170 catch (Exception ex) { ColorConsole.WriteLine(ex.Message, ConsoleColor.Red); }
... ... @@ -212,7 +212,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
212 212 if (ms == null) { continue; }
213 213 selectedbackupfilepath = ms.SelectedParameterList.First().Parameters.ToString();
214 214 }
215   - SQLDataBaseManagerCore.RestoreBackup(st.SQLCS, selectedbackupfilepath, targetdirectorypath, restorefromzip, targetdbname);
  215 + SQLDataBaseManagerCore.RestoreBackup(st, selectedbackupfilepath, targetdirectorypath, restorefromzip, targetdbname);
216 216 ColorConsole.WriteLine($"Database '{st.DBName}' restored to '{targetdbname}' into directory '{targetdirectorypath}'.", ConsoleColor.Green);
217 217 }
218 218 else
... ... @@ -729,13 +729,20 @@ GO
729 729  
730 730 public static void RelocatePhysicalFiles(SQLDataBase sqld, string targetdirectory, string restoredbname)
731 731 {
732   - var dbbackupfilepath = CreateBackup(sqld.Xml_BackupTargetDirectoryPath, sqld.SQLCS, sqld.Xml_BackupFileNameMask, false);
  732 + var dbbackupfilepath = CreateBackup(sqld, false,null);
733 733 if (dbbackupfilepath == null) return;
734   - RestoreBackup(sqld.SQLCS, dbbackupfilepath, targetdirectory, false, restoredbname);
  734 + RestoreBackup(sqld, dbbackupfilepath, targetdirectory, false, restoredbname);
735 735 if (File.Exists(dbbackupfilepath)) { File.Delete(dbbackupfilepath); }
736 736 }
737   - public static void RestoreBackup(string sqlcs, string sourcesqlbackupfilepath, string targetdbphysicalfilesdirectorypath, bool restorefromZIP = false, string restoretodbname = null)
  737 + public static void RestoreBackup(SQLDataBase sqldb, string sourcesqlbackupfilepath, string targetdbphysicalfilesdirectorypath, bool restorefromZIP = false, string restoretodbname = null)
738 738 {
  739 + if (sqldb.Xml_IsRemoteDB)
  740 + {
  741 + ColorConsole.WriteLine(text: $" {nameof(RestoreBackup)}: data restore is not available for remote SQL Servers! DBname:'{sqldb.DBName}'.", prefix: $"WARNING!", f: ConsoleColor.Yellow);
  742 + return;
  743 + }
  744 +
  745 + string sqlcs = sqldb.SQLCS;
739 746 string backupfilepath;
740 747 if (restorefromZIP)
741 748 {
... ... @@ -783,60 +790,107 @@ GO
783 790 if (File.Exists(backupfilepath)) { File.Delete(backupfilepath); }
784 791 }
785 792 }
786   - public static string CreateBackup(string backupdirectorypath, string sqlconnectionstring, string backupfilenamemask, bool createzip = false,DateTime? timestamp=null)
  793 +
  794 + /// <summary>
  795 + /// Create SQL DB backup
  796 + /// </summary>
  797 + /// <param name="sqld">az sql db-t leíró descriptor</param>
  798 + /// <param name="forcecreatezip"></param>
  799 + /// <param name="timestamp"></param>
  800 + /// <returns></returns>
  801 + public static string CreateBackup(SQLDataBase sqld,bool? forcecreatezip, DateTime? timestamp)
787 802 {
  803 + string backupdirectorypath = sqld.Xml_BackupTargetDirectoryPath;
  804 + string tranzitdirectorypathlocal = sqld.Xml_TranzitDirectoryPathLocal;
  805 + string tranzitdirectorypathnetwork = sqld.Xml_TranzitDirectoryPathNetwork;
  806 + bool usetranzit = sqld.Xml_IsRemoteDB;
  807 + string sqlconnectionstring = sqld.SQLCS;
  808 + string backupfilenamemask = sqld.Xml_BackupFileNameMask;
  809 + bool createzip = forcecreatezip ?? sqld.Xml_CreateZip;
  810 + //tranzitdirectorypathlocal = @"F:\ALM";
  811 + //tranzitdirectorypathnetwork = @"\\matng-sql01\ALM";
788 812 var sqlserver = SQLServerConnect(sqlconnectionstring);
  813 + if (sqlserver == null)
  814 + {
  815 + ColorConsole.WriteLine($"ERROR! Database connection string error. '{sqlconnectionstring}'", ConsoleColor.Red);
  816 + return null;
  817 + }
  818 +
789 819 string returnfilename = null;
790   - if (sqlserver != null)
791   - {
792   - var dbname = GetDBName(sqlconnectionstring);
  820 + var dbname = GetDBName(sqlconnectionstring);
793 821  
794   - var backupts = (timestamp.HasValue ? timestamp.Value : DateTime.Now).ToString("yyyyMMddHHmmss");
795   -
796   - string backupfileNameOnly = Path.GetFileNameWithoutExtension(backupfilenamemask);
797   - var vars = new Dictionary<string, string>();
798   - vars.Add(nameof(DBSubstitutionName.DATABASE), GetDBName(sqlconnectionstring));
799   - vars.Add(nameof(DBSubstitutionName.DATASOURCE), GetDataSource(sqlconnectionstring));
800   - vars.Add(nameof(DBSubstitutionName.DBOTYPE), "DBBACKUP");
801   - vars.Add(nameof(DBSubstitutionName.DBONAME), "");
802   - vars.Add(nameof(DBSubstitutionName.DBDATAGROUP), "");
803   - vars.Add(nameof(DBSubstitutionName.BACKUPTS), backupts);
  822 + var backupts = (timestamp.HasValue ? timestamp.Value : DateTime.Now).ToString("yyyyMMddHHmmss");
804 823  
805   - backupfileNameOnly = VRH.Common.StringConstructor.ResolveConstructorR(vars, backupfileNameOnly, "{}@@");
806   -
807   - string backupfilename = backupfileNameOnly + ".bak";
808   - string backupFullName = Path.Combine(backupdirectorypath, backupfilename);
809   - if (File.Exists(backupFullName)) { File.Delete(backupFullName); }
810   -
811   - var smoBackup = new Backup();
812   - smoBackup.Action = BackupActionType.Database;
813   - smoBackup.BackupSetDescription = $"Full Backup of {sqlserver.ConnectionContext.DatabaseName}";
814   - smoBackup.BackupSetName = sqlserver.ConnectionContext.DatabaseName + " Backup";
815   - smoBackup.Database = sqlserver.ConnectionContext.DatabaseName;
816   - smoBackup.MediaDescription = "Disk";
817   - smoBackup.Devices.AddDevice(backupFullName, DeviceType.File);
818   - //smoBackup.
819   - smoBackup.PercentComplete += SmoBackup_PercentComplete;
820   - smoBackup.PercentCompleteNotification = 1;
821   - smoBackup.SqlBackupAsync(sqlserver);
822   - Console.WriteLine("");
823   - smoBackup.Wait();
824   - Console.WriteLine("");
825   -
826   - returnfilename = backupFullName;
  824 + string backupfileNameOnly = Path.GetFileNameWithoutExtension(backupfilenamemask);
  825 + var vars = new Dictionary<string, string>();
  826 + vars.Add(nameof(DBSubstitutionName.DATABASE), GetDBName(sqlconnectionstring));
  827 + vars.Add(nameof(DBSubstitutionName.DBKEY), sqld.Xml_Key);
  828 + vars.Add(nameof(DBSubstitutionName.DATASOURCE), GetDataSource(sqlconnectionstring));
  829 + vars.Add(nameof(DBSubstitutionName.DBOTYPE), "DBBACKUP");
  830 + vars.Add(nameof(DBSubstitutionName.DBONAME), "");
  831 + vars.Add(nameof(DBSubstitutionName.DBDATAGROUP), "");
  832 + vars.Add(nameof(DBSubstitutionName.BACKUPTS), backupts);
  833 +
  834 + backupfileNameOnly = VRH.Common.StringConstructor.ResolveConstructorR(vars, backupfileNameOnly, "{}@@");
  835 +
  836 + string backupfilename = backupfileNameOnly + ".bak";
  837 + string backupFullName = Path.Combine(backupdirectorypath, backupfilename);
  838 + string tranzitFullNameLocal= usetranzit ? Path.Combine(tranzitdirectorypathlocal, backupfilename) : null;
  839 + string tranzitFullNameNetwork= usetranzit ? Path.Combine(tranzitdirectorypathnetwork, backupfilename) : null;
  840 + if (File.Exists(backupFullName)) { File.Delete(backupFullName); }
  841 +
  842 +
  843 + var smoBackup = new Backup();
  844 + smoBackup.Action = BackupActionType.Database;
  845 + smoBackup.BackupSetName = sqlserver.ConnectionContext.DatabaseName + " Backup";
  846 + smoBackup.BackupSetDescription = $"Full Backup of {sqlserver.ConnectionContext.DatabaseName}";
  847 + smoBackup.MediaDescription = "Disk";
  848 + Console.WriteLine($"Backup set: {smoBackup.BackupSetName} ({smoBackup.BackupSetDescription}) to media: {smoBackup.MediaDescription}");
  849 + smoBackup.Database = sqlserver.ConnectionContext.DatabaseName;
  850 + string dummystring = usetranzit ? " REMOTE SQL SERVER!" : "";
  851 + Console.WriteLine($"Database name: {smoBackup.Database}{dummystring}");
  852 + Console.WriteLine($"Connection string: {sqld.SQLCS}");
  853 + smoBackup.Devices.AddDevice(usetranzit ? tranzitFullNameLocal : backupFullName, DeviceType.File);
  854 + Console.WriteLine($"Backup full name:{backupFullName}");
  855 + if (usetranzit)
  856 + {
  857 + Console.WriteLine($" ...will be created through tranzit: {tranzitFullNameNetwork}");
  858 + }
  859 + smoBackup.PercentComplete += SmoBackup_PercentComplete;
  860 + smoBackup.PercentCompleteNotification = 1;
  861 + smoBackup.SqlBackupAsync(sqlserver);
  862 + var startbackup = DateTime.Now;
  863 + smoBackup.Wait();
  864 + Console.WriteLine($"");
  865 + Console.WriteLine($"Backup completed. Backup time: {(int)(DateTime.Now.Subtract(startbackup).TotalSeconds)}sec.");
  866 + if (usetranzit && File.Exists(tranzitFullNameNetwork))
  867 + {
  868 + File.Move(tranzitFullNameNetwork, backupFullName);
  869 + Console.WriteLine($"Moving backup file...");
  870 + Console.WriteLine($" ...from tranzit location: {tranzitFullNameNetwork}");
  871 + Console.WriteLine($" ...to backup location: {backupFullName}");
  872 + }
  873 + returnfilename = backupFullName;
  874 + if (File.Exists(backupFullName))
  875 + {
827 876 if (createzip)
828 877 {
  878 + var startcompressing = DateTime.Now;
829 879 string ZIPbackupfilename = backupfileNameOnly + ".zip";
830 880 string ZIPbackupFullName = Path.Combine(backupdirectorypath, ZIPbackupfilename);
831 881 if (File.Exists(ZIPbackupFullName)) { File.Delete(ZIPbackupFullName); }
832 882  
833   - ZipTools.CreateEntriesFromDirectoryContent(backupdirectorypath, ZIPbackupFullName, backupfilename, "","", removearchivedfiles: false, storepathinzip: false);
834   - if (File.Exists(backupFullName)) { File.Delete(backupFullName); }
  883 + ZipTools.CreateEntriesFromDirectoryContent(backupdirectorypath, ZIPbackupFullName, backupfilename, "", "", removearchivedfiles: false, storepathinzip: false);
  884 + File.Delete(backupFullName);
  885 + Console.WriteLine($"Zipping completed. Compressing time: {(int)(DateTime.Now.Subtract(startcompressing).TotalSeconds)}sec.");
835 886 returnfilename = ZIPbackupFullName;
836 887 }
837   - ColorConsole.WriteLine($"Database backup created. DB name:'{dbname}'. BAK/ZIP file name:'{Path.GetFileName(returnfilename)}'", ConsoleColor.DarkGreen);
  888 + ColorConsole.WriteLine($"SUCCESS! Database backup created. DB name:'{dbname}'. BAK/ZIP file name:'{Path.GetFileName(returnfilename)}'", ConsoleColor.DarkGreen);
  889 + }
  890 + else
  891 + {
  892 + ColorConsole.WriteLine($"ERROR! Database backup failed. DB name:'{dbname}'. BAK/ZIP file name:'{Path.GetFileName(returnfilename)}'", ConsoleColor.Red);
838 893 }
839   - else { ColorConsole.WriteLine($"SQL scripts create: error in db connection string. '{sqlconnectionstring}'", ConsoleColor.DarkGreen); }
840 894 return returnfilename;
841 895 }
842 896  
... ... @@ -1074,7 +1128,7 @@ GO
1074 1128 #region DBSubstitution
1075 1129 public enum DBSubstitutionName
1076 1130 {
1077   - DATABASE,DATASOURCE,DBOTYPE,DBONAME,DBDATAGROUP,BACKUPTS,SHRINKOPTION,SHRINKFREESPACEPERCENT,
  1131 + DBKEY,DATABASE,DATASOURCE,DBOTYPE,DBONAME,DBDATAGROUP,BACKUPTS,SHRINKOPTION,SHRINKFREESPACEPERCENT,
1078 1132 }
1079 1133 #endregion DBSubstitution
1080 1134 #region ExecuteSQLScript
... ... @@ -1233,8 +1287,17 @@ GO
1233 1287 }
1234 1288 #endregion ExecuteSQLStoredProcedure
1235 1289 #region BackupSqlScripts
1236   - public static void BackupSqlScripts(string backupdirectorypath,string backupfilenamemask,string sqlcs,bool createZip, DateTime? timestamp=null)
  1290 + public static void BackupSqlScripts(SQLDataBase sqld, DateTime? timestamp=null)
1237 1291 {
  1292 + if (sqld.Xml_IsRemoteDB)
  1293 + {
  1294 + ColorConsole.WriteLine(text:$" {nameof(BackupSqlScripts)}: scrip backup is not available for remote SQL Servers! DBname:'{sqld.DBName}'.",prefix:$"WARNING!",f: ConsoleColor.Yellow);
  1295 + return;
  1296 + }
  1297 + string backupdirectorypath = sqld.Xml_BackupTargetDirectoryPath;
  1298 + string backupfilenamemask = sqld.Xml_BackupFileNameMask;
  1299 + string sqlcs = sqld.SQLCS;
  1300 + bool createZip = sqld.Xml_CreateZip;
1238 1301 var sqlserver = SQLServerConnect(sqlcs);
1239 1302 var dbname = GetDBName(sqlcs);
1240 1303 if (sqlserver!=null)
... ... @@ -1345,6 +1408,11 @@ GO
1345 1408 #region BackupSqlData
1346 1409 public static void BackupSqlData(SQLDataBase sqld,DateTime? timestamp=null)
1347 1410 {
  1411 + if (sqld.Xml_IsRemoteDB)
  1412 + {
  1413 + ColorConsole.WriteLine(text: $" {nameof(BackupSqlData)}: data backup as scripts is not available for remote SQL Servers! DBname:'{sqld.DBName}'.", prefix: $"WARNING!", f:ConsoleColor.Yellow);
  1414 + return;
  1415 + }
1348 1416 string sqlcs = sqld.SQLCS;
1349 1417 var sqlserver = SQLServerConnect(sqlcs);
1350 1418 var dbname = GetDBName(sqlcs);
... ... @@ -1494,6 +1562,8 @@ GO
1494 1562 Xml_BackupFileNameMask = GetValue(nameof(SQLDataBase.XmlStructure.Attributes.BackupFileNameMask), this.RootElement, SQLDataBase.XmlStructure.Attributes.BackupFileNameMask.Values.DEFAULT),
1495 1563 Xml_RestoreFileNameMask = GetValue(nameof(SQLDataBase.XmlStructure.Attributes.RestoreFileNameMask), this.RootElement, SQLDataBase.XmlStructure.Attributes.RestoreFileNameMask.Values.DEFAULT),
1496 1564 Xml_BackupTargetDirectoryPath = GetValue(nameof(SQLDataBase.XmlStructure.Attributes.BackupTargetDirectoryPath), this.RootElement, SQLDataBase.XmlStructure.Attributes.BackupTargetDirectoryPath.Values.DEFAULT),
  1565 + Xml_TranzitDirectoryPathLocal = GetValue(nameof(SQLDataBase.XmlStructure.Attributes.TranzitDirectoryPathLocal), this.RootElement, SQLDataBase.XmlStructure.Attributes.TranzitDirectoryPathLocal.Values.DEFAULT),
  1566 + Xml_TranzitDirectoryPathNetwork = GetValue(nameof(SQLDataBase.XmlStructure.Attributes.TranzitDirectoryPathNetwork), this.RootElement, SQLDataBase.XmlStructure.Attributes.TranzitDirectoryPathNetwork.Values.DEFAULT),
1497 1567 Xml_PhysicalFilesDirectoryPath = GetValue(nameof(SQLDataBase.XmlStructure.Attributes.PhysicalFilesDirectoryPath), this.RootElement, SQLDataBase.XmlStructure.Attributes.PhysicalFilesDirectoryPath.Values.DEFAULT),
1498 1568 Xml_ScriptCommandTimeout = GetValue(nameof(SQLDataBase.XmlStructure.Attributes.ScriptCommandTimeout), this.RootElement, SQLDataBase.XmlStructure.Attributes.ScriptCommandTimeout.Values.DEFAULT),
1499 1569 };
... ... @@ -1521,6 +1591,9 @@ GO
1521 1591 public string Xml_BackupFileNameMask;
1522 1592 public string Xml_RestoreFileNameMask;
1523 1593 public string Xml_BackupTargetDirectoryPath;
  1594 + public string Xml_TranzitDirectoryPathLocal;
  1595 + public bool Xml_IsRemoteDB { get { return !string.IsNullOrWhiteSpace(Xml_TranzitDirectoryPathLocal); } }
  1596 + public string Xml_TranzitDirectoryPathNetwork;
1524 1597 public string Xml_SQLConnectionString;
1525 1598 public string Xml_PhysicalFilesDirectoryPath;
1526 1599 public int Xml_ScriptCommandTimeout;
... ... @@ -1552,6 +1625,8 @@ GO
1552 1625 Xml_BackupFileNameMask = GetValue(nameof(XmlStructure.SQLDataBase.Attributes.BackupFileNameMask), sqldatabasexml, common.Xml_BackupFileNameMask);
1553 1626 Xml_RestoreFileNameMask = GetValue(nameof(XmlStructure.SQLDataBase.Attributes.RestoreFileNameMask), sqldatabasexml, common.Xml_RestoreFileNameMask);
1554 1627 Xml_BackupTargetDirectoryPath = GetValue(nameof(XmlStructure.SQLDataBase.Attributes.BackupTargetDirectoryPath), sqldatabasexml, common.Xml_BackupTargetDirectoryPath);
  1628 + Xml_TranzitDirectoryPathLocal = GetValue(nameof(XmlStructure.SQLDataBase.Attributes.TranzitDirectoryPathLocal), sqldatabasexml, common.Xml_TranzitDirectoryPathLocal);
  1629 + Xml_TranzitDirectoryPathNetwork = GetValue(nameof(XmlStructure.SQLDataBase.Attributes.TranzitDirectoryPathNetwork), sqldatabasexml, common.Xml_TranzitDirectoryPathNetwork);
1555 1630 Xml_SQLConnectionString = GetValue(nameof(XmlStructure.SQLDataBase.Attributes.SQLConnectionString), sqldatabasexml, XmlStructure.SQLDataBase.Attributes.SQLConnectionString.Values.DEFAULT);
1556 1631  
1557 1632 Xml_CreateZip = GetValue(nameof(XmlStructure.SQLDataBase.Attributes.CreateZip), sqldatabasexml, common.Xml_CreateZip);
... ... @@ -1579,6 +1654,8 @@ GO
1579 1654 Xml_BackupFileNameMask = sqld.Xml_BackupFileNameMask;
1580 1655 Xml_RestoreFileNameMask = sqld.Xml_RestoreFileNameMask;
1581 1656 Xml_BackupTargetDirectoryPath = sqld.Xml_BackupTargetDirectoryPath;
  1657 + Xml_TranzitDirectoryPathLocal = sqld.Xml_TranzitDirectoryPathLocal;
  1658 + Xml_TranzitDirectoryPathNetwork = sqld.Xml_TranzitDirectoryPathNetwork;
1582 1659 Xml_SQLConnectionString = sqld.Xml_SQLConnectionString;
1583 1660 Xml_PhysicalFilesDirectoryPath = sqld.Xml_PhysicalFilesDirectoryPath;
1584 1661 Xml_SQLDataList = sqld.Xml_SQLDataList.Select(x => new SQLData(x)).ToList();
... ... @@ -1593,6 +1670,8 @@ GO
1593 1670 public static class BackupFileNameMask { public static class Values { public const string DEFAULT = ""; } }
1594 1671 public static class RestoreFileNameMask { public static class Values { public const string DEFAULT = ""; } }
1595 1672 public static class BackupTargetDirectoryPath { public static class Values { public const string DEFAULT = ""; } }
  1673 + public static class TranzitDirectoryPathLocal { public static class Values { public const string DEFAULT = ""; } }
  1674 + public static class TranzitDirectoryPathNetwork { public static class Values { public const string DEFAULT = ""; } }
1596 1675 public static class PhysicalFilesDirectoryPath { public static class Values { public const string DEFAULT = ""; } }
1597 1676 public static class ScriptCommandTimeout { public static class Values { public const int DEFAULT = 10000; } }
1598 1677  
... ... @@ -1609,6 +1688,8 @@ GO
1609 1688 public static class BackupFileNameMask { }
1610 1689 public static class RestoreFileNameMask { }
1611 1690 public static class BackupTargetDirectoryPath { }
  1691 + public static class TranzitDirectoryPathLocal { }
  1692 + public static class TranzitDirectoryPathNetwork { }
1612 1693 public static class CreateZip { }
1613 1694 public static class PhysicalFilesDirectoryPath { }
1614 1695 public static class ScriptCommandTimeout { public static class Values { public const int DEFAULT = 10000; } }
... ...
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
... ... @@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
32 32 // You can specify all the values or you can default the Build and Revision Numbers
33 33 // by using the '*' as shown below:
34 34 // [assembly: AssemblyVersion("1.0.*")]
35   -[assembly: AssemblyVersion("1.25.2.0")]
36   -[assembly: AssemblyFileVersion("1.25.2.0")]
  35 +[assembly: AssemblyVersion("1.26.0.0")]
  36 +[assembly: AssemblyFileVersion("1.26.0.0")]
... ...