/// <summary> /// Wczytanie wyników z lokalnego pliku z rezultatami. /// </summary> private void LoadDataFromLocalFile() { try { string bestPlayer = ""; int bestPoints = -1; int bestShot = -1; StreamReader fileWithResult = new StreamReader("LocalResult.csv"); String line; DataTable dataTable = new DataTable(); dataTable.Columns.Add(new DataColumn("ID", typeof(int))); dataTable.Columns.Add(new DataColumn("Name", typeof(string))); dataTable.Columns.Add(new DataColumn("Points", typeof(int))); dataTable.Columns.Add(new DataColumn("Shot", typeof(int))); while ((line = fileWithResult.ReadLine()) != null) { UpdateDatagridviewFormTable updateDatagridview = new UpdateDatagridviewFormTable(UpdateDatagridviewDataFormTable); Char delimiter = ';'; String[] substrings = line.Split(delimiter); DataRow dataRow = dataTable.NewRow(); dataRow[0] = 0; dataRow[1] = substrings[0]; dataRow[2] = Int32.Parse(substrings[1]); dataRow[3] = Int32.Parse(substrings[2]); dataTable.Rows.Add(dataRow); if (bestPoints < Int32.Parse(substrings[1])) { if (bestShot > Int32.Parse(substrings[2])) { bestPlayer = substrings[0]; bestPoints = Int32.Parse(substrings[1]); bestShot = Int32.Parse(substrings[2]); } } dataGridViewResults.BeginInvoke(updateDatagridview, dataTable); } fileWithResult.Close(); ChangeTextLabel changeBestResult = new ChangeTextLabel(UpdateLabelPoints); ChangeTextLabel changeBestPlayer = new ChangeTextLabel(UpdateLabelBestPlayer); if (bestPoints != -1) { labelPoints.BeginInvoke(changeBestResult, bestPoints.ToString()); } else { labelPoints.BeginInvoke(changeBestResult, ""); } labelNameBestPlayer.BeginInvoke(changeBestPlayer, bestPlayer.ToString()); } catch { MessageBox.Show("Brak pliku z lokalnymi rezultatami. [LocalResult.csv]"); } }
/// <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); }