Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }