コード例 #1
0
 public List <User> GetPlayersForGame(Guid gameId)
 {
     using (var db = new SpeedCheckers.DAL.SpeedCheckersContext())
     {
         var game = db.Games.First(x => x.ID == gameId);
         return(new List <User> {
             game.PlayerWhite,
             game.PlayerBlack
         });
     }
 }
コード例 #2
0
 public GameResult GetGameResults(Guid gameId)
 {
     using (var db = new SpeedCheckers.DAL.SpeedCheckersContext())
     {
         var game = db.Games.First(x => x.ID == gameId);
         return(new GameResult
         {
             Winner = game.Winner,
             Loser = game.WinnerId == game.PlayerWhiteId ? game.PlayerBlack : game.PlayerWhite
         });
     }
 }
コード例 #3
0
        public Guid EndGame(Guid gameId, Guid winnerId)
        {
            var id = Guid.NewGuid();

            using (var db = new SpeedCheckers.DAL.SpeedCheckersContext())
            {
                var game = db.Games.First(x => x.ID == gameId);
                game.EndTime  = DateTime.Now;
                game.WinnerId = winnerId;
                db.SaveChanges();
            }
            return(id);
        }
コード例 #4
0
 public Guid StartGame(Guid id, Guid playerWhite, Guid playerBlack)
 {
     using (var db = new SpeedCheckers.DAL.SpeedCheckersContext())
     {
         db.Games.Add(new Models.Game
         {
             ID            = id,
             StartTime     = DateTime.Now,
             PlayerWhiteId = playerWhite,
             PlayerBlackId = playerBlack,
         });
         db.SaveChanges();
     }
     return(id);
 }
コード例 #5
0
        public Guid CreateUser(string name)
        {
            var id = Guid.NewGuid();

            using (var db = new SpeedCheckers.DAL.SpeedCheckersContext())
            {
                db.Users.Add(new Models.User
                {
                    ID   = id,
                    Name = name
                });
                db.SaveChanges();
            }
            return(id);
        }
コード例 #6
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     GlobalConfiguration.Configure(WebApiConfig.Register);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     using (var db = new SpeedCheckers.DAL.SpeedCheckersContext()) {
         db.Users.Add(new Models.User
         {
             ID   = Guid.NewGuid(),
             Name = "Init"
         });
         db.SaveChanges();
     }
 }
コード例 #7
0
 //loads games data into list and lists it on game page
 public List <FinishedGame> GetFinishedGames()
 {
     using (var db = new SpeedCheckers.DAL.SpeedCheckersContext())
     {
         var games = db.Games
                     .Where(x => x.EndTime != null)
                     .OrderBy(x => x.StartTime)
                     .Select(x => new FinishedGame
         {
             StartTime       = x.StartTime,
             EndTime         = x.EndTime.Value,
             WhitePlayerName = x.PlayerWhite.Name,
             BlackPlayerName = x.PlayerBlack.Name,
             WinnerName      = x.Winner.Name
         }).ToList();
         return(games);
     }
 }
コード例 #8
0
        // the function accepts the unique game id and the unique player id and the moveement details and saves it to the db moves history
        public Models.GameMove AddMove(Guid gameId, Guid playerId, string from, string to)
        {
            var id = Guid.NewGuid();

            using (var db = new SpeedCheckers.DAL.SpeedCheckersContext())
            {
                var lastMove = db.Moves.OrderByDescending(x => x.Number).FirstOrDefault();
                var number   = lastMove?.Number + 1 ?? 1;

                var move = new Models.GameMove {
                    ID       = id,
                    GameId   = gameId,
                    MoveFrom = from,
                    MoveTo   = to,
                    Number   = number,
                    PlayerId = playerId,
                };
                db.Moves.Add(move);
                db.SaveChanges();
                return(move);
            }
        }