/// <summary> /// Zapis wyniku do bazy danych. /// </summary> private void SaveResult() { try { MateuszThomas_Results result = new MateuszThomas_Results(); result.Name = login; result.Points = points; result.Shots = Int32.Parse(labelNumberShot.Text); context.MateuszThomas_Results.Add(result); context.SaveChanges(); } catch { MessageBox.Show("Wynik nie został zapisany w bazie danych ponieważ nie ma połączenia z internetem. Wynik zapisany lokalnie na komputerze."); SaveResultLocal(); } }
/// <summary> /// Wczytanie wyników z pliku do bazy danych. /// </summary> private void ReadResult() { if (isConnectedWithDatabase) { try { if (!textBoxFileWithResult.Text.Contains(".csv")) { textBoxFileWithResult.Text += ".csv"; } try { StreamReader fileWithResult = new StreamReader(textBoxFileWithResult.Text); String line = fileWithResult.ReadLine(); while ((line = fileWithResult.ReadLine()) != null) { Char delimiter = ';'; String[] substrings = line.Split(delimiter); MateuszThomas_Results result = new MateuszThomas_Results(); result.Name = substrings[0]; result.Points = Int32.Parse(substrings[1]); result.Shots = Int32.Parse(substrings[2]); context.MateuszThomas_Results.Add(result); context.SaveChanges(); } fileWithResult.Close(); textBoxFileWithResult.Text = ""; } catch { MessageBox.Show("Niepoprawny format wybranego pliku lub brak pliku. Plik z danymi musi być w formacie .csv."); } } catch { MessageBox.Show("Nie można odczytać pliku."); } } else { MessageBox.Show("Brak połączenia z baza danych. Sprawdź połaczenie z internetem."); } }
/// <summary> /// Usunięcie wyników z bazy danych. /// </summary> private void RemoveResults() { if (isConnectedWithDatabase) { List <MateuszThomas_Results> results = (from result in context.MateuszThomas_Results select result).ToList(); for (int i = results.Count - 1; i >= 0; i--) { MateuszThomas_Results result = results[i]; context.MateuszThomas_Results.Remove(result); context.SaveChanges(); } labelBestResult.Text = "brak"; labelNameBestPlayer.Text = "brak"; } else { MessageBox.Show("Brak połączenia z baza danych. Sprawdź połaczenie z internetem."); } }
/// <summary> /// Pobranie wyników z bazy danych i załadowanie do datagrid. /// </summary> private void LoadResultFromDatabase() { BlockForm blockForm = new BlockForm(LockForm); DisplayLabelStatement displayLabel = new DisplayLabelStatement(DisplayStatement); this.BeginInvoke(blockForm, false); this.BeginInvoke(displayLabel, true); try { MateuszThomas_Results testObject = context.MateuszThomas_Results.FirstOrDefault(); if (testObject != null) { int maxPoint = (from max in context.MateuszThomas_Results select max).Max(c => c.Points); List <MateuszThomas_Results> bestPlayers = (from players in context.MateuszThomas_Results where players.Points == maxPoint select players).ToList(); int minNumberShot = bestPlayers.Min(c => c.Shots); MateuszThomas_Results bestPlayer = bestPlayers.Where(c => c.Shots == minNumberShot).First(); if (bestPlayer != null) { ChangeTextLabel changeBestResult = new ChangeTextLabel(UpdateLabelPoints); ChangeTextLabel changeBestPlayer = new ChangeTextLabel(UpdateLabelBestPlayer); labelPoints.BeginInvoke(changeBestResult, bestPlayer.Points.ToString()); labelNameBestPlayer.BeginInvoke(changeBestPlayer, bestPlayer.Name); } } var results = (from result in context.MateuszThomas_Results select result).ToList(); UpdateDatagridviewFromList updateDatagridview = new UpdateDatagridviewFromList(UpdateDatagridviewFormOnlinedatabase); dataGridViewResults.BeginInvoke(updateDatagridview, results.OrderByDescending(r => r.Points).ToList()); isConnectedWithDatabase = true; } catch { isConnectedWithDatabase = false; MessageBox.Show("Brak połączenia z baza dnaych. Sprawdź połaczenie z internetem. Dane zostaną wczytane z lokalnego pliku."); LoadDataFromLocalFile(); } this.BeginInvoke(displayLabel, false); this.BeginInvoke(blockForm, true); }