Commit f450c7581ae99cb0c625e39d42b16a7f1a08b207

Authored by Schwirg László
1 parent 5449f858

v1.31.2.0

- Multirun script paraméterek között a DAYSBACK és a LIMITDATE összeolvasztása
Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs
@@ -1942,43 +1942,44 @@ GO @@ -1942,43 +1942,44 @@ GO
1942 { 1942 {
1943 DBKEY,DATABASE,DATASOURCE,DBOTYPE,DBONAME,DBDATAGROUP,BACKUPTS,SHRINKOPTION,SHRINKFREESPACEPERCENT, 1943 DBKEY,DATABASE,DATASOURCE,DBOTYPE,DBONAME,DBDATAGROUP,BACKUPTS,SHRINKOPTION,SHRINKFREESPACEPERCENT,
1944 } 1944 }
1945 - #endregion DBSubstitution 1945 + #endregion DBSubstitution
1946 1946
1947 - #region ExecuteSQLScriptWithMultipleRuns  
1948 - /// <summary>  
1949 - /// Executes a multirun script. Its parameters are in the <Script Parameters=> attribute, as list of KEY=VALUE; pairs.  
1950 - /// Keys:  
1951 - /// DAYSBACK (C# int value) or LIMITDATE (C# DateTime value): how many days from now, or from when the older rows should be deleted  
1952 - /// NUMOFDAYSINONERUN (C# int value): how many days are deleted in one run  
1953 - /// DELAYBETWEENRUNS (C# TimeSpan value): how much delay will be between runs  
1954 - /// TESTMODE (C# bool value): if testmode, no delete takes place  
1955 - /// </summary>  
1956 - /// <param name="sqlc">connectionstring az sql server-hez</param>  
1957 - /// <param name="sqlscript">az sql script (multirun interfész szerint!!!)  
1958 - /// this should be used in the script in the following way:  
1959 - /// DECLARE @RUNNINGMODE AS varchar(20) = '{RUNNINGMODE}'  
1960 - /// IF @RUNNINGMODE = 'GETTOTALRECORDS'  
1961 - /// THEN  
1962 - /// -- this part of the script should count the number of the rows of the dab, that will decrease after each run  
1963 - /// SELECT @RV, @RM -- @RV:0, @RM:the number of rows  
1964 - /// END  
1965 - /// ELSE IF @RUNNINGMODE = 'GETMINDATE'  
1966 - /// THEN  
1967 - /// -- this part of the script should return a DateTime value, that is the oldest date in the database  
1968 - /// SELECT @RV, @RM -- @RV:0, @RM:the Date, that is considered the oldest; no rows will be deleted before this  
1969 - /// END  
1970 - /// ELSE IF @RUNNINGMODE = 'ONERUN'  
1971 - /// THEN  
1972 - /// -- this part of the script deletes some rows from the database, older then a limitdate(parameter)  
1973 - /// -- parameter usage: DECLARE @RUNDELETEBEFOREDATE AS DATE = '{RUNDELETEBEFOREDATE}'  
1974 - /// SELECT @RV, @RM -- @RV:(0=OK, otherwise NOK), @RM:message with the result description  
1975 - /// END  
1976 - /// </param>  
1977 - /// <param name="ExitAtThisPoint">az a függvény, ami minde run után végrehajtásra kerül;  
1978 - /// bemenő paramétere az előző run eredménye,  
1979 - /// kimenő paramétere pedig igaz, ha ki kell lépni a végrehajtásból.  
1980 - /// </param>  
1981 - /// <returns></returns> 1947 + #region ExecuteSQLScriptWithMultipleRuns
  1948 + /// <summary>
  1949 + /// Executes a multirun script. Its parameters are in the <Script Parameters=> attribute, as list of KEY=VALUE; pairs.
  1950 + /// Keys:
  1951 + /// LIMITDATE yyyy-MM-dd hh:mm:ss (yyyy-MM-dd hh:mm:ss is C# DateTime value) from when the older rows should be deleted (LIMITDATE 2024-12-31)
  1952 + /// LIMITDATE NNdays (NN is C# int value): how many days from now the older rows should be deleted (LIMITDATE 90days)
  1953 + /// NUMOFDAYSINONERUN (C# int value): how many days are deleted in one run
  1954 + /// DELAYBETWEENRUNS (C# TimeSpan value): how much delay will be between runs
  1955 + /// TESTMODE (C# bool value): if testmode, no delete takes place
  1956 + /// </summary>
  1957 + /// <param name="sqlc">connectionstring az sql server-hez</param>
  1958 + /// <param name="sqlscript">az sql script (multirun interfész szerint!!!)
  1959 + /// this should be used in the script in the following way:
  1960 + /// DECLARE @RUNNINGMODE AS varchar(20) = '{RUNNINGMODE}'
  1961 + /// IF @RUNNINGMODE = 'GETTOTALRECORDS'
  1962 + /// THEN
  1963 + /// -- this part of the script should count the number of the rows of the dab, that will decrease after each run
  1964 + /// SELECT @RV, @RM -- @RV:0, @RM:the number of rows
  1965 + /// END
  1966 + /// ELSE IF @RUNNINGMODE = 'GETMINDATE'
  1967 + /// THEN
  1968 + /// -- this part of the script should return a DateTime value, that is the oldest date in the database
  1969 + /// SELECT @RV, @RM -- @RV:0, @RM:the Date, that is considered the oldest; no rows will be deleted before this
  1970 + /// END
  1971 + /// ELSE IF @RUNNINGMODE = 'ONERUN'
  1972 + /// THEN
  1973 + /// -- this part of the script deletes some rows from the database, older then a limitdate(parameter)
  1974 + /// -- parameter usage: DECLARE @RUNDELETEBEFOREDATE AS DATE = '{RUNDELETEBEFOREDATE}'
  1975 + /// SELECT @RV, @RM -- @RV:(0=OK, otherwise NOK), @RM:message with the result description
  1976 + /// END
  1977 + /// </param>
  1978 + /// <param name="ExitAtThisPoint">az a függvény, ami minde run után végrehajtásra kerül;
  1979 + /// bemenő paramétere az előző run eredménye,
  1980 + /// kimenő paramétere pedig igaz, ha ki kell lépni a végrehajtásból.
  1981 + /// </param>
  1982 + /// <returns></returns>
