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