From 2fbc1d8e2618ee97162f31d297e9c78ac9039e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Wed, 16 Dec 2020 07:28:17 +0100 Subject: [PATCH] refactoring, uppd db in and out --- WindowsFormsCore/Operations/DBRepo.cs | 50 ++++++++++++- WindowsFormsCore/frmLottoView.cs | 101 +++++++++++++++++++------- 2 files changed, 121 insertions(+), 30 deletions(-) diff --git a/WindowsFormsCore/Operations/DBRepo.cs b/WindowsFormsCore/Operations/DBRepo.cs index dc41667..55c3f5c 100644 --- a/WindowsFormsCore/Operations/DBRepo.cs +++ b/WindowsFormsCore/Operations/DBRepo.cs @@ -13,8 +13,9 @@ namespace WindowsFormsCore.Operations { public class DBRepo { - public static void SaveNumberRow(NumberRow numberRow) + public static bool SaveNumberRow(NumberRow numberRow) { + var output = true; using(IDbConnection cnn = new SqlConnection(GetConnectionString())) { numberRow.NumbersToKey(); @@ -54,10 +55,55 @@ namespace WindowsFormsCore.Operations @Number7 )"; - cnn.Execute(sql, p); + try + { + cnn.Execute(sql, p); + } + catch (SqlException ex) + { + if (ex.Number == 2627) + { + output = false; + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + return output; } } + public static NumberRow ReadNumberRow(string numberId) + { + using (IDbConnection cnn = new SqlConnection(GetConnectionString())) + { + var p = new DynamicParameters(); + p.Add("@Id", numberId); + string sql = @"select * from dbo.NumbersTable where Id = @Id"; + + var row = cnn.Query(sql,p).FirstOrDefault(); + + row.NumbersToKey(); + + return row; + } + } + + public static IEnumerable ReadAllNumberRow() + { + using (IDbConnection cnn = new SqlConnection(GetConnectionString())) + { + string sql = @"select * from dbo.NumbersTable "; + + var rows = cnn.Query(sql); + + //rows.ToList().ForEach(x => x.KeyToNumbers()); + + return rows; + } + } + } } diff --git a/WindowsFormsCore/frmLottoView.cs b/WindowsFormsCore/frmLottoView.cs index b06b48b..f4d5886 100644 --- a/WindowsFormsCore/frmLottoView.cs +++ b/WindowsFormsCore/frmLottoView.cs @@ -72,6 +72,8 @@ namespace WindowsFormsCore txtBGrp1[i] = (TextBox)this.Controls["txtNr" + (i + 1).ToString()]; txtBGrp2[i] = (TextBox)this.Controls["txtNr2" + (i + 1).ToString()]; } + RefreshListView(); + LoadListFromDB(); } private void btnGenerate_Click(object sender, EventArgs e) @@ -86,6 +88,14 @@ namespace WindowsFormsCore } + private void ClearInFields(TextBox[] zz) + { + foreach(var tx in zz) + { + tx.Text = ""; + } + } + private string randomNum() { return Enum.GetName(typeof(LNum), rnd.Next((int)LNum.x1, (int)LNum.x35)); @@ -120,8 +130,9 @@ namespace WindowsFormsCore private void btnTest_Click(object sender, EventArgs e) { - var tstIn = decimal.Parse(txtTestIn.Text); - txtTestOut.Text = $"number for angle {tstIn} = {lotto.GetNumberByAngle(tstIn)}"; + LoadListFromDB(); + //var tstIn = decimal.Parse(txtTestIn.Text); + //txtTestOut.Text = $"number for angle {tstIn} = {lotto.GetNumberByAngle(tstIn)}"; } private void chk_CheckedChanged(object sender, EventArgs e) @@ -208,42 +219,74 @@ namespace WindowsFormsCore } - private void AddNumbersToList1() + private void AddNumbersToList(TextBox[] txtBox) { - var colWidth = lvRows.Width / 7; - for (int i = 0; i < lvRows.Columns.Count; i++) - { - lvRows.Columns[i].Width = colWidth; - } - lvRows.Refresh(); - if (txtBGrp1.Any(tx => tx.Text.Length == 0)) + RefreshListView(); + if (txtBox.Any(tx => tx.Text.Length == 0)) { return; } - ListViewItem lvRow = new ListViewItem(txtBGrp1[0].Text); - for (int i = 1; i < txtBGrp1.Length; i++) + if (SaveGeneratedRow(txtBox)) { - lvRow.SubItems.Add(txtBGrp1[i].Text); + AddOneRowToListView(txtBox); + } + else + { + MessageBox.Show("Rad existerar redan", "Saving Lottorow", MessageBoxButtons.OK); + } + + } + private void LoadListFromDB() + { + var rows = DBRepo.ReadAllNumberRow(); + if (rows.Any()) + { + lvRows.Items.Clear(); + } + foreach(var row in rows) + { + var txtBxArr = new [] { + row.Number0.ToString(), row.Number1.ToString(), + row.Number2.ToString(), row.Number3.ToString(), + row.Number4.ToString(), row.Number5.ToString(), + row.Number6.ToString() + }; + AddOneRowToListView(txtBxArr); } - lvRows.Items.Add(lvRow); - SaveGeneratedRow(txtBGrp1); } - private void AddNumbersToList2() + private void AddOneRowToListView(string[] txtBoxArr) { - if (txtBGrp2.Any(tx => tx.Text.Length == 0)) + ListViewItem lvRow = new ListViewItem(txtBoxArr[0]); + for (int i = 1; i < txtBoxArr.Length; i++) { - return; - } - ListViewItem lvRow = new ListViewItem(txtBGrp2[0].Text); - for (int i = 1; i < txtBGrp2.Length; i++) - { - lvRow.SubItems.Add(txtBGrp2[i].Text); + lvRow.SubItems.Add(txtBoxArr[i]); } lvRows.Items.Add(lvRow); - SaveGeneratedRow(txtBGrp2); } - private void SaveGeneratedRow(TextBox[] rowTab) + + private void AddOneRowToListView(TextBox[] txtBoxArr) + { + ListViewItem lvRow = new ListViewItem(txtBoxArr[0].Text); + for (int i = 1; i < txtBoxArr.Length; i++) + { + lvRow.SubItems.Add(txtBoxArr[i].Text); + } + lvRows.Items.Add(lvRow); + } + + private void RefreshListView() + { + var colWidth = lvRows.Width / 7.5; + for (int i = 0; i < lvRows.Columns.Count; i++) + { + lvRows.Columns[i].Width = (int)Math.Round(colWidth); + } + lvRows.Refresh(); + } + + + private bool SaveGeneratedRow(TextBox[] rowTab) { var row = new NumberRow(); row.Number0 = byte.Parse(rowTab[0].Text); @@ -253,16 +296,18 @@ namespace WindowsFormsCore row.Number4 = byte.Parse(rowTab[4].Text); row.Number5 = byte.Parse(rowTab[5].Text); row.Number6 = byte.Parse(rowTab[6].Text); - DBRepo.SaveNumberRow(row); + return DBRepo.SaveNumberRow(row); } private void btnDwn_Click(object sender, EventArgs e) { - AddNumbersToList1(); + AddNumbersToList(txtBGrp1); + ClearInFields(txtBGrp1); } private void btnDown2_Click(object sender, EventArgs e) { - AddNumbersToList2(); + AddNumbersToList(txtBGrp2); + ClearInFields(txtBGrp2); } private void btnlose_Click(object sender, EventArgs e)