예제 #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);
            }
        }