From 328ba43f740d431064b4f8ecb9eefa04daed41f7 Mon Sep 17 00:00:00 2001 From: Victor Fernandez Date: Sun, 14 May 2023 11:11:29 +0200 Subject: [PATCH] read/write functionality of ruleset --- src/DLP_Win/DLP_Win/frmMain.Designer.cs | 4 - src/DLP_Win/DLP_Win/frmMain.cs | 114 ++++++++++++++++++------ src/DLP_Win/DLP_Win/frmMain.resx | 15 ++++ 3 files changed, 102 insertions(+), 31 deletions(-) diff --git a/src/DLP_Win/DLP_Win/frmMain.Designer.cs b/src/DLP_Win/DLP_Win/frmMain.Designer.cs index 0bd5f46..ce00efb 100644 --- a/src/DLP_Win/DLP_Win/frmMain.Designer.cs +++ b/src/DLP_Win/DLP_Win/frmMain.Designer.cs @@ -111,15 +111,12 @@ private void InitializeComponent() this.dataGridView1.TabIndex = 1; this.dataGridView1.CellBeginEdit += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.dataGridView1_CellBeginEdit); this.dataGridView1.CellValidating += new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.dataGridView1_CellValidating); - this.dataGridView1.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellValueChanged); this.dataGridView1.SortCompare += new System.Windows.Forms.DataGridViewSortCompareEventHandler(this.dataGridView1_SortCompare); // // colIndex // - this.dataGridView1.CellValueChanged -= dataGridView1_CellValueChanged; this.colIndex.HeaderText = "Index"; this.colIndex.Name = "colIndex"; - dataGridView1.CellValueChanged += dataGridView1_CellValueChanged; // // colIf // @@ -307,7 +304,6 @@ private void InitializeComponent() this.Name = "frmMain"; this.Text = "DLP Rule Mgmt"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmMain_FormClosing); - this.Load += new System.EventHandler(this.frmMain_Load); this.pnlMain.ResumeLayout(false); this.panel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); diff --git a/src/DLP_Win/DLP_Win/frmMain.cs b/src/DLP_Win/DLP_Win/frmMain.cs index fc22f7d..3c43bd3 100644 --- a/src/DLP_Win/DLP_Win/frmMain.cs +++ b/src/DLP_Win/DLP_Win/frmMain.cs @@ -13,22 +13,54 @@ public partial class frmMain : Form private bool datagridChanged = false; private string AHV_NR = Properties.Settings.Default.AHV_NR; // @".*756\.\d{4}\.\d{4}\.\d{2}.*"; private string CUSTOMER_NR = Properties.Settings.Default.CUSTOMER_NR; // @"\d{2}\.\d{5}-\d"; + + /// + /// Konstruktor. + /// public frmMain() { InitializeComponent(); + + dataGridView1.DataSource = rulesets; string rulesetPath = Path.Combine(Application.StartupPath, "lof"); if (File.Exists(rulesetPath)) { + string path; + //Liest Datei mit letzten Pfad für Ruleset using (StreamReader reader = new StreamReader(rulesetPath)) { - string path = reader.ReadToEnd(); - openRulesetDialog.InitialDirectory = path; + path = reader.ReadToEnd(); + if (path != "") + { + //Setze Pfad für Öffnen/Speichern Dialoge + openRulesetDialog.InitialDirectory = path; + saveRulesetDialog.InitialDirectory = path; + } + } + + //Ruleset einlesen + if (File.Exists(path)) + { + openRulesetDialog.FileName = path; + openRulesetDialog_FileOk(this, new System.ComponentModel.CancelEventArgs()); } } + else + { + //Ansonsten setzte Applikationspfad als Startpfad + openRulesetDialog.InitialDirectory = Application.StartupPath; + saveRulesetDialog.InitialDirectory = Application.StartupPath; + } + this.dataGridView1.CellValueChanged += dataGridView1_CellValueChanged; } + /// + /// Event wenn Zellenwert geändert wurde. + /// + /// + /// private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { try @@ -46,25 +78,43 @@ private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEvent } } + /// + /// Sortierfunktion für Spalte Index. + /// + /// + /// private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e) { if (e.Column.Name == "colIndex") // nur für die Spalte "Index" { int value1, value2; - if (int.TryParse(e.CellValue1.ToString(), out value1) && - int.TryParse(e.CellValue2.ToString(), out value2)) + if (e.CellValue1 != null && e.CellValue2 != null) { - e.SortResult = value1.CompareTo(value2); - e.Handled = true; + if (int.TryParse(e.CellValue1.ToString(), out value1) && + int.TryParse(e.CellValue2.ToString(), out value2)) + { + e.SortResult = value1.CompareTo(value2); + e.Handled = true; + } } } } + /// + /// Applikation beenden. + /// + /// + /// private void toolStripMenuItemExit_Click(object sender, EventArgs e) { this.Close(); } + /// + /// Event wenn Applikation schliesst. + /// + /// + /// private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { if (datagridChanged) @@ -73,7 +123,7 @@ private void frmMain_FormClosing(object sender, FormClosingEventArgs e) if (result == DialogResult.Yes) { - // Änderungen speichern + saveRulesetDialog_FileOk(sender, new System.ComponentModel.CancelEventArgs()); } else if (result == DialogResult.Cancel) { @@ -82,18 +132,21 @@ private void frmMain_FormClosing(object sender, FormClosingEventArgs e) } } + /// + /// Überprüft die Eingabe einer Zelle im Grid. + /// + /// + /// private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { + //Überprüft spezifisch die Spalte "Index" auf eine Zahl grösser 0. if (dataGridView1.Columns[e.ColumnIndex].Name == "colIndex") { try { - - if (e.FormattedValue is not null or not "") + if (e.FormattedValue is not null) { - string s = e.FormattedValue.ToString(); - - if (e.FormattedValue == "") + if (e.FormattedValue.ToString() == "") { return; } @@ -138,6 +191,11 @@ private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEv this.originalCellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value?.ToString(); } + /// + /// Datei wird geöffnet. + /// + /// + /// private void openRulesetDialog_FileOk(object sender, System.ComponentModel.CancelEventArgs e) { string fileName = openRulesetDialog.FileName; @@ -175,6 +233,11 @@ private void openRulesetDialog_FileOk(object sender, System.ComponentModel.Cance } } + /// + /// Datei wird gespeichert. + /// + /// + /// private void saveRulesetDialog_FileOk(object sender, System.ComponentModel.CancelEventArgs e) { string fileName = saveRulesetDialog.FileName; @@ -187,13 +250,13 @@ private void saveRulesetDialog_FileOk(object sender, System.ComponentModel.Cance rulesets = new List(); } - for (int i = 0; i < dataGridView1.Rows.Count; i++) + for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) { Ruleset ruleset = new Ruleset(); - ruleset.Index = dataGridView1.Rows[i].Cells[0].Value != null ? Convert.ToUInt32(dataGridView1.Rows[i].Cells[0].Value) : 1000; + ruleset.Index = dataGridView1.Rows[i].Cells[0].Value != null ? Convert.ToUInt32(dataGridView1.Rows[i].Cells[0].Value) : 0; ruleset.If = dataGridView1.Rows[i].Cells[1].Value?.ToString(); ruleset.Contains = dataGridView1.Rows[i].Cells[2].Value?.ToString(); ruleset.Condition = dataGridView1.Rows[i].Cells[3].Value?.ToString(); @@ -214,24 +277,21 @@ private void saveRulesetDialog_FileOk(object sender, System.ComponentModel.Cance datagridChanged = false; } - private void frmMain_Load(object sender, EventArgs e) - { - //// Lade den Pfad zur zuletzt geöffneten Datei aus den Einstellungen - //string lastOpenedFile = Properties.Settings.Default.LastOpenedFile; - - - //// Öffne die zuletzt geöffnete Datei, falls vorhanden - //if (!string.IsNullOrEmpty(lastOpenedFile) && File.Exists(lastOpenedFile)) - //{ - // openRulesetDialog_FileOk(sender, new CancelEventArgs()); - //} - } - + /// + /// Dialog zum Datei öffnen. + /// + /// + /// private void rulesetOpenToolStripMenuItem_Click(object sender, EventArgs e) { openRulesetDialog.ShowDialog(); } + /// + /// Dialog zum Datei speichern. + /// + /// + /// private void rulesetSaveToolStripMenuItem_Click(object sender, EventArgs e) { saveRulesetDialog.ShowDialog(); diff --git a/src/DLP_Win/DLP_Win/frmMain.resx b/src/DLP_Win/DLP_Win/frmMain.resx index dc0310f..6441bb3 100644 --- a/src/DLP_Win/DLP_Win/frmMain.resx +++ b/src/DLP_Win/DLP_Win/frmMain.resx @@ -72,6 +72,21 @@ True + + True + + + True + + + True + + + True + + + True + 17, 17