Пример #1
0
        public async Task <IActionResult> PutModuleItem(int id, ModuleItem moduleItem)
        {
            if (id != moduleItem.moduleID)
            {
                return(BadRequest());
            }

            _context.Entry(moduleItem).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ModuleItemExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #2
0
        public async Task <IActionResult> PutModule([FromRoute] int id, [FromBody] Module @module)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != @module.Code)
            {
                return(BadRequest());
            }

            _context.Entry(@module).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ModuleExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #3
0
        public static async Task <int> AddNewMatchAsync(
            int player1Id,
            int player2Id,
            bool isPlayer1PlayFirst,
            bool blockTwoEndsRule,
            int gameCount
            )
        {
            using (ModuleContext DB = new ModuleContext())
            {
                var player1 = await DB.Players.Where(x => x.Id == player1Id).SingleOrDefaultAsync();

                var player2 = await DB.Players.Where(x => x.Id == player2Id).SingleOrDefaultAsync();

                StoredMatch match = new StoredMatch()
                {
                    Player1             = player1,
                    Player2             = player2,
                    IsPlayer1PlayFirst  = isPlayer1PlayFirst,
                    HasBlockTwoEndsRule = blockTwoEndsRule,
                    GameCount           = gameCount,
                    DateTime            = DateTime.Now
                };
                DB.Matches.Add(match);
                await DB.SaveChangesAsync();

                return(match.Id);
            }
        }
Пример #4
0
        public static async Task SetWinnerAsync(int winnerId, int gameId)
        {
            using (ModuleContext DB = new ModuleContext())
            {
                var game = await DB.Games.Where(x => x.Id == gameId).SingleOrDefaultAsync();

                var winner = await DB.Players.Where(x => x.Id == winnerId).SingleOrDefaultAsync();

                game.Winner = winner;
                await DB.SaveChangesAsync();
            }
        }
Пример #5
0
        public static async Task SwapPlayerAsync(int matchId)
        {
            using (ModuleContext DB = new ModuleContext())
            {
                var match = await DB.Matches.Where(x => x.Id == matchId).SingleOrDefaultAsync();

                if (match.GameCount < 1)
                {
                    match.IsPlayer1PlayFirst = !match.IsPlayer1PlayFirst;
                    await DB.SaveChangesAsync();
                }
            }
        }
Пример #6
0
        public static async Task <int> AddNewGameToMatchAsync(int matchId)
        {
            using (ModuleContext DB = new ModuleContext())
            {
                var match = await DB.Matches.Where(x => x.Id == matchId).SingleOrDefaultAsync();

                StoredGame game = new StoredGame();
                match.Games.Add(game);
                game.Order = match.Games.Count;
                await DB.SaveChangesAsync();

                return(game.Id);
            }
        }
Пример #7
0
        public static async Task AddMoveAsync(int gameId, string chessman, int coordinateX, int coordinateY)
        {
            using (ModuleContext DB = new ModuleContext())
            {
                var game = await DB.Games.Where(x => x.Id == gameId).SingleOrDefaultAsync();

                Move move = new Move()
                {
                    Chessman    = chessman,
                    CoordinateX = coordinateX,
                    CoordinateY = coordinateY
                };
                game.Moves.Add(move);
                move.Order = await DB.Games.Where(x => x.Id == gameId).Select(y => y.Moves.Count).FirstOrDefaultAsync();

                await DB.SaveChangesAsync();
            }
        }
Пример #8
0
        public static async Task <bool> AddPlayerAsync(string username, string password)
        {
            using (ModuleContext DB = new ModuleContext())
            {
                if (DB.Players.Where(x => x.Username == username).Count() > 0)
                {
                    return(false);
                }
                StoredPlayer player = new StoredPlayer()
                {
                    Username = username, Password = password
                };
                DB.Players.Add(player);
                await DB.SaveChangesAsync();

                return(true);
            }
        }