//New Player
        public PlayerManager(string name)
        {
            if (name != "")
            {
                var db = new Project2NetContext();
                var rand = MainWindow.Random;
                //Randomisation du point de départ
                var x = rand.Next(-500, 500);
                var y = rand.Next(-500, 500);
                var temp = db.Cells.FirstOrDefault(cell => cell.PosX == x && cell.PosY == y);

                if (temp != null)
                {
                    Player = new Player
                        {
                            Name = name, 
                            MaxHp = 500, 
                            Hp = 500, 
                            Xp = 0, 
                            CurrentCellId = temp.Id
                        };
                }
                else
                {
                    var cellM = new CellManager(x, y);
                    Player = new Player
                        {
                            Name = name,
                            MaxHp = 500,
                            Hp = 500,
                            Xp = 0,
                            CurrentCellId = cellM.Cell.Id
                        };
                }
                var weaponM = new WeaponManager(0, true);

                Player.WeaponInventory = new Collection<Weapon>
                    {
                        weaponM.Weapon
                    };
                Player.ObjectInventory = new Collection<Item>();

                db.Players.Add(Player);
                db.SaveChanges();
            }
            else
            {
                Player = null;
            }
        }
        private void StayAlive_Click(object sender, RoutedEventArgs e)
        {
            var db = new Project2NetContext();
            var playerM = MainWindow.SelectedPlayerViewModel.ActivePlayerManager;
            if (playerM.Player != null)
            {
                playerM.Player.Xp = playerM.Player.Xp - 300;
                if (playerM.Player.Xp <= 0) playerM.Player.Xp = 0;
                playerM.Player.MaxHp = 500 + ((int)Math.Floor((double)playerM.Player.Xp / 100)) * 150;
                playerM.Player.Hp = playerM.Player.MaxHp;
                var itemList = playerM.Player.ObjectInventory.ToList();
                foreach (var item in itemList)
                {
                    playerM.Player.ObjectInventory.Remove(item);
                    var itemD = (from i in db.Items
                                 where i.Id == item.Id
                                 select i).FirstOrDefault();
                    db.Items.Remove(itemD);
                }

                var weaponList = playerM.Player.WeaponInventory.ToList();
                foreach (var weapon in weaponList)
                {
                    playerM.Player.WeaponInventory.Remove(weapon);
                    var weaponD = (from i in db.Weapons
                                   where i.Id == weapon.Id
                                   select i).FirstOrDefault();
                    db.Weapons.Remove(weaponD);
                }
                db.SaveChanges();
                var weaponM = new WeaponManager(playerM.Player.Xp, true);
                playerM.Player.WeaponInventory.Add(weaponM.Weapon);
                MainWindow.SelectedPlayerViewModel.ActivePlayerManager.Player = playerM.Player;
                MainWindow.SelectedPlayerViewModel.ActivePlayerManager.Save();
                MainWindow.SelectedPlayerViewModel.Weapons.Clear();
                MainWindow.SelectedPlayerViewModel.Items.Clear();
                var weaponAdded = MainWindow.SelectedPlayerViewModel.ActivePlayerManager.AddWeapon();
                MainWindow.SelectedPlayerViewModel.Weapons.Add(weaponAdded);

                MessageBox.Show("Vous vous sentez Renaitre !");
                MainWindow.SelectedPlayerViewModel.RefreshMainUi();

                SoundHelper.PlayFromCategory(SoundHelper.Categories.Normal);
                NavigationHelper.MoveToPage(MainWindow.SelectedPlayerView);
            }
        }
        public Weapon DropWeapon(int id)
        {
            using (var db = new Project2NetContext())
            {
                var player = (from p in db.Players
                              where p.Id == Player.Id
                              select p).FirstOrDefault();

                if (player == null) return null;
                var weaponM = new WeaponManager((from w in player.WeaponInventory
                                                 where w.Id == id
                                                 select w).FirstOrDefault());
                player.Hp = Player.Hp;
                player.MaxHp = Player.MaxHp;
                player.Xp = Player.Xp;
                player.CurrentCellId = Player.CurrentCellId;
                player.WeaponInventory.Remove(weaponM.Weapon);
                var weapon = (from w in db.Weapons
                              where w.Id == weaponM.Weapon.Id
                              select w).FirstOrDefault();
                db.Weapons.Remove(weapon);
                db.SaveChanges();
                return weapon;
            }
        }
 public Weapon AddWeapon()
 {
     var db = new Project2NetContext();
     var player = (from p in db.Players
                   where p.Id == Player.Id
                   select p).FirstOrDefault();
     var weaponM = new WeaponManager(Player.Xp);
     if (player != null)
     {
         player.Hp = Player.Hp;
         player.MaxHp = Player.MaxHp;
         player.Xp = Player.Xp;
         player.CurrentCellId = Player.CurrentCellId;
         player.WeaponInventory.Add(weaponM.Weapon);
         //Copie en local
         Player.WeaponInventory = player.WeaponInventory;
     }
     db.SaveChanges();
     return weaponM.Weapon;
 }