Esempio n. 1
0
 private void SaveGame(BattleshipsServiceLibrary.Game game)
 {
     using (BattleshipsDbEntities bdc = new BattleshipsDbEntities())
     {
         BattleshipsDatabase.Game g = new BattleshipsDatabase.Game();
         g.End    = DateTime.Now;
         g.Winner = game.Winner.PlayerId;
         g.Loser  = game.Opponent(g.Winner).PlayerId;
         g.Start  = game.Start;
         foreach (Move m in game.Moves)
         {
             bdc.Turns.Add(new Turn()
             {
                 Game   = g.GameId,
                 Player = m.Player,
                 Time   = m.Time,
                 Hit    = m.Result == BlockState.HIT,
                 X      = m.AtX,
                 Y      = m.AtY
             });
         }
         bdc.Games.Add(g);
         bdc.SaveChanges();
     }
 }
Esempio n. 2
0
 public PlayerContract Login(string name, string password)
 {
     using (BattleshipsDbEntities bdc = new BattleshipsDbEntities())
     {
         return(bdc.Players.AsEnumerable()
                .Where(p => p.Name == name && p.Password == password)
                .Select(p => new PlayerContract(p.PlayerId, p.Name))
                .FirstOrDefault());
     }
 }
Esempio n. 3
0
 public PlayerContract Register(string name, string password)
 {
     using (BattleshipsDbEntities bdc = new BattleshipsDbEntities())
     {
         if (bdc.Players.AsEnumerable().Where(p => p.Name == name).Count() == 0)
         {
             Player player = new Player {
                 Name = name, Password = password
             };
             bdc.Players.Add(player);
             bdc.SaveChanges();
             return(new PlayerContract(player.PlayerId, player.Name));
         }
     }
     return(null);
 }
Esempio n. 4
0
        public List <StatsContract> GetStats()
        {
            List <StatsContract> stats = new List <StatsContract>();

            using (BattleshipsDbEntities bdc = new BattleshipsDbEntities())
            {
                foreach (Player p in bdc.Players.Include("WonGames").Include("LostGames"))
                {
                    StatsContract sc = new StatsContract();
                    sc.Player = new PlayerContract(p.PlayerId, p.Name);
                    sc.Wins   = p.WonGames.Count;
                    sc.Loses  = p.LostGames.Count;
                    stats.Add(sc);
                }
            }
            return(stats);
        }
Esempio n. 5
0
        public GameReplay GetGameReplay(long gameId)
        {
            GameReplay ret = new GameReplay();

            using (BattleshipsDbEntities bdc = new BattleshipsDbEntities())
            {
                BattleshipsDatabase.Game game = bdc.Games.Include("WinnerRef").Include("LoserRef").Include("Turns").FirstOrDefault(g => g.GameId == gameId);
                if (game == null)
                {
                    return(null);
                }
                ret.Player1 = new PlayerContract(game.WinnerRef.PlayerId, game.WinnerRef.Name);
                ret.Player2 = new PlayerContract(game.LoserRef.PlayerId, game.LoserRef.Name);
                foreach (Turn t in game.Turns)
                {
                    ret.Moves.Add(new Move(t.Player, t.X, t.Y, t.Hit == true ? BlockState.HIT : BlockState.MISS));
                }
            }
            return(ret);
        }
Esempio n. 6
0
        public List <GameResult> GetMyGames(long myId)
        {
            List <GameResult> games = new List <GameResult>();

            using (BattleshipsDbEntities bdc = new BattleshipsDbEntities())
            {
                foreach (BattleshipsDatabase.Game g in bdc.Games.Include("WinnerRef").Include("LoserRef").Where(g => g.Loser == myId || g.Winner == myId))
                {
                    GameResult gr = new GameResult()
                    {
                        End      = g.End,
                        Start    = g.Start,
                        GameId   = g.GameId,
                        Opponent = g.Loser == myId ? g.WinnerRef.Name : g.LoserRef.Name,
                        Result   = g.Winner == myId
                    };
                    games.Add(gr);
                }
            }
            return(games);
        }