1982 1983
1983 public static ReturnInfoJSON ExecuteMultirunSQLScript(SqlConnection sqlc, SQLDataBase.SQLScript sqlscript, Func<ReturnInfoJSON,TimeSpan?, bool> ExitAtThisPoint=null) 1984 public static ReturnInfoJSON ExecuteMultirunSQLScript(SqlConnection sqlc, SQLDataBase.SQLScript sqlscript, Func<ReturnInfoJSON,TimeSpan?, bool> ExitAtThisPoint=null)
1984 { 1985 {
@@ -2086,18 +2087,17 @@ GO @@ -2086,18 +2087,17 @@ GO
2086 var testmodestring = argkvplist.GetValue(XMLPAR_TESTMODE, "false"); 2087 var testmodestring = argkvplist.GetValue(XMLPAR_TESTMODE, "false");
2087 if (!bool.TryParse(testmodestring, out par_testmode)) { Add(multirunresult, "Result", $"Parameter error:{XMLPAR_TESTMODE}"); return null; } 2088 if (!bool.TryParse(testmodestring, out par_testmode)) { Add(multirunresult, "Result", $"Parameter error:{XMLPAR_TESTMODE}"); return null; }
2088 2089
2089 - var daysbackstring = argkvplist.GetValue(XMLPAR_DAYSBACK, null);  
2090 - var limitdatestring = argkvplist.GetValue(XMLPAR_LIMITDATE, null);  
2091 - if (daysbackstring == null && limitdatestring == null) { par_limitdays = 90; par_limitdate = DateTime.Now.Subtract(new TimeSpan(par_limitdays, 0, 0, 0)); }  
2092 - else if (!string.IsNullOrEmpty(daysbackstring) && !string.IsNullOrEmpty(limitdatestring)) { Add(multirunresult, "Result", $"Parameter error:{XMLPAR_DAYSBACK} and {XMLPAR_LIMITDATE} are both defined."); return null; }  
2093 - else if (!string.IsNullOrEmpty(limitdatestring)) 2090 + string limitdatestring = argkvplist.GetValue(XMLPAR_LIMITDATE, null); string daysbackstring = null;
  2091 + if (limitdatestring == null) { limitdatestring="90days"; }
  2092 + if (limitdatestring.EndsWith("days")) { daysbackstring = limitdatestring.Replace("days", "").Replace(" ", ""); limitdatestring = null; }
  2093 + if (!string.IsNullOrEmpty(limitdatestring))
2094 { 2094 {
2095 - if (!DateTime.TryParse(limitdatestring, out par_limitdate)) { Add(multirunresult, "Result", $"Parameter error:" + XMLPAR_LIMITDATE); return null; } 2095 + if (!DateTime.TryParse(limitdatestring, out par_limitdate)) { Add(multirunresult, "Result", $"Parameter error:{XMLPAR_LIMITDATE}"); return null; }
2096 par_limitdays = (int)DateTime.Now.Subtract(par_limitdate).TotalDays; 2096 par_limitdays = (int)DateTime.Now.Subtract(par_limitdate).TotalDays;
2097 } 2097 }
2098 else /*if (!string.IsNullOrEmpty(daysbackstring)) */ 2098 else /*if (!string.IsNullOrEmpty(daysbackstring)) */
2099 { 2099 {
2100 - if (!int.TryParse(daysbackstring, out par_limitdays)) { Add(multirunresult, "Result", $"Parameter error:" + XMLPAR_DAYSBACK); return null; } 2100 + if (!int.TryParse(daysbackstring, out par_limitdays)) { Add(multirunresult, "Result", $"Parameter error:{XMLPAR_LIMITDATE}(days)"); return null; }
2101 par_limitdate = DateTime.Now.Subtract(new TimeSpan(par_limitdays, 0, 0, 0)); 2101 par_limitdate = DateTime.Now.Subtract(new TimeSpan(par_limitdays, 0, 0, 0));
2102 } 2102 }
2103 2103
@@ -2138,7 +2138,6 @@ GO @@ -2138,7 +2138,6 @@ GO
2138 const string XMLPAR_NUMOFDAYSINONERUN = "NUMOFDAYSINONERUN"; 2138 const string XMLPAR_NUMOFDAYSINONERUN = "NUMOFDAYSINONERUN";
2139 const string XMLPAR_DELAYBETWEENRUNS = "DELAYBETWEENRUNS"; 2139 const string XMLPAR_DELAYBETWEENRUNS = "DELAYBETWEENRUNS";
2140 const string XMLPAR_TESTMODE = "TESTMODE"; 2140 const string XMLPAR_TESTMODE = "TESTMODE";
2141 - const string XMLPAR_DAYSBACK = "DAYSBACK";  
2142 const string XMLPAR_LIMITDATE = "LIMITDATE"; 2141 const string XMLPAR_LIMITDATE = "LIMITDATE";
2143 2142
2144 const string ERRMSG_NOTHINGTOEXECUTE = "FAILURE! Nothing to execute! Check script definition entry!"; 2143 const string ERRMSG_NOTHINGTOEXECUTE = "FAILURE! Nothing to execute! Check script definition entry!";
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices; @@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
32 // You can specify all the values or you can default the Build and Revision Numbers 32 // You can specify all the values or you can default the Build and Revision Numbers
33 // by using the '*' as shown below: 33 // by using the '*' as shown below:
34 // [assembly: AssemblyVersion("1.0.*")] 34 // [assembly: AssemblyVersion("1.0.*")]
35 -[assembly: AssemblyVersion("1.31.1.0")]  
36 -[assembly: AssemblyFileVersion("1.31.1.0")] 35 +[assembly: AssemblyVersion("1.31.2.0")]
  36 +[assembly: AssemblyFileVersion("1.31.2.0")]