public Player Edit(Player p) { using (TableTennisContext db = new TableTennisContext()) { AddPlayer newPlayer = new AddPlayer(p); p = db.Players.Find(newPlayer.Player.Id); if (p != null) { p.FirstName = newPlayer.Player.FirstName; p.LastName = newPlayer.Player.LastName; p.Rating = newPlayer.Player.Rating; db.Entry(p).State = EntityState.Modified; db.SaveChanges(); } return(p); } }
public static void SaveRating(DataGrid resultDataGrid) { try { using (TableTennisContext db = new TableTennisContext()) { // получение количества игроков в расчете рейтинга int currentRowsCount = resultDataGrid.Items.Count; // цикл по списку игроков for (int i = 0; i < currentRowsCount; i++) { DataGridRow currentPlayerRow = AccessToCellMethods.GetRow(resultDataGrid, i); // получение итогового увеличения рейтинга DataGridCell currentPlayerTotalDelta = AccessToCellMethods.GetCell(resultDataGrid, currentPlayerRow, currentRowsCount + 5); double totalDelta = 0; //приведение к типу double totalDelta = double.Parse(currentPlayerTotalDelta.Content.ToString()); object data = currentPlayerRow.Item; // извлекаем его свойства PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(data); // находим свойство "Рейтинг" PropertyDescriptor property = properties["Rating"]; object rating = property.GetValue(data); //добавляем изменение рейтинга в базу Player player = data as Player; player.Rating += totalDelta; db.Entry(player).State = EntityState.Modified; } //сохраняем изменения в базе db.SaveChanges(); MessageBox.Show("Новый рейтинг сохранен в базе!"); } } catch (Exception) { MessageBox.Show("Данные для сохранения не расчитаны! Заполните результаты игр"); } }