diff --git a/Results/Mappings/TestDataMap.cs b/Results/Mappings/TestDataMap.cs
index 864103d01..c97d8ef6f 100644
--- a/Results/Mappings/TestDataMap.cs
+++ b/Results/Mappings/TestDataMap.cs
@@ -12,9 +12,7 @@ namespace Results.Mappings
{
Id(x => x.Id);
Map(x => x.Name);
-#if TEST_PROFILES
Map(x => x.Qtg);
-#endif
Map(x => x.Qfrom);
Map(x => x.Qto);
Map(x => x.TargetVolume);
diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj
index 7f2ba6394..b52662beb 100644
--- a/TBF/TBF.csproj
+++ b/TBF/TBF.csproj
@@ -2386,6 +2386,7 @@
DatabaseSettingsDlg.cs
+
Form
diff --git a/TBF/UI/Settings/GroupTableRow.cs b/TBF/UI/Settings/GroupTableRow.cs
new file mode 100644
index 000000000..4a3b9ee9e
--- /dev/null
+++ b/TBF/UI/Settings/GroupTableRow.cs
@@ -0,0 +1,19 @@
+///
+/// Copyright (c) 2020 Sensus slovensko a.s.
+///
+namespace TBF.UI.Settings
+{
+ public class GroupTableRow
+ {
+ public int GroupId;
+ public Users.Entities.GID Gid;
+ public int UserId;
+
+ public GroupTableRow(int groupId, Users.Entities.GID gid, int userId)
+ {
+ GroupId = groupId;
+ Gid = gid;
+ UserId = userId;
+ }
+ }
+}
diff --git a/TBF/UI/Settings/UpgradeSelectionDlg.Designer.cs b/TBF/UI/Settings/UpgradeSelectionDlg.Designer.cs
index 3b5190d92..b6ede9c6d 100644
--- a/TBF/UI/Settings/UpgradeSelectionDlg.Designer.cs
+++ b/TBF/UI/Settings/UpgradeSelectionDlg.Designer.cs
@@ -44,6 +44,9 @@
this.upgradeDb_218_222_Button = new System.Windows.Forms.Button();
this.upgradeDb_NFC_button = new System.Windows.Forms.Button();
this.upgradeDb_222_224_Button = new System.Windows.Forms.Button();
+ this.upgradeDb_224_225_Button = new System.Windows.Forms.Button();
+ this.errorFlagsComponentsTextBox = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// upgradeDb_215_216_Button
@@ -52,7 +55,7 @@
this.upgradeDb_215_216_Button.Name = "upgradeDb_215_216_Button";
this.upgradeDb_215_216_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_215_216_Button.TabIndex = 6;
- this.upgradeDb_215_216_Button.Text = "Upgrade database from ver. 2.15 to ver. 2.16";
+ this.upgradeDb_215_216_Button.Text = "Upgrade DB from v.2.15 to v.2.16";
this.upgradeDb_215_216_Button.UseVisualStyleBackColor = true;
this.upgradeDb_215_216_Button.Click += new System.EventHandler(this.upgradeDb_215_216_Button_Click);
//
@@ -62,7 +65,7 @@
this.upgradeDb_216_217_Button.Name = "upgradeDb_216_217_Button";
this.upgradeDb_216_217_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_216_217_Button.TabIndex = 7;
- this.upgradeDb_216_217_Button.Text = "Upgrade database from ver. 2.16 to ver. 2.17";
+ this.upgradeDb_216_217_Button.Text = "Upgrade DB from v.2.16 to v.2.17";
this.upgradeDb_216_217_Button.UseVisualStyleBackColor = true;
this.upgradeDb_216_217_Button.Click += new System.EventHandler(this.upgradeDb_216_217_Button_Click);
//
@@ -72,7 +75,7 @@
this.upgradeDb_212_215_Button.Name = "upgradeDb_212_215_Button";
this.upgradeDb_212_215_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_212_215_Button.TabIndex = 5;
- this.upgradeDb_212_215_Button.Text = "Upgrade database from ver. 2.12 to ver. 2.15";
+ this.upgradeDb_212_215_Button.Text = "Upgrade DB from v.2.12 to v.2.15";
this.upgradeDb_212_215_Button.UseVisualStyleBackColor = true;
this.upgradeDb_212_215_Button.Click += new System.EventHandler(this.upgradeDb_212_215_Button_Click);
//
@@ -82,7 +85,7 @@
this.upgradeDb_217_218_Button.Name = "upgradeDb_217_218_Button";
this.upgradeDb_217_218_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_217_218_Button.TabIndex = 8;
- this.upgradeDb_217_218_Button.Text = "Upgrade database from ver. 2.17 to ver. 2.18";
+ this.upgradeDb_217_218_Button.Text = "Upgrade DB from v.2.17 to v.2.18";
this.upgradeDb_217_218_Button.UseVisualStyleBackColor = true;
this.upgradeDb_217_218_Button.Click += new System.EventHandler(this.upgradeDb_217_218_Button_Click);
//
@@ -92,7 +95,7 @@
this.upgradeDb_29_212_Button.Name = "upgradeDb_29_212_Button";
this.upgradeDb_29_212_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_29_212_Button.TabIndex = 4;
- this.upgradeDb_29_212_Button.Text = "Upgrade database from ver. 2.9 to ver. 2.12";
+ this.upgradeDb_29_212_Button.Text = "Upgrade DB from v.2.9 to v.2.12";
this.upgradeDb_29_212_Button.UseVisualStyleBackColor = true;
this.upgradeDb_29_212_Button.Click += new System.EventHandler(this.upgradeDb_29_212_Button_Click);
//
@@ -119,7 +122,8 @@
// textBox1
//
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.textBox1.Location = new System.Drawing.Point(94, 431);
+ this.textBox1.Enabled = false;
+ this.textBox1.Location = new System.Drawing.Point(94, 493);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 20);
this.textBox1.TabIndex = 11;
@@ -127,7 +131,8 @@
// textBox2
//
this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.textBox2.Location = new System.Drawing.Point(94, 457);
+ this.textBox2.Enabled = false;
+ this.textBox2.Location = new System.Drawing.Point(94, 519);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 20);
this.textBox2.TabIndex = 13;
@@ -136,7 +141,8 @@
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(12, 434);
+ this.label1.Enabled = false;
+ this.label1.Location = new System.Drawing.Point(12, 496);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(70, 13);
this.label1.TabIndex = 10;
@@ -146,7 +152,8 @@
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(12, 460);
+ this.label2.Enabled = false;
+ this.label2.Location = new System.Drawing.Point(12, 522);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 13);
this.label2.TabIndex = 12;
@@ -155,7 +162,8 @@
// pressureRepresentationButton
//
this.pressureRepresentationButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.pressureRepresentationButton.Location = new System.Drawing.Point(207, 431);
+ this.pressureRepresentationButton.Enabled = false;
+ this.pressureRepresentationButton.Location = new System.Drawing.Point(207, 493);
this.pressureRepresentationButton.Name = "pressureRepresentationButton";
this.pressureRepresentationButton.Size = new System.Drawing.Size(65, 42);
this.pressureRepresentationButton.TabIndex = 14;
@@ -169,7 +177,7 @@
this.upgradeDb_24_29_Button.Name = "upgradeDb_24_29_Button";
this.upgradeDb_24_29_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_24_29_Button.TabIndex = 3;
- this.upgradeDb_24_29_Button.Text = "Upgrade database from ver. 2.4 to ver. 2.9";
+ this.upgradeDb_24_29_Button.Text = "Upgrade DB from v.2.4 to v.2.9";
this.upgradeDb_24_29_Button.UseVisualStyleBackColor = true;
this.upgradeDb_24_29_Button.Click += new System.EventHandler(this.upgradeDb_24_29_Button_Click);
//
@@ -179,7 +187,7 @@
this.upgradeDb_218_222_Button.Name = "upgradeDb_218_222_Button";
this.upgradeDb_218_222_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_218_222_Button.TabIndex = 9;
- this.upgradeDb_218_222_Button.Text = "Upgrade database from ver. 2.18 to ver. 2.22";
+ this.upgradeDb_218_222_Button.Text = "Upgrade DB from v.2.18 to v.2.22";
this.upgradeDb_218_222_Button.UseVisualStyleBackColor = true;
this.upgradeDb_218_222_Button.Click += new System.EventHandler(this.upgradeDb_218_222_Button_Click);
//
@@ -195,19 +203,48 @@
//
// upgradeDb_222_224_Button
//
- this.upgradeDb_222_224_Button.Location = new System.Drawing.Point(12, 377);
+ this.upgradeDb_222_224_Button.Location = new System.Drawing.Point(12, 404);
this.upgradeDb_222_224_Button.Name = "upgradeDb_222_224_Button";
this.upgradeDb_222_224_Button.Size = new System.Drawing.Size(260, 34);
this.upgradeDb_222_224_Button.TabIndex = 15;
- this.upgradeDb_222_224_Button.Text = "Upgrade database from ver. 2.22 to ver. 2.24";
+ this.upgradeDb_222_224_Button.Text = "Upgrade DB from v.2.22 to v.2.24";
this.upgradeDb_222_224_Button.UseVisualStyleBackColor = true;
this.upgradeDb_222_224_Button.Click += new System.EventHandler(this.upgradeDb_222_224_Button_Click);
//
+ // upgradeDb_224_225_Button
+ //
+ this.upgradeDb_224_225_Button.Location = new System.Drawing.Point(12, 444);
+ this.upgradeDb_224_225_Button.Name = "upgradeDb_224_225_Button";
+ this.upgradeDb_224_225_Button.Size = new System.Drawing.Size(260, 34);
+ this.upgradeDb_224_225_Button.TabIndex = 16;
+ this.upgradeDb_224_225_Button.Text = "Upgrade DB from v.2.24 to v.2.25 (users)";
+ this.upgradeDb_224_225_Button.UseVisualStyleBackColor = true;
+ this.upgradeDb_224_225_Button.Click += new System.EventHandler(this.upgradeDb_224_225_Button_Click);
+ //
+ // errorFlagsComponentsTextBox
+ //
+ this.errorFlagsComponentsTextBox.Location = new System.Drawing.Point(94, 378);
+ this.errorFlagsComponentsTextBox.Name = "errorFlagsComponentsTextBox";
+ this.errorFlagsComponentsTextBox.Size = new System.Drawing.Size(178, 20);
+ this.errorFlagsComponentsTextBox.TabIndex = 17;
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(12, 381);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(71, 13);
+ this.label3.TabIndex = 18;
+ this.label3.Text = "ErrFlags1~E..";
+ //
// UpgradeSelectionDlg
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(284, 493);
+ this.ClientSize = new System.Drawing.Size(284, 555);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.errorFlagsComponentsTextBox);
+ this.Controls.Add(this.upgradeDb_224_225_Button);
this.Controls.Add(this.upgradeDb_222_224_Button);
this.Controls.Add(this.upgradeDb_NFC_button);
this.Controls.Add(this.upgradeDb_218_222_Button);
@@ -249,6 +286,9 @@
private System.Windows.Forms.Button upgradeDb_218_222_Button;
private System.Windows.Forms.Button upgradeDb_NFC_button;
private System.Windows.Forms.Button upgradeDb_222_224_Button;
+ private System.Windows.Forms.Button upgradeDb_224_225_Button;
+ private System.Windows.Forms.TextBox errorFlagsComponentsTextBox;
+ private System.Windows.Forms.Label label3;
}
}
\ No newline at end of file
diff --git a/TBF/UI/Settings/UpgradeSelectionDlg.cs b/TBF/UI/Settings/UpgradeSelectionDlg.cs
index 276604db3..c88c92ed4 100644
--- a/TBF/UI/Settings/UpgradeSelectionDlg.cs
+++ b/TBF/UI/Settings/UpgradeSelectionDlg.cs
@@ -1,4 +1,7 @@
-using System;
+///
+/// Copyright (c) 2016-2020 Sensus slovensko a.s.
+///
+using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
@@ -38,13 +41,13 @@ namespace TBF.UI.Settings
void ActivityStart()
{
form = new Shared.ModelessActivityForm()
- {
- Message = "Upgrading database",
- FontFamily = "Arial",
- FontSize = 24,
- FontStyle = FontStyle.Regular,
- BackgroundColor = Color.Green,
- };
+ {
+ Message = "Upgrading database",
+ FontFamily = "Arial",
+ FontSize = 24,
+ FontStyle = FontStyle.Regular,
+ BackgroundColor = Color.Green,
+ };
formThread = new System.Threading.Thread(() => form.ShowDialog());
formThread.Start();
}
@@ -99,6 +102,63 @@ namespace TBF.UI.Settings
return success;
}
+ ///
+ /// Common part of database upgrade code
+ ///
+ /// Database connection
+ /// Array of SQL commands to be executed
+ /// true = successful
+ bool ChangeErrorFlags(string errorFlagsCmpntName)
+ {
+ bool success = false;
+ ISession session = null;
+
+ try
+ {
+ session = Config.FluentCommon.CreateSession(Users.Entities.DBKind.Config);
+
+ var testParams = session.QueryOver()
+ .Where(x => (x.CmpntName == errorFlagsCmpntName))
+ .List();
+
+ foreach (var tp in testParams)
+ {
+ string temp;
+ if (tp.Parameters.Contains("Info"))
+ {
+ temp = tp.Parameters.Replace("true", "1");
+ }
+ else if (tp.Parameters.Contains("On"))
+ {
+ temp = tp.Parameters.Replace("true", "2");
+ }
+ else
+ {
+ temp = tp.Parameters.Replace("true", "0");
+ }
+
+ tp.Parameters = temp.Replace("false", "0");
+
+ session.SaveOrUpdate(tp);
+ }
+
+ session.Flush();
+ success = true;
+ }
+ catch (Exception exc)
+ {
+ ActivityEnd();
+ MessageBox.Show(string.Format("Upgrade failed:\r\n{0}", exc.Message),
+ "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ finally
+ {
+ if (session != null) session.Close();
+ }
+
+ return success;
+ }
+
///---------------------------------------------------------------------
private void upgradeDb_NFC_button_Click(object sender, EventArgs e)
{
@@ -131,7 +191,7 @@ namespace TBF.UI.Settings
MessageBox.Show("No database selected");
return;
}
-
+
string[] configDbCommands = new string[]
{
/// 2.4 -> 2.5
@@ -182,7 +242,7 @@ namespace TBF.UI.Settings
MessageBox.Show("No database selected");
return;
}
-
+
string[] configDbCommands = new string[]
{
/// 2.9 -> 2.10
@@ -310,7 +370,7 @@ namespace TBF.UI.Settings
}
}
}
-
+
///---------------------------------------------------------------------
private void upgradeDb_212_215_Button_Click(object sender, EventArgs e)
{
@@ -486,8 +546,8 @@ namespace TBF.UI.Settings
}
}
- ///---------------------------------------------------------------------
- private void upgradeDb_215_216_Button_Click(object sender, EventArgs e)
+ ///---------------------------------------------------------------------
+ private void upgradeDb_215_216_Button_Click(object sender, EventArgs e)
{
if (!upgradeConfigDBCheckBox.Checked && !upgradeResultsDBCheckBox.Checked)
{
@@ -510,8 +570,8 @@ namespace TBF.UI.Settings
}
}
- ///---------------------------------------------------------------------
- private void upgradeDb_216_217_Button_Click(object sender, EventArgs e)
+ ///---------------------------------------------------------------------
+ private void upgradeDb_216_217_Button_Click(object sender, EventArgs e)
{
if (!upgradeConfigDBCheckBox.Checked && !upgradeResultsDBCheckBox.Checked)
{
@@ -596,7 +656,75 @@ namespace TBF.UI.Settings
string[] configDbCommands = new string[]
{
- "ALTER TABLE `user` ADD `Password2` VARCHAR(255) NULL DEFAULT NULL AFTER `Password`, ADD `Password3` VARCHAR(255) NULL DEFAULT NULL AFTER `Password2`;",
+ /// Table profile
+ "CREATE TABLE IF NOT EXISTS `profile` (" +
+ "`Id` int(11) NOT NULL," +
+ " `ItemNr` int(11) DEFAULT NULL," +
+ " `Name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL," +
+ " `Description` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL," +
+ " `CreationUser` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL," +
+ " `CreationTime` datetime DEFAULT NULL," +
+ " `LastChgUser` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL," +
+ " `LastChgTime` datetime DEFAULT NULL," +
+ " `ProfileType` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL," +
+ " `ErrorLimitType` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL," +
+ " PRIMARY KEY (`Id`));",
+
+ /// Table ptest
+ "CREATE TABLE IF NOT EXISTS `ptest` (" +
+ "`Id` int(11) NOT NULL," +
+ " `ItemNr` int(11) DEFAULT NULL," +
+ " `Name` varchar(255) DEFAULT NULL," +
+ " `Part` int(11) NOT NULL DEFAULT '0'," +
+ " `CoefQfrom` double NOT NULL DEFAULT '0'," +
+ " `CoefQto` double NOT NULL DEFAULT '0'," +
+ " `ErrLimLo` double NOT NULL DEFAULT '0'," +
+ " `ErrLimHi` double NOT NULL DEFAULT '0'," +
+ " `TempLimLo` double NOT NULL DEFAULT '0'," +
+ " `TempLimHi` double NOT NULL DEFAULT '0'," +
+ " `PressLimLo` double NOT NULL DEFAULT '0'," +
+ " `PressLimHi` double NOT NULL DEFAULT '0'," +
+ " `Publish` tinyint(4) NOT NULL DEFAULT '1'," +
+ " `Evaluate` boolean NOT NULL DEFAULT TRUE," +
+ " `E1` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E2` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E3` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E4` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E5` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E6` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E7` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E8` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E9` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E10` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E11` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E12` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E13` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E14` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E15` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E16` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `E21` tinyint(4) NOT NULL DEFAULT '0'," +
+ " `Delta_Q_pct` double NOT NULL DEFAULT '0'," +
+ " `Delta_T` double NOT NULL DEFAULT '0'," +
+ " `Delta_Tup_Tdn` double NOT NULL DEFAULT '0'," +
+ " `TestTime_min` double NOT NULL DEFAULT '0'," +
+ " `TestTime_max` double NOT NULL DEFAULT '0'," +
+ " `AmbTemp_min` double NOT NULL DEFAULT '0'," +
+ " `AmbTemp_max` double NOT NULL DEFAULT '0'," +
+ " `Coef_E9` double NOT NULL DEFAULT '0'," +
+ " `Coef_E10` double NOT NULL DEFAULT '0'," +
+ " `Coef_E11` double NOT NULL DEFAULT '0'," +
+ " `Coef_E12` double NOT NULL DEFAULT '0'," +
+ " `Offset_E9` double NOT NULL DEFAULT '0'," +
+ " `Offset_E12` double NOT NULL DEFAULT '0'," +
+ " `Profile_id` int(11) NOT NULL DEFAULT '0'," +
+ " PRIMARY KEY (`Id`));",
+
+ /// Table test
+ "ALTER TABLE `test` ADD `Qtg` FLOAT NULL DEFAULT NULL AFTER `Evaluate`;",
+ "ALTER TABLE `test` CHANGE `RelTransAfter` `Profile` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;",
+ "UPDATE `test` SET Profile = 'UserDefined';",
+
+ /// Table uncertainty
"CREATE TABLE IF NOT EXISTS `uncertainty` (" +
" `Id` int(11) NOT NULL AUTO_INCREMENT," +
" `Measurement` float NOT NULL DEFAULT '0'," +
@@ -608,19 +736,54 @@ namespace TBF.UI.Settings
" `Component_id` int(11) DEFAULT NULL," +
" PRIMARY KEY (`Id`)," +
" KEY `Component_id` (`Component_id`)" +
- ") ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;",
- "UPDATE `test` SET `RelTransAfter`='UserDefined';",
+ ");",
+
+ /// Table user
+ "ALTER TABLE `user` ADD `Password2` VARCHAR(255) NULL DEFAULT NULL AFTER `Password`, ADD `Password3` VARCHAR(255) NULL DEFAULT NULL AFTER `Password2`, ADD `Password4` VARCHAR(255) NULL DEFAULT NULL AFTER `Password3`;",
+
+ /// Tables watermeter and wmtype
+ "DROP TABLE `watermeter`",
+ "DROP TABLE `wmtype`",
+
+ //"ALTER TABLE `procedure` DROP `ProtocolTitle`",
};
string[] resultsDbCommands = new string[]
{
+ "ALTER TABLE `testdata` ADD `Qtg` DOUBLE NULL DEFAULT NULL AFTER `Name`;",
+
"ALTER TABLE `testrslt` ADD `Uncertnt` FLOAT NOT NULL DEFAULT '0' AFTER `FlowMax`, ADD `UncertntScale` FLOAT NOT NULL DEFAULT '0' AFTER `Uncertnt`, ADD `UncertntDensity` FLOAT NOT NULL DEFAULT '0' AFTER `UncertntScale`, ADD `UncertntTemp` FLOAT NOT NULL DEFAULT '0' AFTER `UncertntDensity`, ADD `UncertntPressure` FLOAT NOT NULL DEFAULT '0' AFTER `UncertntTemp`;",
+ "ALTER TABLE `testrslt` CHANGE `ErrorFlags` `ErrorFlags` BIGINT(20) NOT NULL DEFAULT '0', CHANGE `ErrorFlagsMd` `InfoFlags` BIGINT(20) NOT NULL DEFAULT '0';",
+
+ "ALTER TABLE `watermeter` CHANGE `ErrorFlags` `ErrorFlags` BIGINT(20) NOT NULL DEFAULT '0', ADD `InfoFlags` BIGINT NOT NULL DEFAULT '0' AFTER `ErrorFlags`;",
+#if IPERL
+ "ALTER TABLE `watermeter` DROP `Q2CorrectionDone`, DROP `Q2Correction`;",
+#endif
};
ActivityStart();
+ bool success = true;
- if ((!upgradeConfigDBCheckBox.Checked || ExecuteCommands(new MySqlConnection(Config.Data.CurrentBench.ProceduresDBSettings.ConnectionString), configDbCommands)) &&
- (!upgradeResultsDBCheckBox.Checked || ExecuteCommands(new MySqlConnection(DB.ConnectionString), resultsDbCommands)))
+ if (upgradeConfigDBCheckBox.Checked)
+ {
+ success = success && ExecuteCommands(new MySqlConnection(Config.Data.CurrentBench.ProceduresDBSettings.ConnectionString), configDbCommands);
+
+ if (!string.IsNullOrEmpty(errorFlagsComponentsTextBox.Text))
+ {
+ string[] errorFlagsCmpnts = errorFlagsComponentsTextBox.Text.Split(new char[] { '~' });
+ foreach (var errFCmpnt in errorFlagsCmpnts)
+ {
+ success = success && ChangeErrorFlags(errFCmpnt);
+ }
+ }
+ }
+
+ if (upgradeResultsDBCheckBox.Checked)
+ {
+ success = success && ExecuteCommands(new MySqlConnection(DB.ConnectionString), resultsDbCommands);
+ }
+
+ if (success)
{
ActivityEnd();
MessageBox.Show("DB succesfully upgraded." + Environment.NewLine +
@@ -632,6 +795,110 @@ namespace TBF.UI.Settings
}
}
+ private void upgradeDb_224_225_Button_Click(object sender, EventArgs e)
+ {
+ MySqlConnection dbConn = null;
+ MySqlCommand cmd;
+
+ ActivityStart();
+ bool success = false;
+
+ try
+ {
+ dbConn = new MySqlConnection(Config.Data.CurrentBench.ProceduresDBSettings.ConnectionString);
+ dbConn.Open();
+
+ cmd = dbConn.CreateCommand();
+ cmd.CommandText = "CREATE TABLE IF NOT EXISTS `usersgroups` ( `Group_id` int(11) NOT NULL, `User_id` int(11) NOT NULL );";
+ cmd.ExecuteNonQuery();
+ cmd.Dispose();
+
+ cmd = dbConn.CreateCommand();
+ cmd.CommandText = "ALTER TABLE `usersgroups` ADD KEY `User_id` (`User_id`), ADD KEY `Group_id` (`Group_id`)," +
+ " ADD CONSTRAINT `FKEC3AF23393C4061C` FOREIGN KEY (`Group_id`) REFERENCES `group` (`Id`)," +
+ " ADD CONSTRAINT `FKEC3AF23373767C99` FOREIGN KEY (`User_id`) REFERENCES `user` (`Id`);";
+ cmd.ExecuteNonQuery();
+ cmd.Dispose();
+
+ int[] groupIdsToKeep = new int[(int)Users.Entities.GID.NrOfGroups];
+ IList groupTable = new List();
+
+ cmd = dbConn.CreateCommand();
+ cmd.CommandText = "SELECT `Id`, `Gid`, `User_id` FROM `group`;";
+ MySqlDataReader dr = cmd.ExecuteReader();
+ while (dr.Read())
+ {
+ int groupId = dr.GetInt32(0);
+ Users.Entities.GID gid = (Users.Entities.GID)dr.GetInt32(1);
+ int userId = dr.GetInt32(2);
+
+ groupTable.Add(new GroupTableRow(groupId, gid, userId));
+
+ if ((gid >= 0) && (gid < Users.Entities.GID.NrOfGroups) && (groupIdsToKeep[(int)gid] == 0))
+ {
+ groupIdsToKeep[(int)gid] = groupId;
+ }
+ }
+ dr.Close();
+
+ foreach (var groupTableRow in groupTable)
+ {
+ cmd = dbConn.CreateCommand();
+ cmd.CommandText = string.Format("INSERT INTO `usersgroups` (`Group_id`, `User_id`) VALUES ({0}, {1});",
+ groupIdsToKeep[(int)groupTableRow.Gid],
+ groupTableRow.UserId);
+ cmd.ExecuteNonQuery();
+ cmd.Dispose();
+ }
+
+ //foreach (var groupTableRow in groupTable)
+ //{
+ // bool deleteThisRow = true;
+ // for (int i = 0; i < groupIdsToKeep.Length; i++)
+ // {
+ // if (groupTableRow.GroupId == groupIdsToKeep[i])
+ // {
+ // deleteThisRow = false;
+ // break;
+ // }
+ // }
+
+ // if (deleteThisRow)
+ // {
+ // cmd = dbConn.CreateCommand();
+ // cmd.CommandText = string.Format("DELETE FROM `group` WHERE `Id` = {0}", groupTableRow.GroupId);
+ // cmd.ExecuteNonQuery();
+ // cmd.Dispose();
+ // }
+ //}
+
+ cmd = dbConn.CreateCommand();
+ cmd.CommandText = string.Format("ALTER TABLE `group` ADD `AccessFlags` BIGINT NOT NULL DEFAULT '0' AFTER `Name`;");
+ cmd.ExecuteNonQuery();
+ cmd.Dispose();
+
+ success = true;
+ }
+ catch (Exception exc)
+ {
+ log.ErrorFormat(string.Format("Exception when upgrading DB: {0}", exc.Message));
+ if (exc.InnerException != null) log.ErrorFormat(string.Format("Inner exception: {0}", exc.InnerException.Message));
+ ActivityEnd();
+ MessageBox.Show(string.Format("Exception {0}", exc.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ finally
+ {
+ if (dbConn != null) dbConn.Close();
+ }
+
+ if (success)
+ {
+ ActivityEnd();
+ MessageBox.Show("DB succesfully upgraded", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ upgradeDb_224_225_Button.Enabled = false;
+ }
+ }
+
private void pressureRepresentationButton_Click(object sender, EventArgs e)
{
try
diff --git a/Users/Forms/UserManagementDlg.cs b/Users/Forms/UserManagementDlg.cs
index 29a7c3117..53f101853 100644
--- a/Users/Forms/UserManagementDlg.cs
+++ b/Users/Forms/UserManagementDlg.cs
@@ -48,7 +48,25 @@ namespace Users.Forms
try
{
- displayedGroups = session.QueryOver().List();
+ IList allGroups = session.QueryOver().List();
+
+ ///
+ /// Selects groups to be displayed (so that each GID is present only once)
+ ///
+ Group[] dspGroups = new Group[(int)Users.Entities.GID.NrOfGroups];
+ foreach (var group in allGroups)
+ {
+ if ((group.GID >= 0) && (group.GID < Users.Entities.GID.NrOfGroups) && (dspGroups[(int)group.GID] == null))
+ {
+ dspGroups[(int)group.GID] = group;
+ }
+ }
+ displayedGroups = new List();
+ foreach (var group in dspGroups)
+ {
+ if (group != null) displayedGroups.Add(group);
+ }
+
listOfUsers = session.QueryOver().List();
}
catch (Exception)
@@ -56,6 +74,8 @@ namespace Users.Forms
if (displayedGroups == null) displayedGroups = new List();
if (listOfUsers == null) listOfUsers = new List();
}
+
+
}
private void UserManagementDlg_Load(object sender, EventArgs e)