public static void AddNewPlayer(string name, int id = -1) { try { Console.WriteLine("Add New Player - " + name); if (id == -1) { id = PlayerInfo.GetPlayerId(name); } if (id == -1) { id = int.Parse(Microsoft.VisualBasic.Interaction.InputBox("Can't Found Player, Please Insert Id", "Add New Player", "Default", -1, -1)); } using (var db = new EspnEntities()) { var names = db.Players.Select(p => p.Name); var ids = db.Players.Select(p => p.ID); if (names.Contains(name) || ids.Contains(id)) { Console.WriteLine("Player Already Exist"); return; } int gamePk = db.Games.Max(g => g.Pk); var playerInfo = new PlayerInfo(name, id); Player player = new Player(playerInfo); Game[] games = playerInfo.Games.Select(g => new Game(g, ++gamePk, player.ID)).ToArray(); db.Players.Add(player); db.Games.AddRange(games); db.SaveChanges(); Console.WriteLine("Done"); } } catch (Exception e) { MessageBox.Show(e.Message); } }
private static void UpdatePlayer(PlayerInfo playerInfo) { try { using (var db = new EspnEntities()) { Player player = db.Players.FirstOrDefault(p => p.ID == playerInfo.Id); if (player == null) { return; } player.Age = playerInfo.Age; player.Misc = playerInfo.Misc; player.Team = playerInfo.Team; Game lastGame = db.Games.Where(g => g.PlayerId == player.ID).OrderByDescending(g => g.GameDate).FirstOrDefault(); if (lastGame != null) { playerInfo.Games.FirstOrDefault(g => g.GameDate == lastGame.GameDate) ?.UpdateGame(lastGame); //Update Last Game In DB db.Games.AddOrUpdate(lastGame); foreach (GameStats gameStats in playerInfo.Games.Where(g => g.GameDate > lastGame.GameDate)) //Update Rest Of The Games { var game = new Game(gameStats, GetNextGamePk(), player.ID); db.Games.Add(game); } } db.SaveChanges(); } Console.WriteLine(playerInfo.PlayerName + " - Success"); } catch (Exception e) { Console.WriteLine(playerInfo.PlayerName + " - " + e.Message); } }