Exemple #1
0
        public async Task <ActionResult <Game> > PostGame(Game game)
        {
            game.start_time = DateTime.UtcNow;
            _context.Game.Add(game);
            //TODO: Generate random laws
            for (int x = 1; x <= game.deck_size; x++)
            {
                Game_Law l = new Game_Law();
                l.GameID  = game.GameID;
                l.IssueID = x;
                l.score   = 0;
                _context.Game_Law.Add(l);
            }
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetGame", new { id = game.GameID }, game));
        }
        public void Post(Bill_Vote vote)
        {
            //Game g = _context.Game.FirstOrDefault(item => item.name == game_name);
            Player p = _context.Player.FirstOrDefault(item => item.PlayerID == vote.PlayerID);
            Bill   b = _context.Bill.FirstOrDefault(item => item.BillID == vote.BillID);

            //Bill_Vote bv = _context.Bill_Vote.FirstOrDefault(item => item.BillID == b.BillID && item.PlayerID == p.PlayerID);
            //TODO: Verify that player is part of game and owner of bill
            switch (vote.vote)
            {
            case 'Y':       //Aye
            case 'N':       //Nay
            case 'P':       //Present
                CastVote(p, b, vote.vote);
                break;

            case 'A':       //Amend -- must be owner
                //Bill b = _context.Bill.First(item => item.BillID == bill_id);
                b.proposed = false;
                _context.SaveChanges();
                break;

            case 'C':       //Close -- must be owner

                IQueryable <Game_Law>  _Law  = _context.Game_Law.Where(item => item.GameID == b.GameID).OrderBy(item => item.IssueID);
                IQueryable <Bill_Hand> _Hand = _context.Bill_Hand.Where(item => item.BillID == b.BillID).OrderBy(item => item.IssueID);
                foreach (Bill_Hand B in _Hand)
                {
                    int      issue_id = B.IssueID;
                    Game_Law l        = _Law.Single(item => item.IssueID == issue_id);
                    l.score += B.score;
                }
                _context.SaveChanges();
                break;

            default:
                Response.StatusCode = 400;
                break;
            }
        }
        public void Post([FromBody] string value)
        {
            dynamic bv          = JsonSerializer.Deserialize <object>(value);
            int     bill_id     = bv.bill_id;
            string  player_name = bv.username;

            //TODO: Verify that player is part of game and owner of bill
            switch (bv.vote[0])
            {
            case 'Y':       //Aye
            case 'N':       //Nay
            case 'P':       //Present
                castVote(player_name, bill_id, bv.vote);
                break;

            case 'A':       //Amend -- must be owner
                Bill b = _context.Bill.First(item => item.BillID == bill_id);
                b.proposed = false;
                _context.SaveChanges();
                break;

            case 'C':       //Close -- must be owner
                int game_id = bv.game_id;

                IQueryable <Game_Law>  _Law  = _context.Game_Law.Where(item => item.GameID == game_id).OrderBy(item => item.IssueID);
                IQueryable <Bill_Hand> _Hand = _context.Bill_Hand.Where(item => item.BillID == bill_id).OrderBy(item => item.IssueID);
                foreach (dynamic B in bv.Bill)
                {
                    int      issue_id = B.issue_id;
                    Game_Law l        = _Law.Single(item => item.IssueID == issue_id);
                    l.score += B.score;
                }
                _context.SaveChanges();
                break;

            default:
                Response.StatusCode = 400;
                break;
            }
        }
Exemple #4
0
        public async Task <ActionResult <Game> > PostGame(Game game)
        {
            if (_context.Game.Any(item => item.name == game.name))
            {
                return(BadRequest());
            }

            game.start_time = DateTime.UtcNow;
            _context.Game.Add(game);

            Bill b = new Bill {
                GameID   = game.GameID,
                active   = true,
                proposed = false
            };

            _context.Bill.Add(b);
            game.last_bill = b.BillID;
            //TODO: Generate random laws
            for (int x = 1; x <= game.deck_size; x++)
            {
                Game_Law l = new Game_Law {
                    GameID  = game.GameID,
                    IssueID = x,
                    score   = 0
                };
                _context.Game_Law.Add(l);

                Bill_Hand bh = new Bill_Hand {
                    BillID  = b.BillID,
                    IssueID = x,
                    score   = 0
                };
                _context.Bill_Hand.Add(bh);
            }
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetGame", new { id = game.GameID }, game));
        }