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(); } }
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()); } }
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); }
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); }
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); }
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); }